更多Contiki系列教程请看索引博客:
Contiki教程——索引
本教程帮助你理解如何在Contiki中构建你自己的应用程序。第二节如何在Contiki中开始一个应用程序将教你在Contiki中写自己应用的完成流程。第三节Contiki中应用程序的通用结构给了一个通用的框架。
进入目录contiki/examples,创建一个子目录,命令为my_first_app。
<Header Files>
PROCESS(my_first_app_process,"My_First_App");
AUTOSTART_PROCESSES(&my_first_app_process);
PROCESS_THREAD(my_first_app_process,ev,data)
{
/* Declare variables required */
static int i=652;
/* Begin Process */
PROCESS_BEGIN();
/* Set of C statement(s) */
printf("EE-%d is an awesome course at USC\n",i);
/* Process End */
PROCESS_END();
}
Contiki中的每个进程都已洪PROCESS开始,它有两个参数:
PROCESS(name,strname)
接着是另一个宏AUTOSTART_PROCESS(struct process &)。当模块启动时,AUTOSTART_PROCESSES将自动开始参数所给的进程。
AUTOSTART_PROCESS(struct process &)
接着我们调用PROCESS_THREAD函数。该函数用于定义一个进程的protothread。无论什么时候,只要系统中产生了一个事件,都会调用这个进程。模块中的每个进程都需要一个由宏PROCESS_THREAD定义的事件处理器(handler)。
PROCESS_THREAD(name, process_event_t, process_data_t)
接着是宏PROCESS_BEGIN。该宏表示一个进程的开始,切必须总是出现在PRCESS_THREAD定义内。
接着我们根绝程序的需求写C语句。
在最后,我们需要使用另一个宏PROCESS_END。该宏表示一个进程的结束,且必须出现在PROCESS_THREAD定义内。当到达宏PROCESS_END()时,进程退出。
PROCESS_END()
Makefile-在相同的文件夹下创建Makefile文件(contiki/examples/my_first_app)
CONTIKI_PROJECT = my_first_app
all: $(CONTIKI_PROJECT)
#UIP_CONF_IPV6=1
CONTIKI = ../..
include $(CONTIKI)/Makefile.include
编译-使用终端,进入目录contiki/examples/my_first_app,然后执行make。浙江编译你的代码并产生所有支持的文件,比如.csc文件、symbols.c,symbols.h等
下载固件到开发板将开发板连接到你的计算机中。使用终端,进入目录contiki/examples/my_first_app,执行下面的命令:
make TARGET=cc2538 savetarget
make my_first_app.upload
make login
参看下面的链接解决相应的错误:
http://anrg.usc.edu/contiki/index.php/Troubleshooting
按开发板上的复位按钮,终端上将打印如下消息:
EE-652 is an awesome course at USC
按Ctrl+C退出。
<Header Files>
PROCESS(name,strname);
AUTOSTART_PROCESSES(struct process &);
PROCESS_THREAD(name, process_event_t, process_data_t)
{
----Initialization of required variables----
PROCESS_BEGIN();
---Set of C statements---
PROCESS_END();
}