|
请问各位大神,下列代码为什么要先关闭中断,最后又要开启中断,急求,初学zigbee,望解释稍微详细些,非常感谢!
int main( void )
{ osal_int_disable( INTS_ALL ); //关闭所有中断
HAL_BOARD_INIT(); //初始化系统时钟
zmain_vdd_check(); //检查芯片电压是否正常
InitBoard( OB_COLD ); //初始化 I/O ,LED 、Timer 等
HalDriverInit(); //初始化芯片各硬件模块
osal_nv_init( NULL ); //初始化 Flash 存储器
ZMacInit(); //初始化 MAC 层
zmain_ext_addr(); //确定 IEEE 64 位地址
zgInit(); //初始化非易失变量
#ifndef NONWK // Since the AF isn't a task, call it's initialization routine
afInit();
#endif osal_init_system(); //初始化操作系统
osal_int_enable( INTS_ALL ); //使能全部中断
InitBoard( OB_READY ); //最终板载初始化
zmain_dev_info(); //显示设备信息
#ifdef LCD_SUPPORTED
zmain_lcd_init(); //初始化 LCD
#endif
#ifdef WDT_IN_PM1 /* If WDT is used, this is a good place to enable it. */ WatchDogEnable( WDTIMX );
#endif osal_start_system();// No Return from here 执行操作系统,进去后不会返回
return 0; // Shouldn't get here.
} // main()
|
|