全部博文(200)
发布时间: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......【阅读全文】
发布时间:2013-01-07 14:54:45
顺便说下,左边的那个EditConfigurations 可以增加或删除下图中Workspace 下面下拉菜单里的内容 一直不知道通过选择这个下拉菜单里的Router , EndDevice ,Coordinator,程序时怎样识别它们的,一个上午的研究发现如下:首先说明不是在:Options C/C++ Compile Preprocessor里面区别的当选择 Router , EndDevice ,Coordinator时,在Options C/C++ Compile Extra Options这个选项里面包含的文......【阅读全文】
发布时间:2013-01-07 14:54:40
ZStack-1.4.2-1.1.0版本的协议栈与ZStack-1.4.3-1.2.1版本的协议栈,发生了很大的变化,在添加用户自己的任务的方式,以及启动操作系统的函数void osal_start_system( void )都发生了变化。一开始我看的书《ZigBee2006无线网络与无线定位实践》中的例子中,操作系统添加任务有一个函数,该函数void osalAddTasks(void)具体实现如下:在其中添加了各个层的初始化函数和事件处理函数。包括Z-Stack自己本身的,还有用户自己添加的任务。 ......【阅读全文】