zigbee之主函数main()
首先打开在工程zmain文件夹下的zmain.c文件,如图所示:
下面把主函数复制过来简单看下:
ZSEG int main( void )
{
// Turn off interrupts------------关闭中断
osal_int_disable( INTS_ALL );
// Initialize HAL-----------初始化HAL,关于HAL是什么我想后面会有介绍的。
HAL_BOARD_INIT();
// Make sure supply voltage is high enough to run----电压检测,最好是能保证芯片能正常工作的电压
zmain_vdd_check();
// Initialize stack memory-------------初始化stack存储区
zmain_ram_init();
// Initialize board I/O------------初始化板载IO
InitBoard( OB_COLD );
// Initialze HAL drivers-------------初始化HAL驱动
HalDriverInit();
// Initialize NV System--------------初始化NV系统,NV是什么后面我想也会有介绍的
osal_nv_init( NULL );
// Determine the extended address------------确定扩展地址(64位IEEE/物理地址)
zmain_ext_addr();
// Initialize basic NV items----------------初始化基本NV条目
zgInit();
// Initialize the MAC----------------初始化MAC
ZMacInit();
#ifndef NONWK
// Since the AF isn't a task, call it's initialization routine
afInit();
#endif
// Initialize the operating system----------初始化操作系统,看样子这里面还有OS,麻烦了……..!
osal_init_system();
// Allow interrupts-------------允许中断
osal_int_enable( INTS_ALL );
// Final board initialization------------------最后的版在初始化
InitBoard( OB_READY );
// Display information about this device---------------显示设备信息
zmain_dev_info();
/* Display the device info on the LCD */------------液晶支持显示
#ifdef LCD_SUPPORTED
zmain_lcd_init();
#endif
osal_start_system(); // No Return from here-------------------这里没有返回,大概是进入OS了。
} // main()
结合以上的分析我们可以看到基本上都是初始化函数,因为函数名称都基本上带了init字样的,这样一看名称就知道大概功能了。
今天就到着了,还有下文我将尽快写出。