电子大神的日记本,供应链专家的功夫茶盘,在这里记录、分享与共鸣。

登录以开始

【转贴】430也能玩嵌入式:Contiki内核在IAR+MSP430下移植(七)

 

430下也能跑操作系统,本文转自:http://blog.chinaunix.net/uid-9112803-id-3146985.html

 

 

 

(3) dint与eint

    在cpu/msp430/clock.c提示外部符号dint和eint未定义,这是因为Linux开发环境用eint()和dint()分别开、关中断,但IAR则是使用__enable_interrupt()和__disable_interrupt()。可以直接替换eint()和dint(),这里采用更具移植性的方法,在platform/MSP430-169LCD/platform-conf.h加下如下代码:

 

  1. #ifdef __IAR_SYSTEMS_ICC__
  2.   #define dint() __disable_interrupt()
  3.   #define eint() __enable_interrupt()
  4. #endif

 

(4)autostart_processes未定义

    在测试例子main文件提示外部符号autostart_processes未定义,原因是autostart_processes指针数组是由宏AUTOSTART_PROCESSES定义,而该宏又取决于条件编译,直接看源码吧(在core/sys/autostart.h):

 

  1. #if AUTOSTART_ENABLE
  2.   #define AUTOSTART_PROCESSES(...) \
  3.   struct process * const autostart_processes[] = {__VA_ARGS__, NULL}
  4. #else
  5.   #define AUTOSTART_PROCESSES(...) \
  6.   extern int _dummy
  7. #endif

 

    现在只需把AUTOSTART_ENABLE定义为1就可以了,在platform/MSP430-169LCD/contiki-conf.h文件添加如下语句:

  1. #define AUTOSTART_ENABLE 1

 

 

博主
lvshuxun@126.com
_nemon_
zhegebozhufeichanglanshenmedoumeiyouxie
点击跳转