contiki笔记2-contiki的第一个程序
1、编写helloworld源代码
Contiki中每一个应用程序都需要一个单独的文件夹,我们为helloworld!建立一个名为helloworld的文件夹,并在其中创建 helloworld.c和Makefile文件。为了方便,建议将文件夹放在Contiki的examples目录下。
命令 vim helloworld.c
#include "contiki.h"
#include <stdio.h>/* 声明一个名为 HW 进程 */
PROCESS(HW, "HWP");
/* 这个进程需要自动启动,即当节点启动时启动本进程 */
AUTOSTART_PROCESSES(&HW);/* HW进程的主体部分 */
PROCESS_THREAD(HW, ev, data)
{PROCESS_BEGIN();printf("Hello world!\n"); //此处放自己的代码PROCESS_END();
}
简单的说就是声明一个进程并声明为自动启动,定义进程主体。
2、编写Makefile文件
创建语句,vim Makefile
CONTIKI_PROJECT = hello-world
all: $(CONTIKI_PROJECT)
/* Contiki源文件根目录,看情况进行修改*/
CONTIKI = /home/user/contiki
include $(CONTIKI)/Makefile.include
3、编译项目
在helloword项目在同一个目录下,命令行中输入
make
输入ls
查看到多出了很多的文件,其中以.native
为结尾的就是我们需要运行的文件
./helloworld.native
运行结果如下所示:(由于Contiki还在运行,需要按Ctrl+C退出程序)
总结一下,Contiki程序开发是以进程的方式实现。创建一个Contiki进程包含两个步骤,声明和定义,由两个宏分别完成。 PROCESS(process_name, “process description”)宏用于声明一个进程;PROCESS_THREAD(process_name, event, data)宏用于定义进程执行主体。
如果进程需要在系统启动时被自动执行,则可以使用AUTOSTART_PROCESSES(&process_name)宏。该宏可以指定 多个进程,如AUTOSTART_PROCESSES(&process_1, &process_2),表示process_1和process_2都会在系统启动时被启动。
进程执行主体代码中,必须以PROCESS_BEGIN()宏开始,以PROCESS_END()宏结束。这是由于Contiki特殊的进程模型导 致的。此外,在进程中不能使用switch语句,慎重使用局部变量,同样也是因为Contiki进程模型的原因。在以后的文章中会详细地说明。
4、参考链接
1、Contiki学习笔记 第一个程序:Hello World
2、Contiki入门学习
contiki笔记2-contiki的第一个程序相关推荐
- 【java学习笔记day01】运行第一个程序Helloworld!
java学习笔记day01 2.什么是软件工程师? 3.什么是软件? 4.开发软件需要计算机编程语言,计算机编程语言有很多,例如 c, c++,Java,NET,c#,php... 5.Java软件工 ...
- Netty笔记(一)第一个程序
为什么80%的码农都做不了架构师?>>> 这两天学习netty,记录一下. netty 介绍不废话. 官方网站:http://netty.io/ 使用netty高层次抽象的AP ...
- Mybatis学习笔记(1)——第一个程序
暑期之前就有打算学习SSM,但是我记得当时再配置一个框架疯狂报错,弄得我很难受,,再加上当时有点其他事情,所以就放了下来.现在很有需求要会ssm,所以就学了一下.感觉框架这东西配置就烦的要死.错一丁点 ...
- OpenGL学习笔记(2)第一个程序——犹他茶壶(Teapot)
好了,python+opengl的开发环境搭建好后,我们就可以开始学习了. 这里,我们先学习一个常见的例子--犹他茶壶. 先贴代码
- 第一个程序---汇编学习笔记
第四章 第一个程序 4.1 一个源程序从写出到执行的过程 一个汇编语言程序从写到最终执行的简要过程. 编写汇编源程序 对源程序进行编译连接 执行可执行文件中的程序 如图所示: 4.2 源程序 程序代码 ...
- actionscript 3.0 怎么写android 程序,(ActionScript3.0笔记)第一个程序HelloWorld!
(ActionScript3.0笔记)第一个程序HelloWorld! 创建我的第一个ActionScript3.0程序--HelloWord! 首先下载ActionScript3.0的集成开发环境, ...
- ROS入门笔记(九):编写ROS的第一个程序hello world(重点)
ROS入门笔记(九):编写ROS的第一个程序hello world(重点) 文章目录 1 Catkin工作空间 1.1 创建catkin工作空间 1.2 编译工作空间 1.3 设置环境变量 1.4 检 ...
- NRF51822开发笔记-2.Keil-MDK编译的第一个程序
NRF51822开发笔记-2.Keil-MDK编译的第一个程序 1.进入安装路径,找到第一个实验Blinky_example,双击打开 2.编译 3.编译成功,无错误 4.生成了Hex文件 编译成功了
- [云炬ThinkPython阅读笔记]1.3 第一个程序
1.3 第一个程序 根据惯例,学习使用一门语言写的第一个程序叫做 "Hello, World!" ,因为它的功能就 是显示单词 "Hello, World!" ...
最新文章
- 二元函数洛必达求极限_由一类特殊的洛必达法则情形展开的讨论 ——小领域的大作用...
- Leetcode 剑指 Offer 42. 连续子数组的最大和 (每日一题 20211014)
- 一文看懂Python多进程与多线程编程(工作学习面试必读)
- maven工程中添加scala-library并非idea scala插件
- 苹果耳罩式耳机曝光 将于今年下半年发布
- 怎么用python制作随机点名软件_python用tkinter实现一个简易能进行随机点名的界面...
- easyui下拉选项多怎么解决_30岁以后皮肤松弛皱纹越来越多怎么办?这组瑜伽帮你解决...
- Zookeeper 概念
- 《apue》 首次拜读完经典之作,两三记录
- wpsppt怎样让图片模糊_PPT怎么设置图片由模糊到清楚?
- 数据敏捷,HTAP数据库既决效率又决生死
- 支持delete吗_那些年删过的库,跑过的路,你从中找到解决方法了吗?
- 用linux设计应用程序,ARM设计的uClinux及其应用
- gvim 安装pathogen
- 服务器显示ping不通,服务器ping不通的原因
- GCN—图卷积神经网络理解
- mysql实验五索引和数据完整性_实验六 索引和数据完整性约束
- 在家做科研是一种什么样的体验?
- 速 营 社 适合哪些人
- PHP 门面设计模式
热门文章
- 深度学习在目标跟踪中的应用
- web实现微信9宫格
- C语言调试教程总结(以visual studio和Dev C++为例)
- 【智能优化算法】基于融合改进 Logistics 混沌和正弦余弦算子的自适应 t 分布海鸥算法求解单目标优化问题附matlab代码
- ArcEngine实现多边形内部的挖洞操作
- ArcEngine符号化——文本符号
- 医学计算机论文,医学图像数据库-外文翻译(计算机论文,医学论文适合)
- ROS系统下完成TCP通信 C语言编程
- ECharts 使用xAxis.axisLine.lineStyle.color设置x坐标轴轴线颜色
- 我国计算机系统安全保护等级的划分,规范《GB17859-1999-计算机信息系统安全保护等级划分准则》.pdf...