<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[请问YTM32B1MD1要使用A&#x2F;B Swap功能,那A面程序和B面程序要怎么透过IDE刻录呢?]]></title><description><![CDATA[<p dir="auto">现行撰写了一个放在A区Boot+APP+保留区的程序(大小不超过256k Bytes),我想将Boot+APP+保留区的程序COPY一份只要将其版本号修改一下然后放在B区,然后使用BootSwap功能,那A和B区的程序要如何透过IDE写入MCU中呢?</p>
]]></description><link>https://forum.ytmicro.com/topic/1942/请问ytm32b1md1要使用a-b-swap功能-那a面程序和b面程序要怎么透过ide刻录呢</link><generator>RSS for Node</generator><lastBuildDate>Wed, 13 May 2026 11:58:58 GMT</lastBuildDate><atom:link href="https://forum.ytmicro.com/topic/1942.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 11 May 2026 12:56:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 请问YTM32B1MD1要使用A&#x2F;B Swap功能,那A面程序和B面程序要怎么透过IDE刻录呢? on Tue, 12 May 2026 09:36:35 GMT]]></title><description><![CDATA[<p dir="auto">YTM32B1MD1 这颗料可以按 512KB PFlash 来划分，A/B 各 256KB：</p>
<p dir="auto">A 面 / PFLASH0：0x00000000 ~ 0x0003FFFF<br />
B 面 / PFLASH1：0x00040000 ~ 0x0007FFFF</p>
<p dir="auto">使用 A/B Swap 时，建议 A、B 两份程序都按 0x00000000 链接，也就是工程的 linker/scatter 不需要为了 B 面改成 0x40000。原因是执行 Boot Swap 后，硬件会把 PFLASH1 映射到启动地址，程序看到的仍然是 0x00000000 起始地址。</p>
<p dir="auto">烧录方式可以这样做：</p>
<ol>
<li>
<p dir="auto">烧 A 面：</p>
<ul>
<li>使用默认工程地址，直接下载/烧录到 0x00000000。</li>
</ul>
</li>
<li>
<p dir="auto">烧 B 面：</p>
<ul>
<li>工程仍按 0x00000000 编译。</li>
<li>在 IDE/J-Flash 的下载设置里加地址偏移 0x00040000，或对 bin 文件指定下载起始地址 0x00040000。</li>
<li>注意不要再执行整片擦除，否则会把 A 面也擦掉；只擦/写 B 面对应区域。</li>
</ul>
</li>
<li>
<p dir="auto">执行 Boot Swap 后：</p>
<ul>
<li>硬件会交换 PFLASH0/PFLASH1 的地址映射。</li>
<li>可通过 EFM-&gt;STS.BOOT_INFO 判断当前是否从 B 面启动。</li>
<li>SVD 中也能看到 Boot Swap 命令为 EFM CMD = 0x30。</li>
</ul>
</li>
</ol>
<p dir="auto">所以总结就是：A、B 程序都按 0 地址链接；A 面正常烧录，B 面通过烧录工具的 offset/下载地址写到 0x40000。版本号如果只是放在程序内容里，分别编译两份镜像后按上述地址烧录即可。</p>
<p dir="auto">可参考这篇 AB Swap 说明：<br />
<a href="https://forum.ytmicro.com/topic/1163/md14_ab_swap-fee">https://forum.ytmicro.com/topic/1163/md14_ab_swap-fee</a></p>
]]></description><link>https://forum.ytmicro.com/post/8426</link><guid isPermaLink="true">https://forum.ytmicro.com/post/8426</guid><dc:creator><![CDATA[major]]></dc:creator><pubDate>Tue, 12 May 2026 09:36:35 GMT</pubDate></item><item><title><![CDATA[Reply to 请问YTM32B1MD1要使用A&#x2F;B Swap功能,那A面程序和B面程序要怎么透过IDE刻录呢? on Tue, 12 May 2026 02:04:10 GMT]]></title><description><![CDATA[<p dir="auto">md14的swap是硬件swap，swap之后AB的地址会发生互换，程序会从发生互换后的地址开始执行，具体的可以看这篇文章<br />
<a href="https://forum.ytmicro.com/topic/1163/md14_ab_swap-fee?_=1778551066933">https://forum.ytmicro.com/topic/1163/md14_ab_swap-fee?_=1778551066933</a></p>
]]></description><link>https://forum.ytmicro.com/post/8424</link><guid isPermaLink="true">https://forum.ytmicro.com/post/8424</guid><dc:creator><![CDATA[WR]]></dc:creator><pubDate>Tue, 12 May 2026 02:04:10 GMT</pubDate></item></channel></rss>