z-stack初始化物理地址
来源:互联网 发布:手机上解压软件 编辑:程序博客网 时间:2024/05/17 21:36
在z-stack提供的实例工程中,接通电源后都会出现LED2闪几下,LED1一直亮着。然后,调试一段时间后我,发现LED1,LED2都不亮了。
经过逐步追踪发现,灯闪烁的程序实现在zmain_ext_addr()中,它的代码如下:
static ZSEG void zmain_ext_addr( void )
{
uint8 i;
uint8 led;
uint8 tmp;
uint8 *xad;
uint16 AtoD;
// Initialize extended address in NV
osal_nv_item_init( ZCD_NV_EXTADDR, Z_EXTADDR_LEN, NULL );//初始化存储器
osal_nv_read( ZCD_NV_EXTADDR, 0, Z_EXTADDR_LEN, &aExtendedAddress );//读存储器
// Check for uninitialized value (erased EEPROM = 0xFF)
xad = (uint8*)&aExtendedAddress;
for ( i = 0; i < Z_EXTADDR_LEN; i++ )
if ( *xad++ != 0xFF ) return;//如果地址中有一个字节不是0Xff(即空)则认为物理地址有效,返回
#ifdef ZDO_COORDINATOR
tmp = 0x10;
#else
tmp = 0x20;
#endif
// Initialize with a simple pattern
xad = (uint8*)&aExtendedAddress;
for ( i = 0; i < Z_EXTADDR_LEN; i++ )
*xad++ = tmp++;//初始化扩展地址
// Flash LED1 until user hits SW5
led = HAL_LED_MODE_OFF;
while ( HAL_KEY_SW_5 != HalKeyRead() )
{
MicroWait( 62500 );
HalLedSet( HAL_LED_1, led^=HAL_LED_MODE_ON ); // Toggle the LED
MicroWait( 62500 );
}
HalLedSet( HAL_LED_1, HAL_LED_MODE_OFF );
// Plug AtoD data into lower bytes
AtoD = HalAdcRead (HAL_ADC_CHANNEL_7, HAL_ADC_RESOLUTION_10);
xad = (uint8*)&aExtendedAddress;
*xad++ = LO_UINT16( AtoD );
*xad = HI_UINT16( AtoD );
#if !defined( ZTOOL_PORT ) || defined( ZPORT ) || defined( NV_RESTORE )
// If no support for Z-Tool serial I/O,
// Write temporary 64-bit address to NV
osal_nv_write( ZCD_NV_EXTADDR, 0, Z_EXTADDR_LEN, &aExtendedAddress );//把物理地址写入NV
#endif
}
由于我在条件编译中选择了NV_RESTORE,所以在下一次程序运行的时候就自动读取NV里面的物理地址。
- z-stack初始化物理地址
- z-stack halprocesspoll与初始化
- Z-stack之OSAL初始化流程
- Z-Stack 中ZigBee 设备的 IEEE 地址 的初始化,读取,设置
- Z-Wave Protocol Stack
- Z-Stack调整功率
- z-stack定时器
- z-stack 代码段
- Z-Stack消息类型
- Z-Stack acknowledgements
- Z-STACK非易失性存储
- Zigbee之Z-Stack
- Z-Stack调整功率
- Z-STACK非易失性存储
- Z-stack是什么
- z-stack 引脚配置
- Z-Stack分析--HAL_BOARD_INIT()
- Z-Stack分析--zmain_vdd_check()
- Ceph 文件系统源代码分析 - OS module (2)
- z-stack调试之ZDApp_init
- 第一次宕机
- 【实习生笔试面试题】2013年搜狐SOHU实习生技术笔试题
- Linux混杂设备驱动(watchdog)
- z-stack初始化物理地址
- ubuntu12.10安装交叉编译器arm-none-linux-gnueabi-gcc
- z-stack halprocesspoll与初始化
- Structs学习
- matlab中semilogx画图和显示errorbar ‘工’字型误差
- 类的构造(2):对象的内存布局
- 关于MySQL的自增
- OD使用教程2 解密系列之调试篇02
- UAAP解决方案小记(一)