codeblocks 怎么写编译选项_讨论单片机编译使用集成IDE工具或开源gcc编译器优缺点...

大家好,第一次写文章希望大家多给意见,有笔误之处敬请谅解!

嵌入式软件或单片机工程师都有接触过多种MCU和多种集成编译开发工具,如常见的KEIL,IAR等。国产芯片厂商也有很多自己的IDE集成开发工具。也有很多公司或工程师偏爱于最原始gcc编译器。我们主要来讨论从产品研发角度,怎样选择好编译开发环境,更好适应市场需求。

2bad64aaa77387fbd01e3e3f728fb006.png
b5cad7d71cc23cb30de000fea665038f.png
801f72c8ea97cf4a58a47610b744d81d.png

我在大学的时候,刚接触单片机软件程序编写,用的是51单片机KEIL编译。当时还不知道有其他更好的代码编辑软件,都是直接在KEIL上建立工程,修改代码,编译调试。

对于初学者,有一个集成开发编译环境,确实是很好的事情,能快速掌握MCU基本功能控制,在板子上快速实现简单的功能。后来开始接触不同的嵌入式系统,开始一步步理解编译环境的搭建,编译脚本和makefile编写,打通了另外的思路。原来最原始的gcc编译才是程序开发的初衷,自己掌控编译的世界。

下面讨论一下优缺点对比。

1.操作难度。集成工具方便快捷。gcc编译器难度大一点需要自己写链接文件ld文件,makefile,编译脚本。

2.预编译选项添加。这一点两种编译器都不复杂,集成工具有专门的编译宏添加菜单,而gcc编译只需在makefile 中添加编译宏。

3.代码工程维护。集成编译环境维护时需要上传一些工程文件。而gcc相对简单,编译脚本,ld文件,makefile 这些就可以。当然复杂的操作系统是有大量的makefile 和链接文件需要维护。

4.产品开发数量变多,公司需要考虑维护成本时往往考虑多个产品共用一套代码。在兼容性上面一般有两种机制。一种是程序运行起来通过配置信息进行选择运行的功能,当然配置信息是需要存放在ROM或FLASH。一种是编译时选择编译不同的代码块甚至是源文件。这种时候gcc编译的优势体现出来,开发者可以编写脚本自己选择不同产品编译选项。而集成编译器很难做到不同的产品分支选择。

5.软件研发的过程中常常遇到调试版本和正式发布版本的区别,这时候使用gcc编译可以在编译脚本做一个个简单的编译选项,编译时直接决定是debug或release版本,相应的代码可以打开或关闭调试信息等一些功能。而集成开发环境相对麻烦是要在编译时修改编译菜单。

6.代码维护上一般使用Linux服务器,gcc编译脚本的方式和git命令行能更快捷的在Linux服务器上配合。当然git或svn都有在windows 的集成环境,操作也很方便。这个取决于个人喜好。

最后说一下,我在工作过程中有遇到公司是使用集成工具也有公司使用gcc编译。用集成工具还有一个好处是调试方便,可以用JLINK在线调试。不过有串口调试信息也能完成调试,只是没有JLINK一行一行执行代码来的快捷,还能随时看到MCU各种状态寄存器。多一个工作要飞线把JLINK接出来。

综上,经过许多项目工作后,我是更喜欢gcc编译器。能让我更好地理解程序编译运行的细节,自己搭建编译环境也能有更好的基础去学习Linux或Android等强大的嵌入式系统。第一篇文章写完,希望对大家有所帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值