基本进程的创建实例:

共三部分:创建进程、进程自启动和进程的主体部分

 /* 声明一个名为hello_world_process和led_process进程
PROCESS 宏实际上声明一个函数并定义一个进程控制块,
新创建的进程 next 指针指向空,进程名称为“Hello world”和“led”*/
PROCESS(hello_world_process, "Hello world");
PROCESS(led_process, "led");
/* 进程需要自动启动,即当节点启动时启动本进程 */
AUTOSTART_PROCESSES(&led_process,&hello_world_process); /* hello_world_process进程的主体部分 */
PROCESS_THREAD(hello_world_process, ev, data)
{
/* 所有的进程开始执行前都必须要有这条语句 */
PROCESS_BEGIN(); printf("Hello world :)\n"); /* 所有的进程结束时都必须要有这条语句 */
PROCESS_END();
}
/*led_process进程的主题部分*/
PROCESS_THREAD(led_process, ev, data)
{
PROCESS_BEGIN();//宏用于辅助保存断点信息 (即行数 ),
//欲实现的代码必须放在宏 PROCESS_BEGIN 与 PROCESS_END 之间
while()
{
static struct etimer et;
etimer_set(&et, CLOCK_SECOND/);
PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et)); led_on();
printf("LED0 ----ON-----\r\n"); led_off();
printf("LED1 -----OFF-----\r\n"); etimer_set(&et, CLOCK_SECOND/);
PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et)); led_off();
printf("LED0 -----OFF-----\r\n");
led_on();
printf("LED1 ----ON-----\r\n"); }
PROCESS_END();//宏用于辅助保存断点信息 (即行数 )
}

然后在main函数中:

 int main()
{ BoardInit();
DEBUG("BoardInit Done!");
printf("Initialising\r\n");
clock_init();//时钟初始化
process_init();//进程初始化 process_start(&etimer_process, NULL);//启动系统进程
autostart_start(autostart_processes);//启动用户自启动进程
printf("Processes running\r\n");
while() {
do
{
}
while(process_run() > );
idle_count++;
}
}

参考博客:http://blog.csdn.net/ferlansue/article/details/7256964

contiki-main.c 文件的进程分析的更多相关文章

  1. linux用户进程分析

           经过实验3的介绍.我们须要来点实在的.所以将我们理解的流程用于linux系统的分析.换句话说.通过类比的方式去进行描写叙述与理解linux相关的部分. 本节的内容非常详实.并且也分析 ...

  2. 鸿蒙内核源码分析(ELF格式篇) | 应用程序入口并不是main | 百篇博客分析OpenHarmony源码 | v51.04

    百篇博客系列篇.本篇为: v51.xx 鸿蒙内核源码分析(ELF格式篇) | 应用程序入口并不是main | 51.c.h.o 加载运行相关篇为: v51.xx 鸿蒙内核源码分析(ELF格式篇) | ...

  3. v87.01 鸿蒙内核源码分析 (内核启动篇) | 从汇编到 main () | 百篇博客分析 OpenHarmony 源码

    本篇关键词:内核重定位.MMU.SVC栈.热启动.内核映射表 内核汇编相关篇为: v74.01 鸿蒙内核源码分析(编码方式) | 机器指令是如何编码的 v75.03 鸿蒙内核源码分析(汇编基础) | ...

  4. Dump 文件生成与分析

    近期两天因为项目的须要,研究了一下Dump文件相关的知识,今天做一个小节(因为研究不久而且第一次写blog,希望网友们看到不要见笑). Dump文件是进程的内存镜像.能够把程序的运行状态通过调试器保存 ...

  5. ORA-03113: 通信通道的文件结尾 进程 ID: 764 会话 ID: 125 序列号: 5

    昨天因为导入很久数据,最后一看是因为数据文件不够,后来就关机了.现在,开启数据库,总是报“ORA-03113: 通信通道的文件结尾” SQL> conn /as sysdba; 已连接到空闲例程 ...

  6. mysql死锁-查询锁表进程-分析锁表原因【转】

    查询锁表进程: 1.查询是否锁表 show OPEN TABLES where In_use > 0;   2.查询进程     show processlist   查询到相对应的进程===然 ...

  7. 进程分析之CPU

    进程分析之CPU 进程分析之CPU 本文转载自:https://github.com/ColZer/DigAndBuried/blob/master/system/cpu.md 在<进程分析之内 ...

  8. Keil开发的ARM程序main函数之前的汇编分析

    Keil开发的ARM程序main函数之前的汇编分析 ——BIN文件中RW段的数据移动 系统平台: STM32系列STM32F103ZE,512KB内部FLASH,64KB片内存储; FLASH地址范围 ...

  9. Windows下获取Dump文件以及进程下各线程调用栈的方法总结(转)

    1. Dump文件的用途 Dump文件, 主要用于诊断一个进程的运行状态,尤其是碰到崩溃(Crash)或者挂起(hang)不响应时,需要分析它的工作状态.  除了平时常见的attach到这个进程, 分 ...

随机推荐

  1. js注册验证提示!

    <script> var ifEmail =false; var ifPassword; function ainf() { var txtEnun=document.getElement ...

  2. HTML form enctype 属性试验

    HTML form enctype http://www.w3.org/TR/html401/interact/forms.html#h-17.13.1%E2%80%8D enctype= conte ...

  3. Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to run this program

    开启tomcat时出现以上错误 // 进入root帐户 在普通用户也可以 sudo -s //用编辑器打开.bashrc文件 gedit .bashrc 在普通用户下注意加上sudo //在最后一行添 ...

  4. 20145320《Java程序设计》第二次实验报告

    20145320<Java程序设计>第二次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.12 15: ...

  5. EXCEL导入导出自己整理的一些方法

    //导入Excel代码 protected DataTable ExcelHelper(string filePaht) { string sFilePath2003 = Server.MapPath ...

  6. sdutoj 2608 Alice and Bob

    http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2608 Alice and Bob Time L ...

  7. 十分钟学会python

    1.raw_input的使用 从键盘读取信息,返回字符串. 例: hrs = raw_input("Enter Hours:")pay=raw_input("Enter ...

  8. 什么是Servlet?它有哪些特点

    什么是Servlet?  它有哪些特点? Servlet是运行在JSP服务器端,用来生成Web页面的一种java程序 特点: (1)效率点 (2)功能强大 (3) Servlet之间能够共享数据 (4 ...

  9. Ruby(Selenium / Rspec)在Windows 8_64上安装步骤

    1.首先需要下载RubyInstaller.exe程序(下载地址随便都能找到). 如:rubyinstaller-2.2.2-x64.exe 安装好Ruby后,需要更新Gems gem update ...

  10. 手机触摸touch事件

    1.Touch事件简介 pc上的web页面鼠 标会产生onmousedown.onmouseup.onmouseout.onmouseover.onmousemove的事件,但是在移动终端如 ipho ...