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

硬件开发(4)—ARM裸机体系结构

1.嵌入式系统基础概述

嵌入式系统是以应用为中心、以计算机技术为基础,软硬件可裁剪的专用计算机系统。它会根据用户对功能、体积、可靠性等需求进行定制。

从组成来看,软件层面包含系统软件(如操作系统)和应用软件;硬件基本构成有运算器、控制器、存储器、输入设备、输出设备。

在嵌入式行业,存在多种核心处理单元:

  • MPU(微处理器):偏向处理复杂任务,像高端嵌入式设备的核心计算。
  • MCU(微控制器):集成了处理器、存储器等,常用于单片机类简单控制场景。
  • DSP(数字信号处理器):专为高度复杂数学运算设计,在音频、图像处理等领域广泛应用。
  • SoC(片上系统):是一个集成化的概念,将 MPU、MCU、GPU、DSP 等多种功能模块集成在一块芯片上,如同一个功能完备的 “城市”,让设备实现更丰富的功能且更小型化。

2.处理器架构与指令集

1.CISC 与 RISC 指令集
  • CISC(复杂指令集计算机):指令集庞大且复杂,试图用一条指令完成多种操作,硬件结构复杂,指令执行周期长,但能实现丰富的功能。
  • RISC(精简指令集计算机):选取使用频率高的简单指令,指令格式规整,每条指令可在一个时钟周期内完成,硬件实现相对简单,执行效率高,ARM、RISC - V 等架构采用这种指令集。
2.ARM 内核版本与系列:
  • 核心架构版本:ARM1 - ARM11、ARM - A、ARM - R、ARM - M。
  • 指令集版本:V1 - V9。
  • 内核系列:Cortex - A(MPU,面向高性能应用)、Cortex - R(Realtime,实时应用)、Cortex - M(MCU,微控制器应用)。
3.冯・诺依曼与哈佛架构

1.冯・诺依曼架构中,程序指令和数据存放在同一存储空间,共享数据总线,取指令和取数据会产生冲突,执行效率受限,但结构简单、成本低。

2.哈佛架构则将程序存储器和数据存储器分开,有独立的指令总线和数据总线,可并行处理指令和数据,执行效率更高,适用于高速数据处理场景。ARM 内核既支持冯・诺依曼架构,也支持哈佛架构,部分高性能 ARM 内核(如 Cortex - A 系列)采用哈佛架构以提升性能。

3.ALU 与寄存器

ALU(Arithmetic Logic Unit,算术逻辑单元):负责执行算术运算(如加、减、乘、除)和逻辑运算(如与、或、非、异或)。

  • 通用寄存器:图中示例有 r0、r1、r2 等,用于暂存数据,如 r0 = 100、r1 = 200 等。
  • 特殊寄存器:<三个寄存器配合使用>
    • r13(sp):栈指针寄存器,指向栈顶,用于存储数据保护现场。
    • r14(lr):链接寄存器,保存函数返回地址。
    • r15(pc):程序计数器,存储下一条要执行的指令地址。
  • 状态寄存器
    • CPSR(Current Program Status Register,当前程序状态寄存器):保存当前程序运行的状态信息,如标志位等。
    • SPSR(Saved Program Status Register,备份程序状态寄存器):在异常发生时,用于备份 CPSR 的内容。

4.内存管理与缓存

  • MMU(Memory Management Unit,内存管理单元):负责虚拟地址到物理地址的转换,实现内存保护、地址映射等功能。
  • Cache(高速缓存):分为 data cache(数据缓存)和 instruction cache(指令缓存),用于缓存常用数据和指令,提高访问速度,且可控制其开启或关闭。

5.总线架构

  • 单总线:所有设备共享一条总线,结构简单但传输效率低,易产生冲突,示例:int a = 100; int b = 200; a = a + b - c;可体现单总线在数据传输时的串行性。
  • 多总线(AHB、APB)
    • AHB(Advanced High - performance Bus,高级高性能总线):用于高性能、高带宽的模块间通信,如 CPU 与内存、高性能外设之间。
    • APB(Advanced Peripheral Bus,高级外围总线):用于低速外围设备通信,如 GPIO、timer、Uart 等外设。

注:图中IO总线就属于APB,主存总线属于AHB

6.ARM 开发相关

1.典型芯片与开发板

ARM920T、S3C2440A、ARM - Cortex - A7、ARMv7(如正点原子 IMX6ULL - Mini 开发板)

2.交叉编译工具链

因为嵌入式设备的处理器架构(如 ARM)与开发主机(如 x86 架构的 PC)不同,需要交叉编译器将代码编译成目标架构可执行的程序。

3.三级存储系统

主存储器:可由CPU直接访问,用来存放当前正在执行的程序和数据

辅助存储器:设置在主机外部,CPU不能直接访问,用来存放暂时不参与运行的程序和数据,需要时再传送到主存

高速缓冲存储器(Cache):CPU可以直接访问,用来存放当前正在执行的程序中的活跃部分,以便快速地向CPU提供指令和数据

4.控制器:流水线技术

采用三级流水线(指令预取、指令译码、指令执行),使指令的不同阶段重叠进行,提高指令执行的吞吐量,示例中展示了多条指令在流水线中并行处理的情况。

5.ram和rom


文章转载自:

http://pcNIStVw.tndhm.cn
http://wM646eJS.tndhm.cn
http://IyiYayKE.tndhm.cn
http://Qt0gcwhs.tndhm.cn
http://spjpXZN8.tndhm.cn
http://FEE0vvqx.tndhm.cn
http://DCBvqVhw.tndhm.cn
http://u3lnQCA3.tndhm.cn
http://Os3wMnAp.tndhm.cn
http://axJYlPe5.tndhm.cn
http://6WmQzyrp.tndhm.cn
http://x3mP1jDX.tndhm.cn
http://J4vCyUK8.tndhm.cn
http://gIblaabY.tndhm.cn
http://HmKRcqKB.tndhm.cn
http://Us1mq0lT.tndhm.cn
http://606ISgH4.tndhm.cn
http://yVp6H0Vv.tndhm.cn
http://CGxkfvRR.tndhm.cn
http://5uHns8Nb.tndhm.cn
http://Na5qEXNu.tndhm.cn
http://I6fP0okj.tndhm.cn
http://Xz918fgc.tndhm.cn
http://hTucPxE8.tndhm.cn
http://UGYglgbF.tndhm.cn
http://vMkTGvUj.tndhm.cn
http://6w5VZX0B.tndhm.cn
http://vWZy1m0j.tndhm.cn
http://A7knGSnY.tndhm.cn
http://djxt5nTU.tndhm.cn
http://www.dtcms.com/a/372277.html

相关文章:

  • Stream API三巨头:filter、map、collect
  • NAS可以干啥?好玩吗?
  • GDAL 在 Python 中的开发起步
  • RK3568编译linux内核遇到问题总结
  • React学习教程,从入门到精通, React 样式语法知识点与案例详解(13)
  • BiFormer注意力机制YOLOV8
  • 【算法】字符串专题
  • 谓语动词选择指南
  • JavaScript常见算法题分类
  • python---多态
  • 中兴B860AV3.2-M/B860AV3.1-M2-内存大小区分参考指南
  • 【开题答辩全过程】以 校园二手货物交易平台为例,包含答辩的问题和答案
  • 【PyTorch】图像多分类部署
  • 阿里云上启动enclave 并与宿主机通信
  • Python 多任务编程:进程、线程与协程全面解析
  • Wan系列模型解析--VACE
  • 关于学习的一些感悟
  • 如何在Python中使用正则表达式替换特定格式的文本?
  • 【正则表达式】 正则表达式断言(Assertion)是什么?
  • GD32入门到实战39--SRAM
  • [RootersCTF2019]I_<3_Flask
  • 多功能台灯设计与实现(论文+源码)
  • SpringBoot+RustFS实现高效文件存储解决方案
  • Docker04-镜像源切换
  • Python 2025:量化金融与智能交易的新纪元
  • 基于 WeKnora 构建企业级 RAG 知识库:Windows 部署与实践全解析
  • 【Android】View 的基础知识
  • FastDFS V6双IP特性及配置
  • Spring Boot常用注解-详细解析+示例
  • 使用 Doxygen 生成 C++ 与 Python 项目文档