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