etimer】的更多相关文章

Contiki内核是基于事件驱动和Protothreads机制,事件既可以是外部事件(比如按键,数据到达),也可以是内部事件(如时钟中断).定时器的重要性不言而喻,Contiki提供了5种定时器模型,即timer(描述一段时间,以系统时钟滴答数为单位),stimer(描述一段时间,以秒为单位),ctimer(定时器到期,调用某函数,用于Rime协议栈),etimer(定时器到期,触发一个事件),rtimer(实时定时器,在一个精确的时间调用函数). 鉴于etimer在Contiki使用的广泛性,…
这幅图片是对前面  <<contiki学习笔记之九>>  的一个补充说明. 简单的玩玩etimer <contiki学习笔记之九> 或许,自己正在掀开contiki process最后的一层面纱: 或许,还有一段路要走: 或许,已经掀开... --------------- 一切,都只是process:只有有了process,才会轮到etimer_process  发言,除非,抛却一切机制,裸机实现etimer... process,是什么? 一个链表,还是单向的,仅此…
好吧,我承认etimer有点小复杂,主要是它似乎和contiki的process搅在一起,到处都在call_process.那就先搜搜contiki下的etimer的example看看,然后再试着写一个demo玩玩. 在写demo之前,先说说自己是怎么找到etimer 的example的文件的. 在core/sys/etimer.h 文件中,在描述etimer的数据结构的时候,作者显示的指出,如果要使用etimer,就必须先使用 etimer_set()这个函数进行一些工作,如图: 是的,数据结…
1.前言     contiki是一款小型开源,易于移植的多任务操作系统,专门为无线传感网设计,适合内存受限制的网络系统.国内的研究和应用还处于初级阶段,甚至还不知道这个contiki如何发音,也没有那么响亮的中文名称.如果还没有中文名称的话,就干脆叫它“康提基”(来自wifi百科).     平台说明     硬件平台:CC2530         软件平台:IAR EW8051     contiki的时间管理非常有特色,有多种定时器,例如timer,stimer,ctimer,etimer…
一.Etimer概述 Etimer提供产生时间事件(timed event)的机制,当设定好的timer到期时,将会给设定etimer的process发送一个PROCESS_EVENT_TIMER 事件. Etimer模块调用clock_time获得当前系统的时间. The Contiki etimer library provides a timer mechanism that generate timed events. An event timer will post the event…
 Contiki包含一个时钟模型和5个定时器模型(timer, stimer, ctimer, etimer, and rtimer),先学习etimer吧. etimer是一个结构体,(个人用event timer 来记),当设置的时间到的时候,就会给与之绑定的进程传递一个PROCESS_EVENT_TIMER事件,使该进程启动并继续执行.etimer结构体内容: struct etimer { struct timer timer; struct etimer *next; struct p…
struct rtimer { rtimer_clock_t time; rtimer_callback_t func; void *ptr; }; typedef unsigned short rtimer_clock_t; typedef void (* rtimer_callback_t)(struct rtimer *t, void *ptr); 三个参数:时钟类型,回调函数,回调函数的参数 参考博客:http://blog.csdn.net/jiangjunjie_2005/artic…
参考博客: http://www.aiuxian.com/article/p-705047.html http://blog.csdn.net/u013232419/article/details/45201437 contiki大神Jelline的博客:http://blog.chinaunix.net/uid-9112803-id-2978041.html 简介: contiki移植练习移植过程: 1.创建文件夹contiki,将contiki-2.7中的core和cpu两个文件夹拷贝到co…
进程的结构 Contiki的进程由两部分组成:进程控制块和进程线程.进程控制块存储在内存中,它包含进程运行时的信息,比如:进程名.进程状态.指向进程线程的指针. 进程线程是存储在ROM中的一个代码块. 进程控制块PCB(process control block) struct process { struct process *next; #if PROCESS_CONF_NO_PROCESS_NAMES #define PROCESS_NAME_STRING(process) ""…
基本进程的创建实例: 共三部分:创建进程.进程自启动和进程的主体部分 /* 声明一个名为hello_world_process和led_process进程 PROCESS 宏实际上声明一个函数并定义一个进程控制块, 新创建的进程 next 指针指向空,进程名称为"Hello world"和"led"*/ PROCESS(hello_world_process, "Hello world"); PROCESS(led_process, "…