Contiki例(二)执行被阻塞的任务第二种方法
来源:互联网 发布:为什么要反乌托邦 知乎 编辑:程序博客网 时间:2024/05/29 04:21
使用的文件如下:contiki2.7->core->sys
|-[F]sys
| |-arg.c
| |-arg.h
| |-cc.h
| |-lc-switch.h
| |-lc.h
| |-process.c
| |-process.h
| |-pt.h
Hello-word.c如下:
#include "contiki.h"
PROCESS(hello_world_process, "Hello world process");
PROCESS_THREAD(hello_world_process, ev, data)
{
static int i;
PROCESS_BEGIN();
for(i=0;i<3;i++){
printf("Hello, world\n");
PROCESS_YIELD();
}
PROCESS_END();
}
main.c如下
#include <stdio.h>
#include <string.h>
#include "contiki.h"
PROCESS_NAME(hello_world_process);
/*---------------------------------------------------------------------------*/
int main(int argc, char **argv)
{
int i=0;
process_init();
process_start(&hello_world_process, NULL);
while(process_list) {
do {
}
while(process_run()>0);
process_post(&hello_world_process,PROCESS_EVENT_CONTINUE,NULL);
}
return 0;
}
/*---------------------------------------------------------------------------*/
上一个博文使用的是强制调用的方法:process_post_synch(q, PROCESS_EVENT_NONE, NULL);
今天通过阅读源代码把sys下的Contiki操作系统简化为了8个文件,因为都是用C写的,可以方便的移植到任意一款单片机上。
这次使用的是增加线程级别的方法:process_post(&hello_world_process,PROCESS_EVENT_CONTINUE,NULL);使之能调用被阻塞的程序。
结果和上一个文件是一样的,不上图了。
- Contiki例(二)执行被阻塞的任务第二种方法
- Contiki例(一)执行被阻塞的任务
- Contiki例(三)使用etimer定时器激活被阻塞的任务
- java 定时任务之二 Quartz(第二种方法)
- 定时执行任务的三种方法
- 定时执行任务的三种方法
- 定时执行任务的三种方法
- 定时执行任务的三种方法
- 定时执行任务的三种方法
- 定时执行任务的三种方法:
- 定时执行任务的三种方法
- 定时执行任务的三种方法
- 定时执行任务的三种方法
- 定时执行任务的三种方法
- 定时执行任务的三种方法
- 定时执行任务的三种方法
- 定时执行任务的三种方法
- 定时执行任务的三种方法
- Protothreads神奇的多线程库
- 确定比赛名次
- Category Archives: 机器学习
- HTML5_插入标记
- 看opengl 写代码(12) 光
- Contiki例(二)执行被阻塞的任务第二种方法
- java基础第八讲——URL、XML的解析
- logistic回归与牛顿方法的python实现 (standford公开课程小作业)
- 黑马程序员---iOS基础---协议
- UITextField总结
- Java删除ArrayList中的重复元素的2种方法
- poj 1222 高斯消元详解
- URL
- Swap Nodes in Pairs