你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

BlueNRG ota升级中ota_sw_activation变量上电是随机值吗?

[复制链接]
yinqw 提问时间:2023-9-8 16:09 / 未解决

最近在看BlueNRG ota升级代码时有一个疑惑,ota_sw_activation变量是一个未初始化的值,按照ram特性上电应该是一个随机值,那么在OTA_Check_ServiceManager_Operation()函数中判断值就可能存在偶然的误操作?

if (ota_sw_activation == OTA_APP_SWITCH_OP_CODE_GO_TO_OTA_SERVICE_MANAGER) //Go to OTA Service manager
  {

    /* Unlock the Flash */
    flash_sw_lock = FLASH_UNLOCK_WORD;

    /* Set Invalid valid tag x OTA Application with OTA Service Manager  for allowing jumping to OTA Service manager */
    FLASH_ProgramWord(APP_WITH_OTA_SERVICE_ADDRESS + OTA_TAG_VECTOR_TABLE_ENTRY_OFFSET, OTA_INVALID_OLD_TAG);

    /* Lock the Flash */
    flash_sw_lock = FLASH_LOCK_WORD;

    /* Reset Service Manager ram location */ 
    ota_sw_activation = OTA_INVALID_OLD_TAG; 
  }
收藏 评论1 发布时间:2023-9-8 16:09

举报

1个回答
yibin_st 回答时间:2023-9-12 12:18:36

Hello yinqw,

如果是重新上电,这个变量确实会丢失掉;在这种情况下,如果是乒乓升级的方式,旧的固件会被重新引导;升级失败。

按照正常的流程设计,OTA 固件传输完成后,会设置该变量并复位;

复位后,由于该变量被分配到 NO_INIT_SECTION 区,因此不会被初始化,系统可以根据该变量的值进行下一步动作。

Yibin CAI

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版