全部博文(200)
发布时间:2013-01-07 14:57:51
每个设备都有一组被配置的参数,整个配置参数在代码中已经定义了默认值(在f8wConfig.cfg)中,在同个网络中,所有设备的“网络细节”配置参数(如PANID,Channel等)应该被设置成一样的值。每个设备的“设备细节”配置参数(Coordinator,Router EndDevice等)可能配置为不同的值。 但是,ZCD_NV_LOGICAL_TYPE必须被设置,确保①有正确的一个设备作为协调器被配置②所有电池供电的设备作为终端设备被配置。一旦这些工作都完成,这个设备就可以以任意方式启动,协调器设备将建立网......【阅读全文】
发布时间:2013-01-07 14:55:10
在OSAL中每个任务都有一个任务初始化函数和任务的事件处理回调函数,而每一层中都是一个任务在处理,而每一层中也都对应着一个事件的处理函数,具体这个OSAL中支持多少个任务?好像程序中也没有定义。在uC/OS中支持64个任务。例如SampleApp_Init(taskID) SampleApp_ProcessEvent(byte task_id,UNINT16 events),在Z-Stack1.4.3-1.2.1中可以通过向const pTaskEventHandlerFn tasksArr[] = { macEventLoop, nwk_event_loop, Hal_Proc......【阅读全文】
发布时间:2013-01-07 14:55:05
我们先看一下osal_start_timerEx()函数,是怎么调用到最后的osal_set_event()函数,触发事件处理的。下面是osal_start_timerEx()函数的源代码,从中间我们并没有看到有关osal_set_events()函数的相关信息。当然这个函数中没有直接的调用该函数,那osal_set_events()函数,是怎么和我们的osal_start_timerEx()函数联系起来的呢?我们应该先从系统中的主循环开始查找其中的奥妙。 byte osal_start_timerEx( byte taskID, UINT16 event_......【阅读全文】
发布时间:2013-01-07 14:55:00
首先在Main函数中,因为这是整个系统的入口点。 (1)Main函数 所有程序运行首先是在主函数下开始的,这里也不例外。找到Zmain.c文件下的主函数: ZSEG int main( void ) { // 初始化时要关中断 osal_int_disable( INTS_ALL ); // 电压检测程序 zmain_vdd_check(); // 初始化堆栈 zmain_ram_init(); /......【阅读全文】
发布时间:2013-01-07 14:54:50
在上几篇文章中我们分析了,整个OSAL的流程,还有添加自己的任务,以及如何运行到自己定义的任务。这一篇文章主要是分析一下,自己定义的任务中要完成的功能,需要的事件函数是怎样的。 这个例子就是一个简单的点对点的数据发送,其中涉及到较少的网络配置,其中最主要的两个函数是SampleApp_ProcessEvent(uint8 task_id,uint16 events),和SampleApp_Init(taskID),一个是任务的处理函数,一个是初始化函数。SampleApp_Init(taskID)这个 函数在前面的文章中也已经分析过了,现在主要关注一下Sampl......【阅读全文】