无线传感网络--开源框架Contiki3.0基本原理

引言:
在无线传感器的领域之中,Contiki是一个很好的开源框架。在IAR工作环境当中,利用Contiki框架对无线传感器模块进行烧写。接下来,就让笔者粗略分析一下Contiki框架的内容以及工作原理。

  • 1)以下是在IAR工作环境中的一段简易的利用Contiki编写的部分源码。
    大致过程是:将编写的程序以单个进程为载体调用Contiki框架中的库文件,依次调用库文件执行相应的操作。

  • 2)接下来分析一下Contiki进程头文件process.h以及源文件process.c:
    头文件process.h当中是对源文件process.h的一些宏定义,故在此不加以叙述,重点分析一下进程的源文件process.c
    源码如下(版权问题,仅供参考):
    Contiki进程源文件Process.c构成
    内核进程代码部分:
//版权所有,仅供读者学习参考
/*
 * Copyright (c) 2005, Swedish Institute of Computer Science
 * All rights reserved.
 * /

#include <stdio.h>
#include "sys/process.h"
#include "sys/arg.h"
/*
 * Pointer to the currently running process structure.
 */
struct process *process_list = NULL;
struct process *process_current = NULL;
static process_event_t lastevent;
/*
 * Structure used for keeping the queue of active events.
 */
struct event_data {
  process_event_t ev;
  process_data_t data;
  struct process *p;
};
static process_num_events_t nevents, fevent;
static struct event_data events[PROCESS_CONF_NUMEVENTS];

#if PROCESS_CONF_STATS
process_num_events_t process_maxevents;
#endif

static volatile unsigned char poll_requested;

#define PROCESS_STATE_NONE        0
#define PROCESS_STATE_RUNNING     1
#define PROCESS_STATE_CALLED      2

static void call_process(struct process *p, process_event_t ev, process_data_t data);

#define DEBUG 0
#if DEBUG
#include <stdio.h>
#define PRINTF(...) printf(__VA_ARGS__)
#else
#define PRINTF(...)
#endif

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值