嵌入式学习ARM篇------系统移植1

【嵌入式相关】

嵌入式与电脑相比而言最大的区别在于:软硬件可裁剪
仅保留我们需要的软件和硬件,其他的可以不要。这就成就了嵌入式设备的一大特点:小巧

嵌入式的构成:嵌入式软件 + 嵌入式硬件
  1:嵌入式软件

在这里插入图片描述
如何判断你的板子是否能跑操作系统?
对于CPU而言,想要跑操作系统,必须要有MMU(Memory Management Unit),内存管理单元,所以区分开发板是否能跑操作系统的办法就是看CPU是否有mmu内存管理单元。

计算机的硬件组成

计算机系统的硬件组成:

1:输入设备
	键盘、鼠标……
2:输出设备
	显示器、打印机……
3:存储器 :存储器是用来存放程序和数据的部件。
           它是一个记忆装置,也是计算机能够实现“存储程序控制”的基础。
	内存
		Flash【DDR4】
	外存
		硬盘、光盘
4:控制器
5:运算器
6:总线 :BUS
  2:嵌入式硬件

与计算机硬件组成基本相似,也有必备的输入输出、存储器、控制器、运算器、总线
在这里插入图片描述

【程序的编译流程】

   1.预处理阶段------>【将.c文件编译为.i文件】
   2.编译阶段------>【.i文件编译为.s文件】

      经过编译后的已经是汇编代码了

   3.汇编阶段------>【.s文件编译为.o文件】

      把汇编语言生成计算机能够识别的机器码,也就是0和1

   4.链接阶段------>【.o文件链接编译为可执行程序a.out】

      若是使用Makefile编译,将会同时编译多个.c文件,这也会产生多个.o文件,
      最后的链接就是把多个.o文件合成编译为一个可执行程序,例如:a.out

【三级存储系统】

所谓三级存储系统,就是【Cache】-【内存】-【硬盘】

先说说硬盘和内存还有Cache的区别:
存储介质特点
硬盘优点:容量大、数据存储安全,掉电不丢失数据; 缺点:读取速度相对较慢
内存优点:读取速度比硬盘快;缺点:掉电后数据丢失,价格比硬盘贵
Cache优点:读取速度最快,快至极; 缺点:成本太高,掉电数据丢失
再说说CPU是如何处理数据的:

上面已经说了,硬盘里的数据掉电后不会丢失,所以不难看出:程序都是存放在硬盘里面的。
或者宏观来说:我们的电脑系统都是存放在硬盘里面的(哈哈,这个谁都知道,毕竟都能看到C盘)。
当我们去执行程序时,程序的数据首先会从硬盘拷贝到内存,然后CPU再去内存访问数据。那么就有同学问了,为啥CPU不直接去硬盘里拿数据呢?
因为CPU的主频很高,读取速度太快,而硬盘的速度远远跟不上CPU的读写速度,举个例子:假设我们用蒸馏法萃取咖啡,肯定不会用嘴一滴一滴在下面接着,因为我们的‘一口’很大,所以会等他萃取到半杯或者一杯时,才会端起来给它一个深渊巨口,一饮而尽。
CPU也是如此,他不可能慢慢地去取硬盘中的数据,而是从同运行频率的内存中去拿。
在这里插入图片描述

那么,为什么要使用三级存储系统呢,Cache是干嘛用的?

CPU说:为甚么要使用三级存储系统,我之前取数据直接就去内存拿了,现在还给我搞这么多繁琐的步骤,这么麻烦?
内存说:你看看,这部分数据你要频繁使用,我就给你直接存进你体内的Cache里面了,这样你就只取一次,然后存进Cache,下次再使用这写数据时就直接自给自足,别来烦我了
CPU说:奥~,好像是有那么一丝道理啊!
内存说:废话,这样能大大提升你的运行效率。

【Cache、内存和硬盘】

在这里插入图片描述
在这里插入图片描述

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: arm-linux-gcc-4.6.4是一款用于ARM架构的嵌入式系统开发的GNU编译器套件。它是GCC(GNU Compiler Collection)的一个特定版本,在Linux环境下编译ARM平台的应用程序时非常有用。 首先,arm-linux-gcc-4.6.4是一个交叉编译器,可以在一个操作系统上编译ARM架构的二进制代码。交叉编译器允许开发人员在一种体系结构上编译代码(例如x86架构的PC),然后在另一种体系结构上运行(例如ARM架构的嵌入式设备)。这对于嵌入式系统开发非常重要,因为嵌入式设备通常具有独特的硬件配置。 其次,这个特定版本的GCC是为了支持ARM架构而开发的。ARM是一种低功耗的处理器架构,广泛应用于移动设备和嵌入式系统。该编译器套件包含了一系列工具,如编译器、汇编器和链接器,可以将C、C++和其他语言的源代码转换为可在ARM架构上运行的二进制可执行文件。 在嵌入式系统开发过程中,使用arm-linux-gcc-4.6.4可以轻松地为ARM设备编写和构建应用程序。通过使用该编译器套件,开发人员可以在自己熟悉的开发环境中编写代码,并使用特定的工具链将其交叉编译为适用于ARM设备的可执行文件。这样,开发人员可以更高效地开发和测试嵌入式应用程序,并在不同的嵌入式设备上进行部署。 总之,arm-linux-gcc-4.6.4是一款为ARM架构开发的交叉编译器套件,非常有用于嵌入式系统开发。它允许开发人员在一种系统上编写代码,然后将其交叉编译为可在ARM设备上运行的二进制文件,从而方便地开发和部署嵌入式应用程序。 ### 回答2: arm-linux-gcc-4.6.4是一款适用于ARM架构的GNU编译器套件(GCC)。GCC是一个流行的开源编译器,用于编译各种编程语言,而arm-linux-gcc-4.6.4是GCC的一个特殊版本,专门用于ARM架构的处理器。 ARM架构是一种低功耗的指令集架构,广泛应用于移动设备、嵌入式系统以及其他嵌入式应用中。ARM处理器的指令集可以根据应用的需求,进行灵活的配置和扩展。因此,为了使应用程序能够在ARM处理器上正确运行,需要使用适用于ARM架构的编译器,如arm-linux-gcc-4.6.4。 arm-linux-gcc-4.6.4可以将源代码编译为ARM可执行文件,使得程序可以在ARM处理器上运行。它支持多种编程语言,包括C、C++以及汇编语言。它还提供了许多优化选项,可以根据应用的需求进行编译优化,以提高程序的性能和效率。 使用arm-linux-gcc-4.6.4,开发者可以编写适用于ARM架构的应用程序,包括嵌入式系统和移动设备上的各种应用。arm-linux-gcc-4.6.4提供了丰富的工具和库,方便开发者进行软件开发、调试和测试。 总之,arm-linux-gcc-4.6.4是专门为ARM架构开发的一款编译器套件,可以将源代码编译为适用于ARM处理器的可执行文件,支持多种编程语言和优化选项,方便开发者进行ARM架构上的软件开发。 ### 回答3: arm-linux-gcc-4.6.4是一款用于ARM架构的GNU编译器集合(GCC)的版本。ARM架构是一种较为常见的嵌入式处理器架构,用于移动设备、嵌入式系统和单片机等领域。 arm-linux-gcc-4.6.4提供了在Linux操作系统下编译ARM架构程序的工具链。通过该工具链,开发者可以将源代码编译成可在ARM架构上运行的可执行文件。GCC是一款开源的编译器,在开发中被广泛使用。 arm-linux-gcc-4.6.4支持C、C++和Objective-C等多种编程语言,并且提供了丰富的编译选项和库函数,帮助开发者进行ARM架构下的程序开发。它能够将源代码转换成对应的汇编代码,再经过汇编和链接等步骤生成可执行文件。 arm-linux-gcc-4.6.4具有良好的兼容性和可移植性,可以在不同的Linux发行版和ARM处理器上运行。开发者可以通过该编译器集合,使用常见的Linux开发环境进行ARM架构程序的开发、调试和优化。 总之,arm-linux-gcc-4.6.4是一款用于ARM架构的编译器集合,为开发者提供了在Linux操作系统下开发ARM架构程序的工具链,帮助他们实现ARM平台上的软件开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值