王彦为

聚沙成塔
  1. 首页
  2. 嵌入式
  3. 正文

玩转DragronBoard 410c系列之四:Linux系统搭建ARM应用开发环境

2020-09-22 6085点热度 0人点赞 2条评论

本文章我们讲一讲如何在Linux系统上搭建ARM应用的开发环境。众所周知,基于x86架构的主流桌面操作系统主要分为Linux、Windows和MacOS三大阵营,这三种操作系统都可以搭建ARM应用程序的开发环境,本文我们介绍Linux系统上搭建开发环境,使用的是Ubuntu 20.04。

安装系统

首先,我们下载并安装Ubuntu 20.04,这里建议使用最新版本的操作系统,可以省去很多烦恼。比如老版本的操作系统没有新CPU的驱动,老版本的操作系统需要更新Linux内核等等。不得不说Ubuntu 20.04的UI还是比较惊艳的,对于我这个深度Windows用户来讲,还是比较容易上手的。注意安装过程中不要联网,很可能一不留神就在安装过程中联网更新了,国内的网速,你懂的。

配置系统

安装完成后,进入系统的第一件事情就是修改软件源不是联网,将软件源修改为“mirrors.aliyun.com”,这样通过命令下载软件时的效率会变高。这次我们可以通过软件界面修改,打开软件“Software & updates”,如下图所示操作。

交叉编译工具链

交叉编译工具链会在《玩转DragronBoard 410c系列之五:ARM交叉编译工具链介绍》这篇文章详细介绍,这篇文章只介绍下载及使用。我们使用的是linaro提供的工具链,可从arm官网下载,选择红色框框的任意一个种格式即可。该页面有很多下载选项,请注意甄别。

下载完成后,对该压缩文件进行解压,可用命令,也可用“归档管理器”解压。为了不使用root权限,我们再Home目录下新建一个“Enviroment”文件夹,然后将aarch64-none-linux-gnu解压到该文件夹下,如下图所示。

配置环境变量

修改Linux系统的环境变量有很多种方式,具体的使用方法如下,我们这里使用第二种

序号特点方法步骤生效方式
1只对当前用户有效1、通过命令修改.profile或.bashrc文件
$ sudo gedit ~/.profile 或
$ sudo gedit ~/.bashrc
2、在文件最后添加如下代码
export PATH=$PATH:/home/Enviroment/aarch64-none-linux-gnu/bin
使用source命令立即生效
例如:$ source ~/.profile
2对所有用户有效1、通过命令修改/etc/profile
$ sudo gedit /etc/profile
2、在文件最后添加如下代码
export PATH=$PATH:/home/Enviroment/aarch64-none-linux-gnu/bin
source /etc/profile
3对所有用户有效1、通过命令修改/etc/environment
$ sudo su
# sudo gedit /etc/environment
编辑PATH,两个路径之间用冒号隔离
PATH=PATH1:PATH2
source /etc/enviroment
4临时变量,重启后失效命令直接输入
$ export PATH=/home/linaro/qt-arm/bin:$PATH
立即生效


修改完环境变量后,使用命令“echo $PATH”查询当前的环境变量,使用“aarch64-none-linux-gnu-g++ -v”查询交叉编译器版本号。

编译HelloWorld

首先新建一个文本文档,命名为helloworld.c,文档内容如下

#include <stdio.h>

int main() 
{
  printf("hello world\n");
  return 0;
}

接着在Shell控制台切换到该文件目录下,然后使用命令行编译“aarch64-none-linux-gnu-g++ helloworld.c -o helloworld.arm”,-o表示输出,helloworld.arm表示输出的文件名称,可以任意命名,后缀随意取,也可不带后缀。Linux系统识别文件不依赖后缀,后缀只是帮助使用者快速识别文件类型的。

运行HelloWorld

我们直接在控制台输入“./helloworld.arm”,会报错“bash: ./helloworld.arm: cannot execute binary file: Exec format error”。这个说明我们生成的程序只能运行在ARM Linux上。我们将helloworld.arm文件使用FTP工具拷贝到Dragron Board 410c上,使用ssh连接到开发板,然后运行helloworld.arm程序,可以看到输出“hello world”。

标签: 暂无
最后更新:2022-03-31

王彦为

新生代农民工,十年医疗器械行业从业经验,现居苏州。爱生活,爱做梦。

打赏 点赞
< 上一篇
下一篇 >

文章评论

  • Alec1614

    Good <a href="https://shorturl.fm/YvSxU">https://shorturl.fm/YvSxU</a&gt;

    2025-05-24
    回复
  • Paris2281

    Cool partnership <a href="https://shorturl.fm/XIZGD">https://shorturl.fm/XIZGD</a&gt;

    2025-05-24
    回复
  • 取消回复

    COPYRIGHT © 2022 王彦为. ALL RIGHTS RESERVED.

    苏ICP备16063331号-1

    苏公网安备32050702011313号