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的第一个程序相关推荐

  1. 【java学习笔记day01】运行第一个程序Helloworld!

    java学习笔记day01 2.什么是软件工程师? 3.什么是软件? 4.开发软件需要计算机编程语言,计算机编程语言有很多,例如 c, c++,Java,NET,c#,php... 5.Java软件工 ...

  2. Netty笔记(一)第一个程序

    为什么80%的码农都做不了架构师?>>>    这两天学习netty,记录一下. netty 介绍不废话. 官方网站:http://netty.io/ 使用netty高层次抽象的AP ...

  3. Mybatis学习笔记(1)——第一个程序

    暑期之前就有打算学习SSM,但是我记得当时再配置一个框架疯狂报错,弄得我很难受,,再加上当时有点其他事情,所以就放了下来.现在很有需求要会ssm,所以就学了一下.感觉框架这东西配置就烦的要死.错一丁点 ...

  4. OpenGL学习笔记(2)第一个程序——犹他茶壶(Teapot)

    好了,python+opengl的开发环境搭建好后,我们就可以开始学习了. 这里,我们先学习一个常见的例子--犹他茶壶. 先贴代码

  5. 第一个程序---汇编学习笔记

    第四章 第一个程序 4.1 一个源程序从写出到执行的过程 一个汇编语言程序从写到最终执行的简要过程. 编写汇编源程序 对源程序进行编译连接 执行可执行文件中的程序 如图所示: 4.2 源程序 程序代码 ...

  6. actionscript 3.0 怎么写android 程序,(ActionScript3.0笔记)第一个程序HelloWorld!

    (ActionScript3.0笔记)第一个程序HelloWorld! 创建我的第一个ActionScript3.0程序--HelloWord! 首先下载ActionScript3.0的集成开发环境, ...

  7. ROS入门笔记(九):编写ROS的第一个程序hello world(重点)

    ROS入门笔记(九):编写ROS的第一个程序hello world(重点) 文章目录 1 Catkin工作空间 1.1 创建catkin工作空间 1.2 编译工作空间 1.3 设置环境变量 1.4 检 ...

  8. NRF51822开发笔记-2.Keil-MDK编译的第一个程序

    NRF51822开发笔记-2.Keil-MDK编译的第一个程序 1.进入安装路径,找到第一个实验Blinky_example,双击打开 2.编译 3.编译成功,无错误 4.生成了Hex文件 编译成功了

  9. [云炬ThinkPython阅读笔记]1.3 第一个程序

    1.3 第一个程序 根据惯例,学习使用一门语言写的第一个程序叫做 "Hello, World!" ,因为它的功能就 是显示单词 "Hello, World!" ...

最新文章

  1. 二元函数洛必达求极限_由一类特殊的洛必达法则情形展开的讨论 ——小领域的大作用...
  2. Leetcode 剑指 Offer 42. 连续子数组的最大和 (每日一题 20211014)
  3. 一文看懂Python多进程与多线程编程(工作学习面试必读)
  4. maven工程中添加scala-library并非idea scala插件
  5. 苹果耳罩式耳机曝光 将于今年下半年发布
  6. 怎么用python制作随机点名软件_python用tkinter实现一个简易能进行随机点名的界面...
  7. easyui下拉选项多怎么解决_30岁以后皮肤松弛皱纹越来越多怎么办?这组瑜伽帮你解决...
  8. Zookeeper 概念
  9. 《apue》 首次拜读完经典之作,两三记录
  10. wpsppt怎样让图片模糊_PPT怎么设置图片由模糊到清楚?
  11. 数据敏捷,HTAP数据库既决效率又决生死
  12. 支持delete吗_那些年删过的库,跑过的路,你从中找到解决方法了吗?
  13. 用linux设计应用程序,ARM设计的uClinux及其应用
  14. gvim 安装pathogen
  15. 服务器显示ping不通,服务器ping不通的原因
  16. GCN—图卷积神经网络理解
  17. mysql实验五索引和数据完整性_实验六 索引和数据完整性约束
  18. 在家做科研是一种什么样的体验?
  19. 速 营 社 适合哪些人
  20. PHP 门面设计模式

热门文章

  1. 深度学习在目标跟踪中的应用
  2. web实现微信9宫格
  3. C语言调试教程总结(以visual studio和Dev C++为例)
  4. 【智能优化算法】基于融合改进 Logistics 混沌和正弦余弦算子的自适应 t 分布海鸥算法求解单目标优化问题附matlab代码
  5. ArcEngine实现多边形内部的挖洞操作
  6. ArcEngine符号化——文本符号
  7. 医学计算机论文,医学图像数据库-外文翻译(计算机论文,医学论文适合)
  8. ROS系统下完成TCP通信 C语言编程
  9. ECharts 使用xAxis.axisLine.lineStyle.color设置x坐标轴轴线颜色
  10. 我国计算机系统安全保护等级的划分,规范《GB17859-1999-计算机信息系统安全保护等级划分准则》.pdf...