笔者之前一直有遇到ARM-GCC生成的bin文件过大的情况,就是要烧录的bin文件高达上百M,比axf文件还大。
1、问题背景
如下图所示,笔者要烧录的bin文件是gd32vf103.bin,有384MB,elf文件才60KB,明显有问题,无法烧录。

生成的elf文件地址也没问题,因为加载到Trace32上面,地址也显示正常,是通过对比链接脚本观察得出来的结论。
- 启动代码地址:0x08000164
- main函数地址:0x20000010
Trace32 一般不做分散加载,加载到哪的地址就算哪,分散加载一般是启动代码做的,属于运行态。具体分散加载可以参考这篇文章