解决 gcc + openocd + stm32 烧录程序时覆盖 bootloader 的问题

我希望将 bootloader 放到 0x08000000,主程序放到 0x08008000。gcc 编译时默认会把 Program Header 的 Align 调到 0x10000,导致产生的 ELF 文件的加载地址从 0x08000000 起始,openocd 烧写时会覆盖掉 bootloader,产生麻烦。解决办法是在链接器参数中增加 -z max-page-size=4096,调小页面大小;或者直接增加 -n选项,让 Program Header 不要对齐。修改后,烧录时就不会覆盖掉 bootloader 了。

WordPress Appliance - Powered by TurnKey Linux