四、其他地方
(1)loader-arch.h
cpu/msp430/loader-arch.c文件中的#include "loader/loader-arch.h"改成#include "loader/elfloader-arch.h"。(通过逻辑判断)
(2)FSSEL_SMCLK
contiki-2.5/cpu/msp430/rom.c文件中的FCTL2 = FWKEY | FSSEL_SMCLK | (FN2 | FN1)改成FCTL2 = FWKEY | FSSEL_2 | (FN2 | FN1)。即把FSSEL_SMCLK 改成FSSEL_2 ,这点从io430.h对应的MCU头文件(比如msp430ff161.h)可以看出。
(3) CH_CURS_UP未定义
透过错误提示信息,可以发现这些类似的错误都跟ctk有关(文件名前缀),在contiki-2.5/core/有个目录ctk,文件ctk.h有这么一行注释"This file is part of the Contiki desktop OS."。纵观ctk的源码可知是跟图形相关的东西,在这里,我们将这些文件从工程目录移除(在core/lib/及core/ctk目录)。后来,查阅资料证实,ctk是Contiki的TK图形库(c是Contiki的首字母,Tk is a graphics library that extends Tcl with graphical-interface facilities)。
(4) core/dev目录
这个目录改起来很简单,将cc2420相关的文件从工程目录移除,重新编译,会报io.h的错,改成io430.h即可(我觉得直接注释掉会更好)。
(5) core/loader目录
移除其他平台的文件(比如elfloader-avr.c、cle_avr.c),编译会提示找不到malloc.h、dlfcn.h,再移除报错的文件。再编译,会提示错误(文件cle.c)"expression must be a pointer to a complete object type" ,移除该文件(粗略看下,大概是跟编译器支持有关),再编译就没问题了:-)这对跑Contiki内核不会有影响的,因为仅仅跑内核是没有用到动态加载这个模块的。
(6)LOADER_ARCH_MAGIC和LOADER_ARCH_VERSION没定义
用Find in Files的目录查找,可知这两个变量在Contiki-2.5/platform/esb/loader/loader-arch.h和Contiki-2.5/platform/msb430/loader/loader-arch.h有定义。在这里,仿照定义这两个变量。创建文件platform/MSP430-169LCD/loader-arch.h文件,文件内容如下:
文章评论(0条评论)
登录后参与讨论