Contiki 在STM32 中的移植
来源:互联网 发布:移动硬盘找回数据 编辑:程序博客网 时间:2024/04/29 05:25
使用野火的板子进行Contiki移植:
开发环境:IAR+STM32
代码移植基本上参照xukai871105 前辈的教程,不同之处是使用的是寄存器的操作方式,并没有是用STM32 的库函数。
代码如下:
#include "contiki.h" #include "stm32/usart/usart.h" /* For usart_puts()*/ #include <stdio.h> /* For printf() */ #include "sys/clock.h"#include "sys/process.h"#include "sys/procinit.h"#include "sys/etimer.h"#include "sys/autostart.h"PROCESS(hello_world_process, "Hello world"); /*声明一个函数,该函数是进程的执行体,即进程的thread函数指针所指的函数;定义一个进程 */AUTOSTART_PROCESSES(&hello_world_process); /*AUTOSTART_PROCESSES宏实际上是定义一个指针数组,存放Contiki系统运行时需自动启动的进程*//*Define the process code*/ PROCESS_THREAD(hello_world_process, ev, data) { PROCESS_BEGIN(); PROCESS_END(); }unsigned int idle_count = 0;int main(){ clock_init(); uart_init(72,115200); printf("Initialising\r\n"); process_init(); process_start(&etimer_process, NULL); autostart_start(autostart_processes); //process_start(&blink_process,NULL); printf("Processes running\r\n"); while(1) { do { } while(process_run() > 0); idle_count++; /* Idle! */ /* Stop processor clock */ /* asm("wfi"::); */ printf("idle_count:%d\r\n",idle_count); } return 0;}
实现简单的串口发送。在编译过程中出现no definition for “autostart_processes”错误,跟踪代码后发现有如下宏:
#if ! CC_NO_VA_ARGS#if AUTOSTART_ENABLE#define AUTOSTART_PROCESSES(...) \struct process * const autostart_processes[] = {__VA_ARGS__, NULL}#else /* AUTOSTART_ENABLE */#define AUTOSTART_PROCESSES(...) \extern int _dummy#endif /* AUTOSTART_ENABLE */
便在头文件添加了
#define AUTOSTART_ENABLE 1
但依然解决不了错误;经过百度后知道在前面没有调用宏PROCESS(name, strname) ;AUTOSTART_PROCESSES(…);致使后面的autostart_processes未定义。
最后编译完成后,烧写到板子时提示代码区域有误便使用了ifc 文件便解决问题。
0 0
- Contiki 在STM32 中的移植
- contiki STM32移植
- Contiki STM32移植
- STM32移植contiki 从入门到进阶学习
- STM32移植contiki进阶之一:从头开始,从main开始
- STM32移植contiki进阶之二:再叙systick
- STM32移植contiki进阶之三(上):timer
- STM32移植contiki进阶之三(中):timer 中文版
- 基于keil的contiki系统的stm32移植
- Contiki在CC2530上的内核移植
- Contiki移植
- contiki移植
- Contiki移植
- STM32移植contiki入门之三:从LED灯程序到contiki编程模型
- 如何在linux下进行contiki移植之环境搭建
- STM32移植contiki入门之一:系统介绍和开发环境搭建
- STM32移植contiki入门之二:简单编程点亮LED灯
- FreeModbus在STM32上移植。
- 简单归并算法-有序数组合并算法实现
- cron 定时任务
- Hibernate之分页查询
- Mybatis概述
- 弹性scrollview的实现
- Contiki 在STM32 中的移植
- iOS 利用runtime关联对象
- android studio 遇到的bug 收集
- [leetcode] 285. Inorder Successor in BST 解题报告
- 醍醐灌顶的鸡汤
- freeradius build
- Integrity Measurement Architecture
- Android中线程间通信原理分析:Looper,MessageQueue,Handler
- Spring MVC配置Velocity