430下也能跑操作系统,本文转自:http://blog.chinaunix.net/uid-9112803-id-3146985.html
2.3 ISR定义修改
Contiki默认开发环境是Linux,其中断服务处理程序定义格式与IAR不同,编译的时候报如下错误:
图4 ISR相关错误
这里只要略加修改即可,改成符合IAR的格式,以button-sensor.c为例,如下:
2.4 找不到库文件
Contiki用到了Linux下的库文件,先注释掉,编译单个文件,没问题最好(如cpu/msp430.c的sys/unistd.h),也就是说这个文件压根就没用到这个库文件。如果真用到了,再编译会引进新的错误,此时,果断将文件从工程目录移除(比如dlfcn.h、lib/malloc.h)。你可能会说,为何不将这些头文件从Linux找出来加到编译路径,我确实尝试了,发现可行性不高,因为库文件还调用其他库文件。不过后续移植可能得正视社个问题了。
注:LINUX下使用动态链接库,源程序需要包含dlfcn.h头文件,文件dlfcn.h定义了调用动态链接库的函数的原型。
2.5 嵌入式汇编修改
(1) __asm__未定义
GCC下关键字__asm__,等同于IAR的asm。不过,从文档《IAR C/C++ Compiler Reference Guide.pdf》来看,推荐使用关键字__asm(英文原文:the asm keyword is not available when the option --strict is used. The __asm keyword is always available)。在相应文件增加如下代码(比如msp430.c),即可解决:
文章评论(0条评论)
登录后参与讨论