面向ARM Cortex-A架构的交叉编译环境搭建
基于ARM架构的CPU应用日趋广泛,小到各种传感器、控制器里的Cortex-M系列MCU,大到智能手机、平板里广泛应用的Cortex-A系列CPU,都闪烁着ARM公司的魅影。
有处理器就要有相应的应用程序及操作系统,这就涉及到了程序编译的问题。对于这类程序的编译,我们一般是在PC上用交叉编译工具链编译,然后再下载到目标设备上运行。为什么如此这般折腾,而不直接在目标设备上直接编译呢?我们知道,嵌入式系统都是为处理特定任务而裁剪定制的,其运算能力及存储能力都不足以支撑完整的编译工具链运行,即使是现在随着Cortex-A系列CUP的性能提升,足以支撑完整的linux系统和编译工具链运行,但其最快的运行速度与intel的x86处理器来说还相距甚远,所以我们一般都用基于x86系统完善的编程环境进行编程及交叉编译和debug,将编译好的二进制程序下载到目标设备运行。
对于面向Cortex-A架构的交叉编译工具链,我个人比较中意Linaro社区的工具链,其对性能的优化做的是最好的,毕竟有ARM公司的加持嘛。大家可到官网进行下载:
http://www.linaro.org/downloads/
这里我将压缩包下载到了桌面,然后进行解压。
使用tar命令 并指定 -C 选项 将压缩包解压到指定路径
tar xvf gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz -C ~/toolchain/
通过ls命令,我们可以看到在~/toolchain/路径下已经生成了新的目录“gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux”
我们需要将该目录下的内容添加到环境变量中,以便后续的编译过程调用。面向ARM Cortex-A架构的交叉编译环境搭建
vim ~/.bashrc
将路径信息添加到PATH环境变量中, 如果你不会用vim 则使用:
gedit ~/.bashrc
调用Ubuntu自带的文本编辑器进行编辑
export LINARO_TOOLCHAIN=~/toolchain/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux
export PATH=$LINARO_TOOLCHAIN/bin:$PATH
保存并退出
接着使刚才修改的配置信息生效,可注销重新登录或者使用命令
source ~/.bashrc
接着在终端里输入“arm-linux-”按tab键看是否会自动进行补长,会自动进行补长则说明环境变量配置成功。
接着输入“arm-linux-gnueabihf-gcc -v”验证一下交叉编译工具链信息,进一步验证交叉编译环境是否配置成功。
如果你是64位的Ubuntu,会提示“xxx not found”.这是因为缺少相应的32位库造成的。我们可用apt命令进行安装。
sudo apt-get install ia32-libs
再次运行”arm-linux-gnueabihf-gcc -v“ ,一切OK.
如果你的ubuntu为64位的14.04及后续版本 请看这里:
https://www.mr-wu.cn/how-to-install-ia32-libs-in-ubuntu-14/
1 Comment
赞一个