本帖最后由 witant 于 2012-8-17 09:30 编辑
最近心血来潮想研究一下FreeRTOS,于是下载了7.1.1版本的内核。用IAR编译MSP430相关代码后再MSP430f149上运行良好(LED闪的挺欢快~其它功能还没有测试,刚刚接触FreeRTOS)。
但是由于f149的RAM太小,决定将其移植到更大RAM的单片机上,正好手头有块MSP430f5438的板子,便将程序改了改烧写到上面,但这次出现了问题,程序各种跑飞。研究了半天才发现5系列的430单片机地址是20位的(4系列是16位),而且增加了不少汇编指令。经过测试,将原来portext.s43文件中的call指令换成calla指令问题貌似就解决了,程序又可以正常运行了。示例代码里面本身就有支持20位地址的相关代码,在“FreeRTOSV7.1.1\Source\portable\IAR”目录下的MSP430X这个文件夹里面,只不过我太粗心,之后才发现。
我想把FreeRTOS移植到430上面主要是想利用其时间片轮转的工作方式。只需要最基本的内核服务即可。
现在想请教大家一下:
1.FreeRTOS在MSP430里面的应用多么,如果作为一个长期工作的设备,里面跑FreeRTOS的话稳定性如何?
2.以上我说的移植方法是否合理呢?
因为本人接触FreeRTOS时间很短,只知道它内核很精简,比较适合移植到MSP430这类RAM比较小的单片机上。望大家不吝赐教。 |