Zigbee应用笔记
本应用笔记是建立在对TI的“ZStack--”理解的基础上的,可以帮助利用TI的Zigbee协议栈开发应用程序。
一创建主函数
程序运行入口是主函数:main() 。
在mian()中包括初始化和正常运行两个部分。
1初始化
初始化期间不接受中断,故首先要屏蔽中断,调用osal_int_disable( INTS_ALL )实现屏蔽中断功能。完成初始化后调用osal_int_enable( INTS_ALL )使能中断。
初始化主要包括:
协议栈寄存器初始化zmain_ram_init()
试验板初始化InitBoard( OB_COLD )这包括各个通用I/O口的设置,确保与硬件电路设计的一致,操作系统时钟设置。这部分在HAL/Target/Config/,用户可以根据自己的硬件设计加以修改。
硬件驱动初始化 HalDriverInit () 这包括TIMER、ADC、LED、LCD、KEY、AES、DMA、UART,用户可以根据需要,通过设置相应的宏定义(HAL_ *)初始化相应的硬件。 configeration部分。
非易失性存储器初始化 osal_nv_init( NULL )
MAC初始化ZMacInit()
设置64位地址zmain_ext_addr() 每一个设备都有一个唯一的64位地址。
初始化协议栈全局变量zgInit()。
初始化应用框架(AF)afInit(),初始化时没有应用端口
操作系统初始化osal_init_system() 这包括寄存器初始化;操作系统时钟初始化;能量管理系统初始化;操作系统初始化osalTaskInit();添加任务 osalAddTasks()这包括网络层任务、应用支持子层任务等,用户可在此添加自己的应用任务;任务初始化osalInitTasks() 这包括为每个任务分配一个任务ID号(task_ID)以及调用每一个任务的初始化函数。
在整个初始化过程中涉及到用户应用的就是试验板初始化,硬件驱动初始化,添加用户应用任务。
2启动系统
完成所有的初始化工作后就可以进入正常工作阶段了,启动操作系统osal_start_system(),这是一个死循环,包括时钟查询和串口通信查询,任务查询以及调用事件处理程序。当没有要处理的任务时系统进入节能模式。
二创建用户应用程序
1 添加用户任务
创建一个用户应用程序,首先要在主函数中添加一个用户任务,操作系统初始化时,调用osalAddTasks()添加任务,osalAddTasks()在App/()实现任务添加:
Void osalTaskAdd ( pTaskInitFn pfnInit,
pTaskEventHandlerFn pfnEventProcessor,
byte taskPriority)
pfnInit 用户任务初始化函数地址。
pfnEventProcessor 用户任务事件处理函数地址。
taskPriority 用户任务优先级,一般设为
Zigbee应用笔记 来自淘豆网m.daumloan.com转载请标明出处.