Contiki移植

Contiki移植

一.系统层次结构

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

Contiki移植_第1张图片

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


免费快速下载链接:http://www.rimelink.com/nd.jsp?id=31&_np=105_315

 

你可能感兴趣的:(Contiki移植)