当前位置: 首页 > article >正文

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

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

目录

1.NAND FLASH 和NOR FLASH异同 ?

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

3.什么是交叉编译?

4.为什么要交叉编译?

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


1.NAND FLASH 和NOR FLASH异同 ?

特性NAND FlashNOR 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用于存储所有程序和数据,资源紧张
应用场景固件存储、引导加载程序等嵌入式操作系统、复杂应用程序等

http://www.kler.cn/a/513226.html

相关文章:

  • HTML语言的计算机基础
  • 《从入门到精通:蓝桥杯编程大赛知识点全攻略》(五)-数的三次方根、机器人跳跃问题、四平方和
  • SDL2:Android APP编译使用 -- SDL2多媒体库使用音频实例
  • 一文了解如何在Qt中间集成Halcon窗口并在子线程显示(附工程源码下载链接)
  • C语言内存之旅:从静态到动态的跨越
  • k8s集群换IP
  • 如何解决 Apache Shutdown Unexpectedly 错误 ?
  • 人工智能AI 与 机器学习ML 的关键区别
  • element el-table合并单元格
  • 机器学习(5):支持向量机
  • CSS 溢出问题及解决方案:实用案例与技巧
  • 在 vscode + cmake + GNU 工具链的基础上配置 JLINK
  • web自动化-登录时滑块验证码报错解决方案
  • MongoDB数据库迁移
  • Linux -- HTTP 请求 与 响应 报文
  • 网络安全等级保护基本要求——等保二级
  • 可以自己部署的微博 Mastodon
  • 【优选算法】4----盛最多水的容器
  • Docker可视化管理工具Portainer
  • GFPGAN - 腾讯开源的图形修复算法修复算法
  • 网络爬虫技术如何影响网络安全的
  • .NET Framework 4.5.1 离线安装包
  • DM8 SQL 错误 [22000]: 锁超时
  • Objective-C语言的函数实现
  • 深入探究 Java 异常处理
  • 探索微服务架构:从单体应用到微服务的转变