Cortex-M0 ARM-GCC 编译链接选项

经过两周的努力,使用ARM-GCC编译出来的文件终于可以下载到板子上跑起来了,关于编译器的配置解释如下:

编译环境: windows+cygwin

使用编译器:arm-none-eabi-gcc-4.6:https://launchpad.net/gcc-arm-embedded/4.6/2011-q4-major

 

编译选项:

-Wall                                  打开waring

-fsigned-char                      将char做为signed

-fno-builtin                         不使用build in函数(glibc函数)

-ffunction-sections              将函数放到自己的section中(链接时配合--gc-sections可以移除没有使用的函数)

-fdata-sections                   将data放到自己的section中(链接时配合--gc-sections可以移除没有使用的data)

-mcpu=cortex-m0               cpu类型cortex-m0

-mthumb                            指定arm指令集 thumb(16bit/32bit混合指令集)

 

链接选项:

-mcpu=cortex-m0               cpu类型cortex-m0

-mthumb                            指定arm指令集 thumb(16bit/32bit混合指令集)

-nostartfiles                                                      不使用编译器默认的ld文件和startup文件

-Wl,-Map=$(IMG_PATH)/$(IMG_MAP)                   生成指定的map文件

-Wl,--gc-sections                                              移除唯有链接的内容

-Wl,-T$(L_SCRIPT)                                            指定ld文件

 

 

出现过的问题:

编译选项忘了使用-mcpu=cortex-m0 –mthumb,导致编译后的文件无法运行。

链接时gcc -Map=$(IMG_PATH)/$(IMG_MAP) --gc-sections 会直接报不能识别选项,需要使用-Wl,--gc-sections来指定是链接选项即可

 

其它的几个命令:

elf 转bin: arm-none-eabi-objcopy -O binary –S file.elf file.bin

分析elf size: arm-none-eabi-size file.elf

转载于:https://my.oschina.net/lgl88911/blog/70505

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值