在contiki中应用
ccontiki的移植,以后在写,主要是现在还没有看懂呢。。。
拿到了芯片源码,如何添加一些新的功能呢.
比如说添加LCD中显示个6666666.
我们首先要参考,已写好的源码。我们来做参考.
首先打开main.c
前面的一些包含文件,先不用看,之后是debug、调试用的,也先不太用看.
Global_Data_Type global_data; //这是一个全局结构体 ,定义了一个全局变量,global_data...
AUTOSTART_PROCESSES(
              &etimer_process,
						              &display_process,
						              &rtc_process,
						              &pulse_process,
						              &key_process,
						              &comir_rx_process,
						              &comnb_rx_process,
						              &led_process
)
AUTOSTART_PROCESSES是一个宏定义....
#define AUTOSTART_PROCESSES(...) \
struct process * const autostart_processes[] = {__VA_ARGS__, NULL}
struct process这是一个结构体类型的指针数组..........................................很部复杂,可以进去一点一点的看,也是可以看懂的....但是没必要...
我们就仿照着写就可以了...
比如说:我们全工程查找一下led_process
在base.c中有
//根据宏定义,可以看出传入的是一个进程名字,和一个类似与解释字符的.这个只有不重复即可...
PROCESS(led_process, "LED" ); //PROCESS这个也是一个宏定义:#define PROCESS(name, strname) PROCESS_THREAD(name, ev, data); struct process name = { NULL, process_thread_##name }
在此定义下面就会有
进程函数:
// LED闪烁进程
PROCESS_THREAD(led_process, ev, data)
{
	static struct etimer et;
	PROCESS_BEGIN();
	while(1)
	{
		ev = PROCESS_EVENT_NONE;
		PROCESS_WAIT_UNTIL(ev == PROCESS_EVENT_POLL);
		EventBit_Set(EventBit_Led);
//		DEBUG_PRINTF("led_process\r\n");
		Led_PinOn();
		etimer_set(&et, 200);                                         //延时
		PROCESS_WAIT_UNTIL(etimer_expired(&et));
		Led_PinOff();
		EventBit_Reset(EventBit_Led);
	}
	PROCESS_END();
}
跳转EventBit_Led
//系统事件定义:
#define EventBit_Led 6 // 警告事件:LED
在base.h文件中有PROCESS_NAME(led_process); 宏定义,#define PROCESS_NAME(name) extern struct process name,一个声明函数...
添加号这些:
就可以运行进程了...
process_poll(&led_Temp_process);
就是这些内容,我们可以照着这些模仿就可以了...
剩下的我们正常调试就 可以了.....
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号