Zigbee代码解析笔记

首先自己去新建一个工程,并把相应的代码拷贝至工程文件夹,同时将文件添加到工程中,这样有一个比较直观的关于代码架构的认识。然后开始读代码。


int main( void )
{
    // Turn off interrupts
    //关闭中断
    osal_int_disable( INTS_ALL );


    // Initialization for board related stuff such as LEDs
    //初始化与板子相关的设备如LED等,设置端口方向
    HAL_BOARD_INIT();


    // Make sure supply voltage is high enough to run
    //确保电压足够支撑系统运行,如果未上电,指示灯会闪烁
    zmain_vdd_check();
	
    // Initialize board I/O
	//关闭中断,关闭所有LED灯
    InitBoard( OB_COLD );
	
    // Initialze HAL drivers
    //初始化定时器,LCD,按键,AD等外围设备
    HalDriverInit();


    // Initialize NV System
	//初始化非易失性存储器
    osal_nv_init( NULL );


    // Initialize the MAC
    //初始化MAC层,都是库函数,看不到实现
    ZMacInit();


    // Determine the extended address
    zmain_ext_addr();


    // Initialize basic NV items
    zgInit();


#ifndef NONWK
    // Since the AF isn't a task, call it's initialization routine
    afInit();
#endif


    // Initialize the operating system
    //初始化操作系统,包括任务的结构体,开启定时器等
    osal_init_system();


    // Allow interrupts
    //打开中断
    osal_int_enable( INTS_ALL );


    // Final board initialization
    //设置按键回调函数
    InitBoard( OB_READY );


    // Display information about this device
    //在LCD上显示本节点信息,没有LCD可以用串口代替
    zmain_dev_info();


    /* Display the device info on the LCD */
#ifdef LCD_SUPPORTED
    zmain_lcd_init();
#endif


#ifdef WDT_IN_PM1
    /* If WDT is used, this is a good place to enable it. */
    WatchDogEnable( WDTIMX );
#endif


	//LED1_SBIT = 1;


	//开始系统的轮询
    osal_start_system(); // No Return from here
#if 0	
#endif//PCT
    return 0;  // Shouldn't get here.
} // main()


  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值