打印
[工具和软件]

简单使用GCC编译Keil下工程C文件

[复制链接]
2839|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
后会无期1|  楼主 | 2015-4-21 17:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 后会无期1 于 2015-4-21 17:08 编辑

不得不说Keil貌似是国内用户使用最多的IDE了,其被ARM收购之后,ARM嵌入了ARMCC等编译器推出了Keil MDK开发环境更是受到了广大ARM开发工程师的欢迎,庞大的用户群(很多是从当年的51等8位机直接转过来的)、简洁的管理窗口和友好的UI界面等优势都让其风靡一时,而且毕竟现在成了ARM的“亲儿子”了,其对ARM内核的产品支持还是灰常不错的。

    而GCC更是大名鼎鼎,这个至今仍然在维护的GNU项目下的产物,在N多大牛的维护下不断得到优化,其强大的编译效率和跨平台能力也是广为大家所认可(Codewarrior10.x之后,针对ARM的编译器就是集成了GCC)。

    而本文的目的是针对那些想从GCC平台迁移到Keil MDK平台的开发者(并不是代表ARMCC比GCC好,这里不拿这两者做对比),可能用习惯了GCC的话移植到ARMCC下会有些差别需要注意,如匿名的联合体union在ARMCC下是不支持的,要想再ARMCC下使用需要在前面添加“#pragma anon_unions”,而这种格式在GCC却是直接支持的。

    而如果开发者想将原来在GCC下的工程整体迁移到Kei MDK下,如果工程里存在大量的这种定义,那认为的一条条的修改绝对是一件让人抓破头皮的事,呵呵,那有没有简单的一蹴而就的方法呢?咳咳,我都这样说了那肯定就有啦,有点卖关子了,呵呵,其实很简单,我们进入到Project->Options…,设置如下图所示,即添加“--gnu”即可实现在Keil工程下使用GNU工具链GCC来编译工程C文件了,是不是有点太简单了,呵呵。

    最后我需要提一句,这个“--gnu”是添加在C/C++这个选项卡下的,如果你最开始使用Keil重新新建的一个工程并添加了Keil自动生成的启动代码的话(startup_xxx.s)请慎用在ASM选项卡下添加“--gnu”,因为ARMCC下的汇编格式是与GCC完全不一样的,所以用GCC来编译Keil下生成的汇编是不行的,这点需要注意。

相关帖子

沙发
我是MT| | 2015-4-21 17:06 | 只看该作者
本帖最后由 我是MT 于 2015-4-21 17:09 编辑

  • 哥儿们,--gnu可不是你说的用GCC来编译。而是支持GNU扩展而已。
    关于使用gnu的编译器支持是:http://www.keil.com/arm/gnu.asp

使用特权

评论回复
板凳
后会无期1|  楼主 | 2015-4-21 17:10 | 只看该作者
纠正:“--gnu”实际上是在ARMCC中加入支持GNU扩展格式,当然实际上Keil是可以添加GCC的编译器的,通过keil菜单中“Project > Manage > Components, Environment, Books..”添加,前提是你得提前装好GCC编译器。

使用特权

评论回复
地板
后会无期1|  楼主 | 2015-4-21 17:10 | 只看该作者
我是MT 发表于 2015-4-21 17:06
  • 哥儿们,--gnu可不是你说的用GCC来编译。而是支持GNU扩展而已。关于使用gnu的编译器支持是:http://www ...

  • 谢谢你的纠正,之前的确是概念不对,我需要在**最后修正一下。

    使用特权

    评论回复
    5
    fhguo1990| | 2015-4-21 17:11 | 只看该作者
    楼主  您好   我现在正苦于如何将一款开源gcc环境下的飞控移植到keil  中  

    使用特权

    评论回复
    6
    后会无期1|  楼主 | 2015-4-21 17:12 | 只看该作者
    fhguo1990 发表于 2015-4-21 17:11
    楼主  您好   我现在正苦于如何将一款开源gcc环境下的飞控移植到keil  中

    GCC移植到Keil下可以直接参考我上面的方法或者直接把GCC编译器嵌入到Keil下。

    使用特权

    评论回复
    7
    aozima| | 2015-4-21 17:27 | 只看该作者
    古二真

    使用特权

    评论回复
    8
    FSL_TICS_ZJJ| | 2015-4-27 13:30 | 只看该作者
    非常感谢你关于Kinetis的经验分享 !

    使用特权

    评论回复
    9
    hualiangjia| | 2017-3-28 10:16 | 只看该作者
    我 按照您的方法没法实现啊,求指导

    使用特权

    评论回复
    发新帖 我要提问
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    20

    主题

    208

    帖子

    0

    粉丝