- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
从零开始学习Zstack之2--------Sample例子演示
上节基本上初步认识了Zstack的一些情况,今天继续我的学习,打开Sample例子看看,究竟ZIGBEE是怎么回事。毫无疑问:如果是第一次打开这个例子工程,肯定很迷糊,因为此时我迷糊了。对图2-1我简直是相当迷糊。?图2-1这么多文件夹,打开之后又有那么多文件,从何看起?不要着急,特别是有些人拿到之后,啥都不知道的人第一个问题就是:我要实现XXX,在哪修改或者在哪添加我的函数呢?凡是我遇到这样的客户,我就可以肯定他技术部咋的。就连我这个外行都知道,不把这些弄明白,就是实现XXX只需要修改一个字母,那也不知道在哪改啊?所以我不急,但是我也理解很多客户,因为有时候项目催的比较急,毕竟老板都是外行嘛!两条路:1就是先看主函数,2就是看看TI提供例子说明文档没有。我这里先看看主函数再说哈!因为我就知道从主函数看起.没办法大概每个文件夹找啊,主函数的特征还是比较明明显的,见图2-2所示:?图2-2下面把主函数复制过来简单看下: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 isnt a task, call its 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字样的,呵呵,个人觉得TI的变成习惯比我好,一看名称就知道大概功能了。所以这里也奉劝各位像我这样菜鸟级的初学者,一开始一定就要养成规范化编程的习惯,据说这样维护以及以后升级或者移植兼容性都比
文档评论(0)