嵌入式知识点总结 ARM体系与架构 专题提升(一)-硬件基础

嵌入式知识点总结 ARM体系与架构 专题提升(一)-硬件基础

目录

[1.NAND FLASH 和NOR FLASH异同 ?](#1.NAND FLASH 和NOR FLASH异同 ?)

2.CPU,MPU,MCU,SOC,SOPC联系与差别?

3.什么是交叉编译?

4.为什么要交叉编译?

5.描述一下嵌入式基于ROM的运行方式和基于RAM的运行方式有什么区别?


1.NAND FLASH 和NOR FLASH异同 ?

特性 NAND Flash NOR Flash
存储结构 NAND 门结构,按块和页擦写 NOR 门结构,按字节读取
写入速度 较快,适合大数据量写入 较慢,适合小数据量按字节写入
读取速度 较慢,按页读取 较快,按字节读取
擦除单位 按块擦除 按扇区擦除
应用 高容量存储,适合 SSD、闪存卡等 固件存储、嵌入式系统代码存储
成本 较低,适合大容量存储 较高,适合小容量且要求快速读取的应用
容量 大容量,通常为数百GB或更多 小容量,通常为几MB到几GB
耐用性 擦写次数较少,有限的寿命 擦写次数较多,适合长期使用

写之前都要先擦除,因为写操作只能使1->0,而擦除动作是为了把所有位都变1
擦除单元可以都以块为单位

2.CPU,MPU,MCU,SOC,SOPC联系与差别?

1.CPU(Central Processing Unit ),是一台计算机的运算核心和控制核心。CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。差不多所有的CPU的运作原理可分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,并执行指令。所谓的计算机的可编程性主要是指对CPU的编程。

2.MPU(Micro Processor Unit),叫微处理器(不是微控制器),通常代表一个功能强大的CPU(暂且理解为增强版的CPU吧),但不是为任何已有的特定计算目的而设计的芯片。这种芯片往往是个人计算机和高端工作站的核心CPU。最常见的微处理器是Motorola的68K系列和Intel的X86系列。

3.MCU(Micro Control Unit),叫微控制器,是指随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时计数器和多种1/0接口集成在一片芯片上,形成芯片级的芯片,比如51,avr这些芯片,内部除了CPU外还有RAM,ROM,可以直接加简单的外围器件(电阻,电容)就可以运行代码了,而MPU如x86,arm这些就不能直接放代码了,它只不过是增强版的CPU,所以得添加RAM,ROM.MCU MPU最主要的区别就睡能否直接运行代码。MCU有内部的RAM ROM,而MPU是增强版的CPU,需要添加外部RAM ROM才可以运行代码。

4.SOC(System on Chip),指的是片上系统,MCU只是芯片级的芯片,而S0C是系统级的芯片,它既MCU(51,avr)那样有内置RAM,ROM同时又像MPU(arm)那样强大的,不单单是放简单的代码,可以放系统级的代码,也就是说可以运行操作系统(将就认为是MCU集成化与MPU强处理力各优点二合-)。

5.SOPC(System OnaProgrammable Chip)可编程片上系统(FPGA就是其中一种),上面4点的硬件配置是固化的,就是说51单片机就是51单片机,不能变为avr,而avr就是avr不是51单片机,他们的硬件是一次性掩膜成型的,能改的就是软件配置,说白点就是改代码,本来是跑流水灯的,改下代码,变成数码管,而SOPC则是硬件配置,软件配置都可以修改,软件配置跟上面一样,没什么好说的,至于硬件,是可以自己构建的也就是说这个芯片是自己构造出来的,这颗芯片我们叫"白片",什么芯片都不是,把硬件配置信息下载进去了,他就是相应的芯片了,可以让他变成51,也可以是avr,甚至arm,同时SOPC是在SOC基础上来的,所以他也是系统级的芯片,所以记得当把他变成arm时还得加外围ROM,RAM之类的,不然就是MPU了

3.什么是交叉编译?

在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。

这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统(0peratingSystem)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说的x86 Linux平台实际上是Intelx86体系结构和Linux for x86操作系统的统称;而x86 WinNT平台实际上是Intel x86体系结构和Windows NT for x86操作系统的简称。

4.为什么要交叉编译?

有时是因为目的平台上不允许或不能够安装我们所需要的编译器,而我们又需要这个编译器的某些特征;有时是因为目的平台上的资源贫乏,无法运行我们所需要编译器:有时又是因为目的平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器。

5.描述一下嵌入式基于ROM的运行方式和基于RAM的运行方式有什么区别?

基于RAM

1.需要把硬盘和其他介质的代码先加载到ram中,加载过程中一般有重定位的操作。

2.速度比基于ROM的快,可用RAM比基于ROM的少,因为所有的代码,数据都必须存放在RAM中。
基于ROM

1.速度较基于RAM的慢,因为会有一个把变量,部分代码等从存储器(硬盘,flash)搬移到RAM的过程。

2.可用RAM资源比基于RAM的多

特性 基于ROM的运行方式 基于RAM的运行方式
存储介质 程序代码存储在ROM中 程序代码从外部存储加载到RAM中
启动过程 从ROM中加载并执行程序 从外部存储加载到RAM并执行程序
速度 启动较慢,执行受限于ROM的访问速度 启动较快,执行速度受限于RAM的访问速度
资源使用 RAM资源主要用于数据存储和临时数据 RAM资源用于存储程序和数据,消耗较大
可用RAM资源 RAM主要用于临时数据存储 RAM用于存储所有程序和数据,资源紧张
应用场景 固件存储、引导加载程序等 嵌入式操作系统、复杂应用程序等
相关推荐
为也科技26 分钟前
PID 控制算法(二):C 语言实现与应用
c语言·开发语言·单片机
mucheni33 分钟前
迅为RK3568开发板篇OpenHarmony实操HDF驱动控制LED-接口函数
嵌入式硬件
諰.1 小时前
嵌入式系统中的低功耗设计
物联网
Kisorge3 小时前
【电机控制器】FM33LF015芯片——IO口模拟串口
stm32·单片机·嵌入式硬件
隼玉4 小时前
【STM32-学习笔记-15-】MAX7219点阵屏模块
c语言·笔记·stm32·学习
andylauren4 小时前
(3)STM32 USB设备开发-USB存储设备
stm32·单片机·嵌入式硬件
武汉唯众智创4 小时前
“物联网+高职”:VR虚拟仿真实训室的发展前景
物联网·vr·物联网实训室·物联网实验室
番茄老夫子4 小时前
stm32 L051 adc配置及代码实例解析
stm32·单片机·嵌入式硬件
7yewh5 小时前
MCU、MPU、SOC、ECU、CPU、GPU的区别到底是什么
linux·arm开发·驱动开发·单片机·嵌入式硬件·物联网