目前大多数工业控制系统都是嵌入式系统(少数简单系统采用裸机直接开发)。所谓“嵌入式系统”,是指嵌入到特定硬件内部的、具有特定功能的计算机系统。嵌入式系统一般由实时操作系统(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/binexportARCH=armexport 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/binexport ARCH=armexport CROSS_COMPILE=arm-linux-gnueabihf-
保存脚本文件,为其增加可执行属性:
sudochmod+xlinaro_toolchain.sh
②:打开当前用户根目录下的profile文件(~/.profile),在其中添加刚才的代码:
export PTAH=$PATH:/home/jack/eLinux/toolChain/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/binexport ARCH=armexport CROSS_COMPILE=arm-linux-gnueabihf-
保存文件并编译或重启。
source ~/.profile
好了,关于交叉编译工具链的下载及设置就先介绍到这里。
审核编辑:汤梓红
标签: