跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1M系列
  4. YTM32B1MC0 启用ROM Boot后,再下载Demo程序上电后无法运行。

YTM32B1MC0 启用ROM Boot后,再下载Demo程序上电后无法运行。

已定时 已固定 已锁定 已移动 YTM32B1M系列
2 帖子 1 发布者 368 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • runR 离线
    runR 离线
    run YunTu
    写于 最后由 编辑
    #1

    问题现象

    在测试完secure boot例程后,发现运行其他demo时,上电无法运行。

    原因分析

    secure boot例程 会去对OTP最后一个word(0x1000_3BFC) 写非0xFFFFFFFF值。
    这样下次上电启动时,ROM Boot 判断0x1000_3BFC地址有非0xFFFFFFFF值就会去解析BVT。
    目前其他Demo例程里面是没有配置BVT的,BVT解析失败就会陷入ROM的死循环中。
    9481f694-b332-4eef-b4f2-94ec8f364956-image.png

    解决方法

    • 因为OTP是不能擦除的,因此要特别注意使用OTP时,最后一个word要保留给ROM Boot使用,不要要做其他用途。
    • 如果0x1000_3BFC已经被写成了非0xFFFFFFFF值。可以手动的烧写一个跳转到0地址的BVT(BVT_BootJumpToAddr0x00.hex)到Flash。
      561b9690-063c-4e8d-977d-5aa7d00a3604-image.png
    1 条回复 最后回复
    0
    • DigaD Diga 在 中 引用了 这个主题
    • xowmX xowm 被引用 于这个主题
    • runR 离线
      runR 离线
      run YunTu
      编写于 最后由 编辑
      #2

      为了防止OTP误写,可以使用如下MPU的方式保护一下:

      static void OtpProtectByMpu(void)
      {
          ARM_MPU_Region_t mpuTable[1] = {
              //                     BASE          SH             RO   NP   XN                         LIMIT        ATTR 
              { .RBAR = ARM_MPU_RBAR(0x10003A00U, ARM_MPU_SH_NON, 1UL, 1UL, 1UL), .RLAR = ARM_MPU_RLAR(0x10003BFFU, 0UL) },
          };
      
          ARM_MPU_SetMemAttr(0, ARM_MPU_ATTR(         /* Normal memory */
              ARM_MPU_ATTR_MEMORY_(1U, 0U, 1U, 0U),   /* Outer Write-Through non-transient with read allocate and write not allocate */
              ARM_MPU_ATTR_MEMORY_(1U, 0U, 1U, 0U)    /* Inner Write-Through non-transient with read allocate and write not allocate */
          ));
          ARM_MPU_Load(0U, mpuTable, 1);
          ARM_MPU_Enable(MPU_CTRL_PRIVDEFENA_Msk);
      }
      
      1 条回复 最后回复
      0

    • 云途开发生态介绍

      快速上手云途开发生态

    • 云途论坛规则/Yuntu Forum Rules

      发帖前请查看

    • YT CONFIG TOOL调查问卷

      帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

    • can
      19
      demo
      19
      uds
      11
      lin stack
      7
      fbl
      5
      yt-link
      5
      adc模块
      4
      md14
      4
      Online Users
      • 登录

      • 登录或注册以进行搜索。
      • 第一个帖子
        最后一个帖子
      0
      • 版块
      • 最新
      • 标签
      • 热门