嵌入式Linux开发日志:交叉编译工具链

嵌入式技术

1372人已加入

描述

目前大多数工业控制系统都是嵌入式系统(少数简单系统采用裸机直接开发)。所谓“嵌入式系统”,是指嵌入到特定硬件内部的、具有特定功能的计算机系统。嵌入式系统一般由实时操作系统(RTOS)+应用软件组成(PLC 本身也是一种嵌入式系统)。常见的实时操作系统有:FreeRTOS、RT-Linux、VxWorks、RT-Thread、SylixOS等。其中,RT-Thread和SylixOS都是纯国产的实时操作系统,前者依靠社区发展,资料非常丰富,我个人非常喜欢,后续会跟大家分享相关的知识。Linux本身并不是实时操作系统,做嵌入式开发,最好采用其实时分支——RT-Linux。嵌入式Linux系统由四大部分组成:交叉编译工具链、BootLoader、内核和根文件系统。今天这篇文章,跟大家介绍下怎么获取和设置交叉编译工具链。

 

由于嵌入式系统是运行在特定的板卡上,而开发环境使则是普通个人电脑。板卡的硬件与个人电脑有很大的不同,为了编译后的程序能在板卡上运行,必须采用交叉编译(可参看之前的文章:嵌入式开发 | 什么是交叉编译(CROSS_COMPILE))。交叉编译由交叉编译工具链完成。

1、工具链的下载与解压缩

交叉编译工具链是一组工具的集合。如果你购买开发板,通常厂家会提供交叉编译工具链,但是版本可能比较老。我们可去下面的网址下载Linaro的工具链:

https://releases.linaro.org/components/toolchain/binaries/

​https://releases.linaro.org

比如我们选择最新的latest-7,单击“arm-linux-gnueabihf”,进入下载页面,单击“gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz”下载工具链,如下图所示:

交叉编译

下载完成后,进入命令窗口,输入下面的命令解压缩:

 

tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.tar 

 

2、设置环境变量

将刚解压缩的工具链的/bin目录添加到环境变量PATH中,假设解压所的路径为:/home/jack/eLinux/toolChain/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf

则在命令窗口添加代码:

 

export PTAH=$PATH:/home/jack/eLinux/toolChain/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-

 

这种方式设置的环境变量是临时的,重启后会丢失。

永久设置环境变量的方法(二选一即可):

①:在/etc/profile.d/中新建脚本,比如linaro_toolchain.sh,在其中添加刚才的代码:

 

export PTAH=$PATH:/home/jack/eLinux/toolChain/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-

 

保存脚本文件,为其增加可执行属性:

 

sudo chmod +x linaro_toolchain.sh

 

②:打开当前用户根目录下的profile文件(~/.profile),在其中添加刚才的代码:

 

export PTAH=$PATH:/home/jack/eLinux/toolChain/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-

 

保存文件并编译或重启。

 

source ~/.profile

 

好了,关于交叉编译工具链的下载及设置就先介绍到这里。

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分