| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 第2期ARM裸机篇:【1】开发环境搭建3_Ubuntu交叉编译工具链安装 -> 正文阅读 |
|
[嵌入式]第2期ARM裸机篇:【1】开发环境搭建3_Ubuntu交叉编译工具链安装 |
文章目录简介ARM 裸机、Uboot 移植、Linux 移植这些都需要在 Ubuntu 下进行编译,编译就需要编译 而我们现在要编译的是 ARM 架构的代码,所以我们需要一个在 X86 架构的 PC 上运行,可以编译 ARM 架构代码的 GCC 编译器,这个编译器就叫做交叉编译器,总结一下交叉编译器就是: 1、它肯定是一个 GCC 编译器。 2、这个 GCC 编译器是运行在 X86 架构的 PC 上的。 3、这个 GCC 编译器是编译 ARM 架构代码的,也就是编译出来的可执行文件是在 ARM 芯片上运行的。 交叉编译器中“交叉”的意思就是在一个架构上编译另外一个架构的代码,相当于两种架构“交叉”起来了。 目标Ubuntu下安装交叉编译工具链。 阅读基础熟悉计算机。 环境说明
参考资料
Linaro 介绍交叉编译器有很多种,我们使用 Linaro 出品的交叉编译器,Linaro 是一间非营利性质的开放源代码软件工程公司,Linaro 开发了很多软件,最著名的就是 Linaro GCC 编译工具链(编译器),关于 Linaro 详细的介绍可以到 Linaro 官网查阅。 交叉编译器下载所有版本最新版本lastest是每个大版本的最后一个版本。 比如点击 点击 合适版本因为我们所使用的 图中有很多种交叉编译器,我们只需要关注这两种: 大家根据自己所使用的 Ubuntu 系统类型选择合适的版本,比如我安装的 Ubuntu 16.04 是 64 位系统,因此我要使用 交叉编译器安装在Ubuntu中创建tool文件夹我们要先将交叉编译工具拷贝到 Ubuntu 中,我们已经在当前用户根目录下创建了一个名为“linux”的文件夹,在这个 linux 文件夹里面再创建一个名为“tool”的文件夹,用来存放一些开发工具。 复制交叉编译器到tools使用前面已经安装好的 FileZilla 将交叉编译器 交叉编译器已经成功拷贝到tools中。 复制交叉编译器到/usr/local/arm在 Ubuntu 中创建目录:
创建完成以后将刚刚拷贝的交叉编译器复制到 在终端使用命令“ cd ” 进 入 到 存 放 有 交 叉 编 译 器 的 目 录 , 比 如 我 前 面 将 交 叉 编 译 器 拷 贝 到 了 目 录“ 然后使用如下命令将交叉编译器复制到/usr/local/arm 中:
解压交叉编译器拷贝完成以后在
等待解压完成,解压完成以后会生成一个名为“ 交叉编译器配置修改环境变量,使用 VI 打开/etc/profile 文件,命令如下:
打开/etc/profile 以后,在最后面输入如下所示内容:
添加完成以后的/etc/profile 如图所示: 修改好以后就保存退出,重启 Ubuntu 系统,交叉编译工具链(编译器)就安装成功了。 安装相关库在使用交叉编译器之前还需要安装一下其它的库,命令如下:
等待这些库安装完成。 交叉编译器验证查询交叉编译器版本首先查看一下交叉编译工具的版本号,输入如下命令:
如果交叉编译器安装正确的话就会显示版本号,如图所示: 从图中可以看出当前交叉编译器的版本号为 4.9.4,说明交叉编译工具链安装成功。 交叉编译命令Linux C 编程入门中使用 Ubuntu 自带的 GCC 编译器,我们用的是命令“ 1、arm 表示这是编译 arm 架构代码的编译器。 2、linux 表示运行在 linux 环境下。 3、gnueabihf 表示嵌入式二进制接口。 4、gcc 表示是 gcc 工具。 编译工程实例最好的验证方法就是直接编译一个例程,我们就编译第一个裸机例程“1_leds”试试,裸机例程在开发板光盘中的路径为:【正点原子】阿尔法Linux开发板(A盘)-基础资料->1、裸机例程-> 1_leds。在前面创建的 linux 文件夹下创建 driver/board_driver 文件夹,用来存放裸机例程,如图所示: 将第一个裸机例程“1_leds”拷贝到 board_driver 中,然后执行 make 命令进行编译,如图 拷贝完成。如下图: 进入到1_leds目录中编译。如下图: 从图 4.3.3.3 可以看到例程“1_leds”编译成功了,编译生成了 led.o 和 led.bin 这两个文件,
结果如图所示: 从图可以看到 led.o 是 32 位 LSB 的 ELF 格式文件,目标机架构为 ARM,说明我们的交叉编译器工作正常。 最近更新欢迎关注微信公众号 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 22:46:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |