Contiki移植

一.系统层次结构

一个基于Contiki嵌入式系统的层次结构如图1所示,很明显,移植Contiki主要的工作是开发对应硬件的“板级层”软件包,同时解决Make工程的各种错误。

1  Contiki系统层次结构

二.移植思路

移植一个嵌入式操作系统的大致流程如下,Contiki也不例外:

1.        阅读该系统的原理论文和说明手册,建立整体概念;

2.        下载该系统的源代码,理清各文件的组织结构;

3.        先移植该系统的kernel部分,将来按需移植其他功能模块;

4.        列出移植所需功能模块的源文件和详细步骤;

5.        建立(或加入)工程,将移植文件并入该工程之中;

6.        开发一个最简单的测试该移植功能模块的进程(或线程);

7.        边Make边修改,直到上述工程Make成功;

8.        调试测试进程,确认移植任务成功。

三.工程文件

如图2所示,文件夹包括了基于Contiki无线通信模块系统的软件代码:

Project      IAR环境下所有工程文档

Contiki      Contiki操作系统

RF           SX1278射频芯片驱动代码

Driver       驱动:CMSISMCU外设驱动文件

Application  应用程序,以Contiki系统的protothread方式组织

main.c       基于C语言系统的入口函数

main.h       系统的全局配置文件

2  Contiki系统文件组织

考虑2种情况,首先需要升级Contiki更高版本的软件,其次需要将Contiki移植到不同的硬件平台。为了尽可能地减少升级和移植的工作量,增加了ports文件夹,ports目录中文件与core目录中文件低耦合。

四.移植内核

如果仅仅只移植Contiki的内核,那么还是比较容易的,一般说来只需要修改2个文件:clock.ccontiki-conf.h

clock.c2个函数需要适配对应硬件平台:

void clock_init(void);设置一定时器,每秒产生CLOCK_SECONDtick

void SysTick_handler(void) tick中断时递增时间,检测是否有超时事件;

contiki-conf.h:设置contiki系统的一些参数,如:CLOCK_CONF_SECOND=100

 

作者简介:

蒋俊,男,硕士研究生,现任长沙市锐米通信科技有限公司CEO。

从事通信研究与嵌入式开发10年,主攻微功率无线网络。

精通LoRa无线扩频通信,无线星型/树型/MESH网络设计;

通晓Contiki,Linux,uC/OS-II,OSAL等操作系统;

熟悉ARM,DSP,STM8,PIC,PC104等处理器;

擅长AD,RF等集成IC开发。

Web: www.rimelink.com

EMail: jiangjunjie_2005@126.com

QQ群:35212129

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值