ZigBee
的任务轮询如下图:
打开协议栈文件夹Texas Instruments\Projects\zstack
,里面包含了TI
公司的例程和工具。再打开Samples
文件夹:
Samples
文件夹里面有三个例子,即GenericApp
、SampleApp
、SimpleApp
。在这里我们选择SampleApp
对协议栈的工作流程进行讲解。打开SampleApp\CC2530DB
下的工程文件SampleApp.eww
,留意左边的工程目录,我们暂时只需要关注Zmain
文件夹和App
文件夹。
任何程序都在main
函数开始运行,Z-STACK
也不例外。打开Zmain.C
,找到main
函数。大概浏览一下main
函数的代码:
int main ( void ) {
osal_int_disable ( INTS_ALL ); /* Turn off interrupts 关闭所有中断 */
HAL_BOARD_INIT(); /* Initialization for board related stuff such as LEDs */
zmain_vdd_check(); /* Make sure supply voltage is high enough to run 检查芯片电压是否正常 */
InitBoard ( OB_COLD ); /* Initialize board I/O 初始化I/O、LED、Timer等 */
HalDriverInit(); /* Initialze HAL drivers 初始化芯片各硬件模块 */
osal_nv_init ( NULL ); /* Initialize NV System 初始化Flash存储器 */
ZmacInit(); /* Initialize the MAC 初始化MAC层 */
zmain_ext_addr(); /* Determine the extended address 确定“IEEE 64”位地址 */
zgInit(); /* Initialize basic NV items 初始化非易失变量 */
#ifndef NONWK
afInit(); /* Since the AF isn't a task, call it's initializa