–std=c11
使用 c11 标准
-c
生成 .o 的 obj 文件
-g -gdwarf-2
生成 gdb 调试信息 格式为 dward-2
-specs=nano.specs
“链接”时使用 newlib(libc),减少大量文件体积。
-lc -lm -lnosys
c 库、数学库、nosys库,用于验证链接是否有效。
-Wl,-Map=xxxxxxxx.map, --cref
生成链接映射列表, --cref 输出交叉引用列表。
-mcpu=cortex-m3 -mthumb
为 cortex-m3 编译,用 thumb-1 汇编,用不了 thumb-2。
-Wall
生成所有警告信息
-fdata-sections -ffunction-sections
编译时单独创建函数为section,在链接的阶段使用 -Wl, -gc-sections 去掉没有用到的sections, 能够大量减少文件体积。