2612|0

6366

帖子

4913

TA的资源

版主

楼主
 

430也能玩嵌入式:Contiki内核在IAR+MSP430下移植(三) [复制链接]

2.3 ISR定义修改
Contiki默认开发环境是Linux,其中断服务处理程序定义格式与IAR不同,编译的时候报如下错误:
图4 ISR相关错误

这里只要略加修改即可,改成符合IAR的格式,以button-sensor.c为例,如下:


    interrupt(PORT2_VECTOR) irq_p2(void) /***改成如下内容***/ #pragma vector= PORT2_VECTOR
  • __interrupt void irq_p2(void)


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),即可解决:


    #ifdef __IAR_SYSTEMS_ICC__   #define __asm__ __asm
  • #endif
 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表