z-stack初始化物理地址

在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里面的物理地址。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ZCCT全称为ZStack云计算系统管理员 ZStack Cloud Computing Technician。本次课程学习是ZCCT在线认证的必修培训视频,完成视频学习的学员,可以登陆ZStack官网完成ZCCT 在线认证。 课程目标: 1、自行下载快速安装部署私有云平台; 2、掌握本地存储、扁平网络、云主机管理等技能 一、课程要点: 1、了解云计算基础及ZStack云平台基础 2、具备安装部署ZStack云平台的基础能力 3、 掌握本地存储、扁平网络等基础平台的部署运维 4、掌握镜像模板管理、云主机管理、企业管理等基础运维操作 二、认证方式: CSDN学院完成全部在线课程学习以后,到ZStack官网“认证培训”模块,点击立即开通“ZCCT ”,完成理论和实践考试。通关步骤只需4步:视频学习》理论考试》实践考试》颁发证书!最快1天可拿证! 三、为什么需要ZCCT? 知识储备: 区别于OpenStack,ZStack是完全国产自研的开源IaaS架构。通过ZCCT在线认证,可以快速掌握ZStack云平台安装部署、运维交付、云计算技术及销售技能等知识。 如今企业用人重视一专多能的融合型人才,学习ZStack云平台,会有更多的机会接触到ZStack及阿里云、袋鼠云、XSKY、Rancher等合作伙伴的产品,比如ZStack+阿里达摩院、ZStack+容器等应用场景,既可以拓展个人视野,也能学习到更多技能。 市场商机: ZStack云平台走的是产品化路线,其简单、健壮、弹性、智能的4S特性,可以帮助合作伙伴、客户实现快速交付、快速部署、并可线性扩容。截至目前已有200多家伙伴与ZStack建立了合作,共同为超过1000家企业用户提供云基础架构,其中不乏徐工集团、南京大学、南京地铁等大型行业云项目。 人脉圈与就业: 我们还建立了多个社区用户QQ大群、钉钉伙伴赋能群,服务上万社区用户及开发者们,加入我们的社群,可以接触到更多技术大牛,人脉圈子也更广。而在ZStack用户群体、伙伴圈中,聚集了很多国内优秀的企业:一线互联网公司、国有企事业单位、各个行业的领军企业、集成商、渠道经销商等,这些也是我们考取ZCCT在线认证以后的人才通道,为大家求职增光添彩!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值