找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6617|回复: 0
收起左侧

嵌入式软件开发编译器的流行趋势: GCC-ARM

[复制链接]
ID:90014 发表于 2015-9-14 15:48 | 显示全部楼层 |阅读模式
一般来说,程序的编译要经历预处理、编译、汇编以及连接4个阶段。无论是 C/C++ C# JAVA,还是各家PLC程序指令,最终都要转化为CPU
的机器码执行指令,各种语言工具都是实现功能需求的手段,在不同的场合,需要使用不同的工具:严格要求的场合或关键代码,可使用汇编;
操作系统和驱动层使用C编程,中间件或应用层可使用C/C++ C# JAVA编程, 一般工厂自动化场合,可以使用PLC语言编程(属二次开发)。

GCC(GNU Compiler Collection)是一套功能强大、性能优越的编程语言编译器。GCC-ARM是GCC的一个分支,主要用于嵌入式平台中。
对于常用的Cortex-M3/M4,使用GCC-ARM是流行趋势。可以安装一个Eclipse IDE for C/C++ Developers,利用免费的GCC-ARM编译器
完成所有的嵌入式开发工作。

Eclipse IDE for C/C++ Developers
32位 下载地址:
http://mirror.hust.edu.cn/eclips ... -luna-SR2-win32.zip
64位 下载地址:
http://mirror.neu.edu.cn/eclipse ... R2-win32-x86_64.zip

在Eclipse IDE中,可以安装stm32cubemx 4.7.1插件,不用查看1200-1700页的技术参考手册,就能自动生成STM32F103/407底层固件库
的源文件和头文件,以及各模块的初始化代码,并输出工程包。

stm32cubemx 4.7.1插件下载地址(可在windows环境下32位eclipse IDE中运行):
http://www.st.com/st-web-ui/stat ... y/stsw-stm32095.zip

stm32cubemx 4.7.1下载地址(在windows中独立运行):
http://www.st.com/web/en/catalog/tools/PF259242
http://www.st.com/st-web-ui/stat ... ite/stm32cubemx.zip

当然stm32cubemx 4.7.1输出的工程,可以覆盖到Eclipse IDE for C/C++ Developers中的一个工程文件夹中,不用调试就可以成功编译。
对于一个公司来说,不用付钱买昂贵的商业软件,无盗版风险,无后顾之忧,又能培养高手。

GCC编译器的警告输出信息
编译器的报错和警告信息对于程序员来说是非常重要的信息,GCC包含完整的出错检查和警告提示功能,它可以帮助程序员尽快找出错误的或
潜在的错误代码,从而写过更优美的代码。  

GCC还提供了许多以-W开头的选项,允许用户指定输出某个特定的警告,例如:

-Wcomment:出现注释嵌套时发出警告。
-Wconversion:如果程序中存在隐式类型转换,则发出警告。
-Wformat:检查printf和scanf等格式化输入输出函数的格式字符串和参数类型的匹配情况,如果发现不匹配则发出警告。
-Winline:如果函数不能被内联,则发出警告。
-Wlong-long:如果使用了long long型数据,则发出警告。
-Wmain:如果main函数的返回类型不是int型,或者调用main函数时使用的参数数目不正确,则发出警告。
-Wmissing-declarations:如果定义了全局函数,但却没有在头文件中声明,则发出警告。
-Wparentheses:在某些情况下,如果忽略掉了括号,则会发出警告。
-Wreturn-type:如果函数定义了返回类型,而默认类型是int型,编译器会发出警告。
-Wuninitialized:如果使用的自动变量没有被初始化,则发出警告。
-Wundef:如果在#if宏中使用了未定义的变量做判断,则发出警告。
-Wunused:如果声明的变量或static型函数没有使用,则发出警告。

变量(代码)级:指定某个变量警告
int a __attribute__ ((unused));
指定该变量为"未使用的".即使这个变量没有被使用,编译时也会忽略则个警告输出.

文件级:在源代码文件中诊断(忽略/警告)
#pragma GCC diagnostic ignored "-Wunused-parameter"
#pragma GCC diagnostic ignored "-Wmissing-declarations"
#pragma GCC diagnostic ignored "-Wreturn-type"  


诊断-忽略:(关闭警告)
#pragma  GCC diagnostic ignored  "-Wunused"
#pragma  GCC diagnostic ignored  "-Wunused-parameter"

诊断-警告:(开启警告)
#pragma  GCC diagnostic warning  "-Wunused"
#pragma  GCC diagnostic warning  "-Wunused-parameter"

诊断-错误:(开启警告-升级为错误)
#pragma  GCC diagnostic error  "-Wunused"
#pragma  GCC diagnostic error  "-Wunused-parameter"

https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html



一、Eclipse IDE for C/C++ Developers由以下安装包组成:

1.Eclipse IDE for C/C++ Developers
Version:  Luna Service Release 2 (4.4.2)

32位 下载地址:
http://mirror.hust.edu.cn/eclips ... -luna-SR2-win32.zip
64位 下载地址:
http://mirror.neu.edu.cn/eclipse ... R2-win32-x86_64.zip


2.gcc arm 编译器

文件名称: gcc-arm-none-eabi-4_9-2015q1-20150306-win32.exe
下载地址: https://launchpad.net/gcc-arm-em ... -20150306-win32.exe


3.GNU ARM Eclipse Plug-ins

文件名称: ilg.gnuarmeclipse.repository-2.8.1-201504061754.zip
下载地址: http://ncu.dl.sourceforge.net/pr ... .1-201504061754.zip

4.gnuarmeclipse-build-tools-win32
文件名称: gnuarmeclipse-build-tools-win32-2.4-201503242026-setup.exe
下载地址: http://ncu.dl.sourceforge.net/pr ... 503242026-setup.exe

二、新手学习STM32官方例程,可安装以下软件

TrueSTUDIO_for_ARM_Lite_win32_v5.3.0_20150316-1058.exe



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表