IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 第二十三讲 ARM-GCC 与交叉编译 -> 正文阅读

[嵌入式]第二十三讲 ARM-GCC 与交叉编译

第二十三讲 ARM-GCC 与交叉编译

一、 交叉编译

前面讲到的 hello 例子,在 Ubuntu 下进行编译,编译完成之后的可执行文件在 Ubuntu 环境下运行,这个叫做本地编译。即在当前平台编译,编译得到的程序也在本地执行。嵌入式系统中的编译过程与本地编译却有不同。在一种平台上编译,并能够运行在另一种体系架构不同的平台上,这种称为交叉编译。

在 x86 处理器平台上编译能够运行在 ARM 架构的处理器平台上的程序。这里面需要的工具称为交叉编译工具,他又多个程序连接构成,也称之为交叉编译工具链。

二、ARM-GCC

由于嵌入式设备的资源比较紧张,很多的嵌入式设备并不能将编译工具安装在设备上,需要通过在 x86 平台下编译得到可执行程序后,再挪到 ARM 平台上运行。

要在 x86 平台上编译出 ARM 平台上运行的程序,必须使用交叉编译工具。

ARM-GCC 是针对 ARM 平台的一款编译器,是 GCC 编译工具链的一个分支。

三、 安装 ARM-GCC

  • 在 Ubuntu 安装 arm-gcc

    命令:sudo apt install gcc-arm-linux-gnueabihf

  • 在 ARM 上安装 arm-gcc

    板子资源足够,可以用命令 sudo apt install gcc

  • 用已经制作好的交叉编译工具

    Linaro公司官网

    工具地址

四、使用交叉编译工具链在 Ubuntu 上编译 arm 程序

  • 创建文件 hello.c

    命令:touch hello.c

  • 在 hello.c 在插入代码

    #include <stdio.h>
    int main(int argc, char **argv)
    {
        printf("Hello world!\r\n");
        return 0;
    }
    
  • 保存退出

  • 使用交叉编译工具编译代码

    命令:rm-linux-gnueabihf-gcc hello_world.c -o hello

  • 将编译好的文件放置到共享文件夹

    命令:mv hello 共享文件路径

    如果这里报权限错误,请在前面加上 sudo

  • 切换到开发板

  • 登陆然后连接 nfs 服务器

    命令:sudo mount -t nfs ubuntu ip:共享文件绝对路径 挂载的目录

    例如:sudo mount -t nfs 192.168.3.19:/home/dragon/nfstest /mnt

  • 进入 /mnt 目录

    命令:cd /mnt

    这里目录改为自己挂载的目录

  • 运行可执行文件

    ./hello

  • 输出结果

    Hello world!

  • 成功!

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-29 09:31:07  更:2021-08-29 09:33:57 
 
开发: 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年12日历 -2024/12/29 8:04:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计