contiki编程入门.doc_第1页
contiki编程入门.doc_第2页
contiki编程入门.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文将介绍如何使用Contiki的进程模型方便快速地开发第一个应用程序。正如所有的程序设计学习一样,本文中的应用程序被命名为:Helloworld! 1、建立项目文件夹 Contiki中每一个应用程序都需要一个单独的文件夹,我们为Helloworld!建立一个名为helloworld的文件夹,并在其中创建hello-world.c和Makefile文件。为了方便,建议将文件夹放在Contiki的examples目录下。 2、编写Helloworld!源代码 在hello-world.c文件中输入或粘贴如下代码:1. #include contiki.h2. #include 3.4. /* 声明一个名为hello_world_process进程 */5. PROCESS(hello_world_process, Hello world process);6. /* 这个进程需要自动启动,即当节点启动时启动本进程 */7. AUTOSTART_PROCESSES(&hello_world_process);8.9. /* hello_world_process进程的主体部分 */10. PROCESS_THREAD(hello_world_process, ev, data)11. 12. /* 所有的进程开始执行前都必须要有这条语句 */13. PROCESS_BEGIN();14.15. printf(Hello world :)n);16.17. /* 所有的进程结束时都必须要有这条语句 */18. PROCESS_END();19. 复制代码 是不是很简单,声明一个进程并声明为自动启动,定义进程主体,完成。 3、编写Makefile 在Makefile文件中输入或粘贴如下代码: 1. /* 项目名称(主文件名称) */2. CONTIKI_PROJECT = hello-world3. all: $(CONTIKI_PROJECT)4.5. /* Contiki源文件根目录,根据您的实际情况修改 */6. CONTIKI = ./.7. /* 包含Contiki的Makefile,以实现整个Contiki系统的编译 */8. include $(CONTIKI)/Makefile.include复制代码 4、编译项目 在控制台/Shell中进入helloworld项目目录,运行如下命令: 1. make复制代码 这时编译的目标平台是默认的native平台。如果需要指定目标平台,可以使用TARGET参数,如: 1. make TARGET=native复制代码 编译成功后,项目目录下就会生成hello-world.目标平台的目标文件,如hello-world.native。如果您使用的是Linux操作系统,可以运行如下命令查看Contiki程序运行结果: 1. ./hello-world.native复制代码 运行结果如下所示:(由于Contiki还在运行,需要按Ctrl+C退出程序) 1. Starting Contiki2. Hello world :)复制代码 至此,我们完成了第一个Contiki应用程序的开发,希望对大家快速上手Contiki有所帮助。 总结一下,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进程模型的原因。在以后的文章中会详细地说明。Zyz_Eng16:25:04自己要开发软件,先要选你要开发的平台,各个平台在对应的platform文件夹下有相应的底层代码,如果没有你要开发的平台,那就需要自己写底层的代码。Zyz_Eng16:25:09Apps各种基本应用程序ping6ftptelnetwebserver等,都要链接核心coreCore主要是网络层的定义和程序,6LowPAN的主要实现netsys目录Cpu定义系统应用的mcu定义,这里应该是port的关键avrDoc帮助文档,这里的文件都应该看看,帮组理解Examples根据各种平台出来的实例程序,应该算apps的新应用扩展

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论