新博客:http://sparkandshine.net/
分类: 嵌入式
2012-04-06 20:10:15
摘要:
本文给出了移植Contiki内核到MSP-EXP430G2的一些细节,并给出工程源文件。
已经将Contiki内核移植到MSP430-169LCD(MCU是MSP430F169),详情见博文《Contiki学习笔记:Contiki内核移植》,欲移植到MSP-EXP430G2(其MCU是MSP430G2231),需要做不少改变。移植成功的完整工程源文件 contiki-2.5_MSP-EXP430G2.rar
在移植好的MSP430-169LCD版本基础上稍加修改即可,包括:修改应用程序中的引脚,将提示未定义符号相关文件从工程目录删除。MSP-EXP430G2 LaunchPad默认的MCU是MSP430-G2231,在make时提示如下链接错误:
图1 RAM太小错误
原因是MSP430-G2231的RAM太小(128B RAM),换上MSP430G252(256B RAM),重新编译,提示TIMERA0_VECTOR、TIMERA1_VECTOR未定义,分别替换成TIMER0_A0_VECTOR、TIMER0_A1_VECTOR(查看io430g2452.h可知)。编译通过,链接时提示CSTACK太大,这里将其改成50,编译链接成功。下载运行,看到红灯闪烁:-)
如此,MSP-EXP430G2也可以跑操作系统了,这缘于Contiki的protothread机制(适合内存受限的硬件)。但256B毕竟还是小了点,不足以设计复杂的任务。