Contiki-OS 系统移植

对于嵌入式的操作系统在硬件平台上的移植,一直以来让很多新手望而却步,因为移植一个操 作系统比写一个 c 程序复杂多了,移植过 uCOS-II 的人都知道,要成功移植 uCOS-II 系统到单片机 或者 ARM 中,不是一件容易的事,但是移植 Contiki 系统却很简单,只需要更改一小部分源码即可。 那么究竟怎样移植 contiki 系统到 STM32 上呢?移植过程中需要修改源码的哪一个部分呢?通 过下列的分析,读者就知道了。 Contiki 采用事件驱动机制,那么怎样才能够产生“事件”呢?

#include <stdio.h>

#include <contiki.h>

#include <contiki-net.h>

#include "uart.h"

unsigned int idle_count = 0;

void main(void)

{

 clock_init(); //系统时钟初始化

 process_init(); //进程初始化

 uart1_init(115200); //串口初始化

 process_start(&etimer_process, NULL); //启动etimer 进程

 printf("success started on STM32F407\r\n"); //串口输出

#if AUTOSTART_ENABLE

 autostart_start(autostart_processes); //启动自启进程

#endif

 while(1) {

 do {

 } while(process_run() > 0);

 idle_count++;

}

 }

程序成功运行后,此时在原理机可观察到 LED 进行有规则的点亮,同时在串口显示区有如下显示

总结

在添加完组目录之后,往组里面添加.c 等文件,添加 contiki 系统文件。在工程 sys 目录名上右击选择“Add->Add Files...” 在工程的 sys 组目录下添加 Contiki 的系统文件:autostart.c、ctimer.c、etimer.c、process.c、timer.c,这几个文件在 Contiki 系统源码的 contiki-2.7\core\sys 目录下。添加 STM32 官方库文件。将 STM32F4xx_StdPeriph_Lib_V3.5.放在 Contiki 系统源码的 contiki-2.7\cpu\arm\stm32f407 目录下。5.创建 contiki-main.c 文件 通过上述的步骤,移植 contiki 系统所需要的 contiki 系统文件、stm32 官方库所需文件都添加完毕,若想让程序要执行就必须要有 main 函数,上面添加的都是一些相应的支持文件,下面在工程的 zonesion\proj 组目录下新建一个 contiki-main.c 文件,添加完.c 文件后,就可以配置工程了。Contiki既利用了事件驱动系统节省内存和高效使用CPU的优势,又实现了多进程系统的阻塞机制从而带来开发便利性。Contiki系统运行在一个无限循环之中,通过查询POLL或EVENT标识调用对应进程的主体函数,充分体现了它建立在事件驱动的基础上。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值