使用的文件如下: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);使之能调用被阻塞的程序。
结果和上一个文件是一样的,不上图了。