热度 17
2015-5-18 11:27
1192 次阅读|
0 个评论
基于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及后续版本 请看这里: http://www.mr-wu.cn/how-to-install-ia32-libs-in-ubuntu-14/ 原创文章,转载请注明: 转载自 吴川斌的博客 http://www.mr-wu.cn/ 本文链接地址: 面向ARM Cortex-A架构的交叉编译环境搭建 http://www.mr-wu.cn/linaro-cross-compile-setup-on-ubuntu/