声明:
本篇博客由大一作者编写,目的是为了记录自己的学习进度,顺便为想要学习嵌入式的伙伴们提供一定的帮助,这个想法萌生的原因是,第一为了锻炼自己写教程的能力,第二就是在一定范围内给别人提供帮助,收获成就感。所以,如果说的强硬一点,我承认自己能力的不足,不能给足完全的指导,所以如果单纯只是为了学习嵌入式的话,可以移步到别的论坛和帖子!
目录
嵌入式微处理器(Embedded Microprocessor Unit, EMPU)
嵌入式微控制器(Microcontroller Unit, MCU),简称单片机
嵌入式 DSP 处理器(Embedded Digital Signal Processor, EDSP)
-
嵌入式的定义:
简单来说就是一种专用的计算机系统,“国内普遍认同的嵌入式系统定义是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统;从应用对象上加以定义来说,嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置”
-
嵌入式的意义:
控制、监视或辅助操作机器和设备
嵌入式的历史:
摘自优快云某大佬:
嵌入式系统发展:分为四个阶段
1)单片微型计算机(SCM)阶段,即单片机时代:系统功能由汇编语言实现。
这一时代系统硬件:单片机。软件:无操作系统。
主要特点:系统结构相对单一,处理效率低,存储容量十分有限,几乎无用户
接口。
2)微控制器(MUC)阶段,:主要技术方向:不断扩展对象系统要求的各种外围电路
和接口电路,突显其对象的智能化控制能力
这一阶段基础:嵌入式微处理器。这一阶段核心:简单操作系统。
主要特点:硬件使用嵌入式微处理器,微处理器的种类繁多,通用性弱;系统开销小,效率较高。
3)片上系统(SOC):主要特点:嵌入式系统能够运行于各种不同的微处理器上,
兼容性好,操作系统的内核小,效果好。
4)internet为标志的嵌入式系统:嵌入式网络化主要表现:一方面是嵌入式
处理器集成了网络接口
另一方面是嵌入式设备应用于网络环境中。
对此我抱有一定的疑义,但是并没有怀疑的意思,下面是我自己整理的内容:
嵌入式微处理器(Embedded Microprocessor Unit, EMPU)
即类似于CPU
嵌入式微控制器(Microcontroller Unit, MCU),简称单片机
下面的介绍基本上与单片机吻合
嵌入式 DSP 处理器(Embedded Digital Signal Processor, EDSP)
“对系统结构和指令进行了特殊设计,使其适合于执行 DSP 算法,编译效率较高,指令执行速度也较高”
嵌入式片上系统(System On Chip,SoC),
“有别于MCU是一个芯片级芯片,SOC是一个系统级芯片,是一个有专用目标的集成电路,其中包含完整系统并嵌入软件的全部内容”
P.S:
什么是芯片级什么是系统级?
手机是系统级,主板是板级,主板上的某个芯片就是芯片级
-
嵌入式组成:
百度百科:
-
系统组成:
-
硬件结构:

-
软件体系:
优快云博主的总结:
嵌入式微控制器的架构介绍:
-
存储器结构分类:
哈佛结构:是一种将程序指令存储和数据存储分开的存储器结构。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。
冯诺依曼结构:是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置。
指令结构分类:
CISC(Complex Instruction Set Computer)架构
复杂
可能需要多个时钟周期才能完成
一个指令可以执行多个低级操作
寄存器数量少,大量使用内存操作
RISC(Reduced Instruction Set Computer)架构
简化
单个时钟周期就可以完成
一个指令通常只能执行一个低级操作
寄存器数量多,减少内存访问
常见嵌入式操作系统:
嵌入式 Linux(uClinux)
“uClinux 从 Linux 2.0/2.4 内核派生而来,沿袭了主流 Linux 的绝大部分特性。它是专门针对没有 MMU 的 CPU,并且为嵌入式系统做了许多小型化的工作。适用于没有虚拟内存或内存管理单元(MMU)的处理器。”
Win CE
“CE 是微软开发的一个开放的、可升级的 32 位嵌入式操作系统,是基于掌上型电脑类的电子设备操作。它是精简的 Windows 95,运用的也是GUI界面”
VxWorks
”它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。“
μC/OS-II (发音:miu cos two)
”一个源码公开、可移植、可固化、可裁剪、占先式的实时多任务操作系统。,有很强的可移植性,可裁剪性,稳定性与可靠性“
科普:
1.操作系统与指令集的区别,以鸿蒙和指令集为例:
鸿蒙系统(HarmonyOS)是华为公司开发的一款操作系统,它并不是一个指令集架构(ISA),而是一个操作系统。操作系统运行在硬件之上,提供用户界面和应用程序执行环境,并管理计算机硬件与软件资源。
指令集架构是指处理器(可以理解为CPU)理解并执行的机器语言指令集合,例如 x86、ARM 和 RISC-V 等。鸿蒙系统本身并不设计指令集;相反,它支持多种不同的指令集架构,这意味着它可以运行在基于不同处理器架构的设备上。比如,华为自家的一些移动设备可能使用 ARM 架构的处理器,而其他设备可能会使用 x86 或者 RISC-V 架构的处理器。
简而言之,鸿蒙系统并不设计自己的指令集,而是设计成能够兼容和支持现有的多种指令集架构,以确保其可以跨平台运行在各种不同的硬件设备上。
2.ARM是什么:
Advanced RISC Machines 的缩写,属于一款RICS微处理器,本身是32位设计,但也有16位指令集,ARM微处理器的在较新的体系结构中支持两种:ARM指令集和Thum集。其中,ARM指令为32位的长度,Thumb指令为16位长度。Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%~40%以上的存储空间,同时具备32位代码的所有优点。
3.什么是16、32、64、86位?
CPU中的16位、32位和64位指的是处理器的字长(word size),也就是处理器一次可以处理的数据宽度。这个数字直接关系到CPU内部寄存器的大小,以及它能够直接寻址的内存空间大小。
- 16位CPU:这种CPU一次可以处理16位二进制数,通常它的寄存器也是16位宽。16位系统最大能直接访问的地址空间是2^16个地址,即64KB。
- 32位CPU:32位处理器可以同时处理32位数据,其寄存器宽度为32位。32位系统的理论最大寻址空间是2^32个地址,即4GB。
- 64位CPU:62位处理器可以同时处理64位数据,支持更宽的寄存器。64位架构的寻址能力大大增强,理论上可寻址的地址空间为2^64个地址,这是一个非常巨大的数值,远超过当前实际需要。
位数越多并不总是意味着性能越好。虽然64位处理器在处理大数据量时有优势,并且能够使用更大的内存,但性能还受到很多其他因素的影响,比如:
- 时钟频率:CPU每秒钟执行周期的数量。
- 核心数量:多核处理器可以并行处理更多任务。
- 缓存大小:更大的缓存可以减少对主内存的访问时间,提高效率。
- 架构设计:不同的微架构设计会影响指令执行效率。
- 功耗与热设计:高效的能耗管理和散热设计可以保持处理器在最佳状态运行。
- 软件优化:应用程序必须针对特定架构进行优化才能充分利用硬件资源。
此外,对于某些应用来说,从32位升级到64位可能并不会带来显著的性能提升,尤其是当程序不依赖于大量内存或者不需要处理超出32位限制的数据集时。因此,选择合适的处理器应该基于具体的应用需求来决定。