本文仅介绍一些基础概念。

我们常用的开发平台是在x86,这个是Intel推出的架构。在x86平台上的开发步骤,不管是什么软件,无外乎建立工程->写代码->保存->编译->运行,这个是Windows程序。而如果我们在x86平台上是用虚拟机运行ubuntu程序,开发步骤是写代码->保存->编译->运行。与Window程序上有所不同的是编译器,Windows程序的编译器是很多的ubuntu程序的编译器也很多,常用的GCC编译器。

介绍下GCC编译器:

GCC是linux系统下主要的编译软件,GCC的全称是GNU编译器套件(GNU Compiler Collection),除了可以编译c语言开发的程序外,还可以开发C++、Java等多个语言的程序。GCC功能强大、稳定、开源免费,因此被广泛使用。

GCC的常用指令:

1)gcc  -v  查看gcc的版本,从而验证了gcc编译器正常。
不论你使用哪一个版本的gcc,只有后面能够正常编译就可以了。

2)gcc   -o   输出文件名    源文件

举例:gcc -o hello hello.c

编译hello.c,输出文件名为hello。

以上是在x86架构上的开发步骤。

而ARM裸机开发步骤则是写代码->保存->编译->烧写->运行。此时用到的编译软件是arm-linux-gcc编译器。这种编译模式被称为交叉编译。

介绍下arm-linux-gcc编译器:

arm-linux-gcc是基于linux平台的arm编译器。它是开源免费的编译器。arm-linux-gcc功能强大、稳定、支持的arm芯片众多、更新速度快,被广泛使用。

交叉编译:通常编译嵌入式程序的平台称为宿主机(如:PC的ubuntu系统,CPU架构为X86架构),运行嵌入式程序的平台称为目标机(如:某款ARM开发板,CPU架构为ARM架构)。在X86平台编辑和和编译器arm-linux-gcc编译ARM架构的程序,两者属于不同的架构平台,从而属于交叉编译模式。编译完成后将程序烧写到ARM开发板中(下载方式有:JTAG、USB、SD卡、网络等多种方式),之后就可以在开发板上运行该程序。

Linux学习——总结ARM裸机开发步骤相关推荐

  1. jlink怎么调试linux程序_纯Linux下的 ARM裸机调试环境搭建(GDB + JLink)

    一直想摆脱windows环境,在纯linux下进行arm裸机开发,但是由于一直不知道JLink如何在linux下运行和配置,一直无法进行下去. 以前都是windows+AXD调试.包括本人用的FL24 ...

  2. Linux学习之ARM开发板连接ubuntu18.04LTS及NFS相关配置

    Linux学习之ARM开发板连接ubuntu18.04LTS及NFS相关配置 第一步:在PC机安装Ubuntu18.04LTS 具体安装步骤参见上一篇文章 第二步:安装arm-linux-gcc交叉编 ...

  3. Linux学习笔记---移植官方uboot步骤(一)

    目录 编写shell脚本 修改MakeFile文件 重命名shell脚本 添加默认配置文件 修改默认配置文件 准备需要的板级文件夹 重命名.C文件 修改Makefile 修改imximage.cfg配 ...

  4. ARM裸机开发:主频与时钟

    文章目录 ARM裸机开发:主频与时钟 一.时钟系统 1.1 外部时钟电路 1.2 7路PLL时钟源 1.3 时钟树概览 二.时钟配置 2.1 内核时钟设置 2.2 PFD时钟设置 2.3 AHB.IP ...

  5. Linux学习笔记---移植官方uboot步骤(二)

    在上一篇 Linux学习笔记---移植官方uboot步骤(一) 自己的uboot已经编译成功了,接下来继续移植LCD驱动和网络驱动. 修改LCD驱动 修改配置参数 打开my_uboot/board/f ...

  6. ARM裸机开发——双机异步串行通信

    写在前面  本报告因为期末将至,后续还需要完成一次课程设计,故本次实验较为简单,完成的时间也非常匆忙,故文章内容较为单薄,也可能有着更多疏忽之处,还望大家海涵. 1. 项目任务  1) 利用S3C24 ...

  7. 基于stm32mp157 linux开发板ARM裸机开发教程4:Cortex-A7 内核存储系统与流水线(连载中)

    前言: 目前针对ARM Cortex-A7裸机开发文档及视频进行了二次升级持续更新中,使其内容更加丰富,讲解更加细致,全文所使用的开发平台均为华清远见FS-MP1A开发板(STM32MP157开发板) ...

  8. arm-linux-gcc 裸机程序,Linux下ARM裸机开发-交叉工具链

    初识linux下ARM的裸机开发全过程.现在总结如下: 首先说明为什么要学习裸机开发,一方面bootloader的编写要用到裸机开发的知识,另一方面就是驱动的开发.一般情况下我们进行的系统上的开发. ...

  9. 基于stm32mp157 linux开发板ARM裸机开发教程3:Cortex-A7 架构与工作模式(连载中)

    前言: 目前针对ARM Cortex-A7裸机开发文档及视频进行了二次升级持续更新中,使其内容更加丰富,讲解更加细致,全文所使用的开发平台均为华清远见FS-MP1A开发板(STM32MP157开发板) ...

最新文章

  1. flask简单的登录demo
  2. Python编程基础:第二十节 函数Function
  3. ThreadLocal相关
  4. 【Java数据结构】3.1 顺序栈
  5. java 传递intent_java – 如何将泛型类作为param传递给Intent构造函数
  6. 【转】windows程序设计(14):鼠标消息详解
  7. C#中的深度学习:ML.NET中具有预训练模型的硬币识别
  8. sql server 中后缀为.mdf的文件是干什么用的??
  9. cnpm 没反应_世界上“最蠢”的鱼, 被吃了一半还没反应, 但永远不会灭绝
  10. 服务器芯片的引脚功能,74ls06中文资料汇总(74ls06引脚图及功能_真值表及应用电路)...
  11. 人工智能属于计算机科学研究方向,《人工智能》课程简介
  12. 4 卷积的拉普拉斯变换
  13. 极大似然估计的通俗理解
  14. 【小米集团】2019校招在线考试-算法试卷编程题
  15. 微电子电路——期中总结
  16. 一种测试FPS的方法
  17. npm全局安装和本地安装及卸载
  18. 魔兽争霸的历史(ZT)第三章
  19. 多人 协作 任务 android 软件,MeisterTask(团队协作软件)
  20. nginx配置-根据UA进行域名跳转且仅限域名访问

热门文章

  1. 次世代培训——我们从游戏美术发展历程讲起
  2. visio 禁止或允许对形状进行更改
  3. linux安全狗不显示中文版,服务器安全狗Linux版 V2.0.00001常见问题说明
  4. windows端口被占用解决方法
  5. nofile和noproc
  6. webwork 文件配置
  7. win11 搜索框无法输入文字
  8. Blender:用蒙皮修改器和表面细分修改器建模
  9. 基于STC89C52单片机的脉搏测量仪设计
  10. WSL: Could not resolve hostname Temporary failure(无法解析域名)