linux中keil如何编译器,Keil5配置GCC编译器编译STM32工程

Keil一般使用ARMCC编译MCU工程代码。偶然听说Keil也是支持内嵌GCC编译器的。于是尝试了网上博客所述的一些方法,最终找到了一篇博客

http://blog.csdn.net/lan120576664/article/details/46806991

按照文中所述,发现仍存在一些其他错误,后来又查找了其他相关资料,在这作以总结

一、下载GCC编译器

https://launchpad.net/gcc-arm-embedded/

二、安装GCC

GCC解压到keil的安装目录下面。如下图

fd4044782eb2b3ded074b2667f495b78.png

三、配置Keil

如下图所示进行相关设置:

Prefix:arm-none-eabi-

Folder:D:keil_MDKKeil_v5ARMGCC (注:这里是刚刚安装的GCC所在位置)

3f080f401a13438c6d1b0594a2d24389.png

四、配置工程设置

1.配置CC编译规则

注意勾选一下选项,填写规则

Misc Controls : -mcpu=cortex-m3 -mthumb -fdata-sections -ffunction-sections

注:

1.这里我用的cortex-m3,如果你是m4内核就改成4)

2.-mthumb的意义是:使用这个编译选项生成的目标文件是Thumb的

3.-fdata-sections和-ffunction-sections和下文连接规则一起说

a69f88b5a8600cd311f17d0dd4f9ae0f.png

2.配置Assembler编译规则

类似前一项

Misc Controls : -mcpu=cortex-m3 -mthumb

194a4510384a366c2f80fc1ce8511dc9.png

3.配置Linker连接规则

这里要添加连接脚本,一般可以在官方提供的固件库包找到类似的

Misc Controls : -Wl,–gc-sections

注:

1.注意这个gc前面是两个短小的“–”,由于博客的问题直接复制会出错

2.-wl, 表示后面的参数 –gc-sections 传递给链接器

3.-fdata-sections和-ffunction-sections和–gc-sections的说明如下

-ffunction-sections和-fdata-sections会使编译器为每个function和data item分配独立的section。 –gc-sections会使连接器删除没有被使用的section。

连接操作以section作为最小的处理

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值