2830|0

6366

帖子

4914

TA的资源

版主

楼主
 

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

四、其他地方
(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文件,文件内容如下:


    //this file added by jelline #ifndef __LOADER_ARCH_H__ #define __LOADER_ARCH_H__ #define LOADER_ARCH_MAGIC 0x373a #define LOADER_ARCH_VERSION 0x0001
  • #endif
 
点赞 关注

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表