交叉编译工具链的选择
我所使用学习的平台为s5pv210,三星官方在开发S5pv210时就是用arm-2009q3这个版本,所以我们开发S5PV210的程序用arm-2009q3这个版本。
交叉编译工具链的安装
步骤一:
在/usr/local/下创建arm文件夹
即我们将交叉编译工具链安装到/usr/local/arm
步骤二:
我们通过VM的共享文件夹,或者samba服务器,或者cuteftp。将安装包从Windows中弄到linux中去。并且拷贝到/usr/local/arm目录。
cp /mnt/hgfs/ubuntu16/arm-2009q3.tar.bz2 ./
步骤三:
解压文件
tar -jxvf arm-2009q3.tar.bz2
程序已经安装完毕,真正的应用程序安装在/usr/local/arm/arm-2009q3/bin目录下.
步骤四:测试
我们在/usr/local/arm/arm-2009q3/bin 目录下执行arm-linux-gcc -v
执行方法是:./arm-none-linux-gnueabi-gcc -v
如果执行后得到“gcc version 4.4.1 ”的字符,就表示安装成功
但是在64位的系统下安装32位交叉编译工具链,会无法使用
我们需要安装32位库的支持。
sudo apt-get install libc6:i386
安装好后,再执行。
步骤五:将工具链导出到环境变量
环境变量的意义:环境变量即是操作系统的的全局变量,一部分是系统自带的,另一部分是可以用户扩充的,比如PATH,这个环境变量是系统自带的,它的含义就是系统查找可执行程序的搜索路径范围。
将工具链导出到环境变量:
在~/.bashrc中,最后添加export PATH=/usr/local/arm/arm-2009q3/bin:$PATH
vi ~/.bashrc
注意:我们导出这个环境变量是在当前用户,如果你登录时在其他用户下是没用的。
(如果使用的是root用户执行,那么在普通用户下是没用的)
步骤六:为工具链创建arm-linux-xxx符号链接
arm-none-linux-gnueabi-addr2line字符太长,我们简化一下为arm-linux-addr2line
在/usr/local/arm/arm-2009q3/bin 目录下执行
ln arm-none-linux-gnueabi-addr2line -s arm-linux-addr2line
可以写一个mk-arm-linux-.sh脚本文件将目录下的程序都进行符号链接
执行source mk-arm-linux-.sh