除了ARM提供的工具链之外,在Cortex-M0软件开发中,也可以使用其他供应商提供的开发工具,其中包括许多基于GNU工具链的开发组件。

1. Sourcery G++ 编译链

Sourcery_G++软件包Sourcery_G++软件包.png

对于Cortex-M0软件开发,应该使用EABI版本的Sourcery G++;如果Cortex-M0程序需要使用μClinux版的编译器。

Sourcery G++ 官网:https://sourcery.sw.siemens.com

不同Sourcery G++版本对比:

Sourcery_G++不同版本Sourcery_G++不同版本.png

2. GCC开发流程

GNU工具链包括C编译器、汇编器、链接器、库、调试器以及其他工具。开发应用程序时,可以使用C、汇编或混合语言编程。

GNU相关工具GNU相关工具.png

使用gcc典型软件开发流程:

GCC典型开发流程GCC典型开发流程.png

笔者在Ubuntu 18.04 x64 系统下进行搭建。下载 arm-2011.03-42-arm-none-eabi-i686-pc-linux-gnu.tar.bz2 安装包(也可以在ARM官网下载最新版本),解压到特定目录。

在终端 export 环境变量后,输入 " arm-none-eabi-gcc -v " 查看版本信息,如下:

ubuntu下arm-none-eabi-gcc安装ubuntu下arm-none-eabi-gcc安装.png

GCC主要编译选项,如下:

gcc编译选项gcc编译选项.png

比如,mcpu对应参数,如下:

mcpu类型mcpu类型.png

3. 编译举例

以 STM32F030F4P6 为例,其 GCC 工程源码已经整理好,可直接下载(stm32f030F4P6_gnu.zip)。

解压工程源码,在终端中直接运行 make,编译输出如下:

ubuntu下gnu_arm编译ubuntu下gnu_arm编译.png

最终生成 elf 、hex、bin 文件,如下:

编译生成bin编译生成bin.png

关于GCC工具的进一步使用方法,可查看官网应用手册。

注意:本站所有文章除特别说明外,均为原创,转载请务必以超链接方式并注明作者出处。 标签:ARM,Cortex-M0,Cortex-M0应用开发,GNU_ARM