说起ARM开发,不得不说的就是编译器了。大家都熟悉的gcc,这个平台也有。
反正说起嵌入式开发,大家必然要提的就是toolchain,也叫工具链。还有叫交叉(CROSS)工具链。其实都差不多。为什么有这么多版本的编译器?
主要是市场决定的吧。不同的开发板会提供基于gnu标准修改的一些gcc、as、ld,一般elf文件还都是一样的。大部分原因是不同外设等硬件导致的。
看看主流的ARM编译器有哪些?
1.armcc是ARM官方编译器,DS-5包含该工具。收费。
2.asm-linux-gnueabihf是GNU提供的编译器,ubuntu可以直接sudo apt-get install gcc-arm-linux-gnueabihf下载。DS-5提供该编译器。
3.asm-linux-gnueabi是GNU提供的编译器,ubuntu可以直接sudo apt-get install gcc-arm-linux-gnueabi binutils-arm-linux-gnueabi。
4.asm-none-gnueabi是CodeSourcery提供的编译器。网上的Lite版本免费用,不过需要注册。很多开源项目采用这个编译器。
这里就简单介绍一下,asm-none-gnueabi的安装吧。前两个都是GUI安装,没什么难度。现在的工具其实都比较简单了。
1.下载arm-2010q1-202-arm-none-linux-gnueabi.bin,这个不用教了吧。
2.安装./arm-2010q1-202-arm-none-linux-gnueabi.bin。如果不能运行,使用chmod 755 .。设置一下可以执行。如果提示不能安装,看清楚,选个Y或者N就能安装了。
3:设置环境变量
$gedit ~/.bashrc
在.bashrc文件的末尾最后添加一行,来增加一个环境变量
export PATH="/opt/arm-2009q1/bin:$PATH"
4:使得刚才的设置生效
$ source /.bashrc
$echo $PATH
$printenv
6 测试安装结果 输入
$arm-none-linux-gnueabi-gcc
提示NO input file ,
这就大功告成了。找个代码编译一下吧。这个时候输入arm-然后tab,应该会看到相关的工具。注意,编译不同的东西,工具链可能需要更换。
下面简单介绍一下,每个编译工具的使用。
1.这个是DS-5的工具。IDE界面。看看Makefile就明白了。
# TrustZone Example Makefile
#
# Copyright (C) ARM Limited, 2011. All rights reserved.
#
# This makefile is intended for use with GNU make
# This example is intended to be built with the ARM Compiler armcc
TARGET=TrustZone-versatile.axf
CC=armcc
AS=armasm
LD=armlink
AR=armar
FE=