EIDE [Builder Options]下[Global Options]说明
ARM/Thumb Mode — Thumb Mode
-
使用
Thumb指令集(16位压缩指令) -
Cortex-M 系列(如你的 N32G430)只支持
Thumb/Thumb-2,必须选这个 -
选 ARM Mode 会编译失败
Thumb Interwork
-
允许
ARM指令和Thumb指令**混合调用** -
Cortex-M不需要
Hardware floating-point ABI
-
<span data-type="code">soft</span>:纯软件模拟浮点,最慢 -
<span data-type="code">softfp</span>:用硬件FPU计算,但函数调用用软件ABI传参,兼容性最好 -
<span data-type="code">hard</span>:最快,但库必须全部用hard编译,否则链接报错 -
N32G430 /STM32F4这种有 FPU的,<span data-type="code">softfp</span>是稳妥选择,但如果不调用别人编译好的lib,可以使用hard
Output debug information
-
生成调试符号(.elf 里含地址/变量名映射)
-
调试阶段必须开,量产时可关掉缩小固件体积
Other Global Options
--specs=nosys.specs --specs=nano.specs
| 选项 | 作用 |
|---|---|
<span data-type="code">--specs=nosys.specs</span> |
用**空桩函数**替代系统调用(_write/_read等),裸机必须加,否则链接报”undefined reference to _sbrk“ |
<span data-type="code">--specs=nano.specs</span> |
使用 **newlib-nano**,精简版 C 库,printf 体积大幅减小,嵌入式推荐 |
⚠️ –specs=nano.specs带来的问题
<span data-type="code">--specs=nano.specs</span> 下的 printf **默认不支持 %f 浮点格式化**,如果你的日志里有打印浮点数,需要加:
-u _printf_float
否则浮点日志会输出空或乱码
