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

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. 请问YTM32B1MD1要使用A/B Swap功能,那A面程序和B面程序要怎么透过IDE刻录呢?

请问YTM32B1MD1要使用A/B Swap功能,那A面程序和B面程序要怎么透过IDE刻录呢?

已定时 已固定 已锁定 已移动 Discussion & Question
3 帖子 3 发布者 118 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • abcbillA 离线
    abcbillA 离线
    abcbill
    编写于 最后由 编辑
    #1

    现行撰写了一个放在A区Boot+APP+保留区的程序(大小不超过256k Bytes),我想将Boot+APP+保留区的程序COPY一份只要将其版本号修改一下然后放在B区,然后使用BootSwap功能,那A和B区的程序要如何透过IDE写入MCU中呢?

    1 条回复 最后回复
    0
    • WRW 离线
      WRW 离线
      WR YunTu
      编写于 最后由 WR 编辑
      #2

      md14的swap是硬件swap,swap之后AB的地址会发生互换,程序会从发生互换后的地址开始执行,具体的可以看这篇文章
      https://forum.ytmicro.com/topic/1163/md14_ab_swap-fee?_=1778551066933

      1 条回复 最后回复
      0
      • majorM 离线
        majorM 离线
        major YunTu
        编写于 最后由 编辑
        #3

        YTM32B1MD1 这颗料可以按 512KB PFlash 来划分,A/B 各 256KB:

        A 面 / PFLASH0:0x00000000 ~ 0x0003FFFF
        B 面 / PFLASH1:0x00040000 ~ 0x0007FFFF

        使用 A/B Swap 时,建议 A、B 两份程序都按 0x00000000 链接,也就是工程的 linker/scatter 不需要为了 B 面改成 0x40000。原因是执行 Boot Swap 后,硬件会把 PFLASH1 映射到启动地址,程序看到的仍然是 0x00000000 起始地址。

        烧录方式可以这样做:

        1. 烧 A 面:

          • 使用默认工程地址,直接下载/烧录到 0x00000000。
        2. 烧 B 面:

          • 工程仍按 0x00000000 编译。
          • 在 IDE/J-Flash 的下载设置里加地址偏移 0x00040000,或对 bin 文件指定下载起始地址 0x00040000。
          • 注意不要再执行整片擦除,否则会把 A 面也擦掉;只擦/写 B 面对应区域。
        3. 执行 Boot Swap 后:

          • 硬件会交换 PFLASH0/PFLASH1 的地址映射。
          • 可通过 EFM->STS.BOOT_INFO 判断当前是否从 B 面启动。
          • SVD 中也能看到 Boot Swap 命令为 EFM CMD = 0x30。

        所以总结就是:A、B 程序都按 0 地址链接;A 面正常烧录,B 面通过烧录工具的 offset/下载地址写到 0x40000。版本号如果只是放在程序内容里,分别编译两份镜像后按上述地址烧录即可。

        可参考这篇 AB Swap 说明:
        https://forum.ytmicro.com/topic/1163/md14_ab_swap-fee

        1 条回复 最后回复
        0

      • 云途开发生态介绍

        快速上手云途开发生态

      • 云途论坛规则/Yuntu Forum Rules

        发帖前请查看

      • YT CONFIG TOOL调查问卷

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

      • can
        24
        demo
        22
        lin stack
        13
        uds
        13
        md14
        6
        fbl
        5
        yt-link
        5
        adc模块
        4
        Online Users
        • 登录

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