day44

ARM体系结构与嵌入式系统


第一部分:嵌入式系统概述

  1. 嵌入式系统定义

以应用为中心,以计算机技术为基础,软硬件可剪裁的专用计算机系统。根据用户需求(功耗、体积、环境、稳定性、可靠性)进行定制。

  1. 计算机系统基本组成

· 软件系统:应用层(APP)、操作系统(SYS)

· 硬件系统:运算器、控制器、存储器、输入设备、输出设备

  1. 处理器基本分类

· CPU(中央处理单元):强大通用型处理器

· GPU(图形处理单元):图形处理单元

· FPU(浮点运算单元):浮点运算单元

· NPU(神经网络处理单元):神经网络处理器

  1. 嵌入式领域处理器分类

· MPU(微处理器):通用型,偏向处理

· MCU(微控制器):集成度高,偏向控制,单片机即单片微型计算机系统

· DSP(数字信号处理器):为高强度数学运算而设计的一种专用芯片

· SoC(片上系统):一种集成和设计的理念,将MPU、MCU、DSP等功能模块整合在同一芯片上,形成一个功能完善的系统

  1. SoC内部结构

包含多个内核(如kernel1、kernel2)以及丰富的外设接口,如GPIO、PWM、UART、定时器、硬盘控制器等。

第二部分:存储器分类与特性

  1. RAM(随机访问存储器)

· 可被处理器直接寻址

· 单位存储空间价格高

· 易失性存储器

· 读写速度快

  1. ROM(只读存储器)

· 一般不可被处理器直接寻址

· 单位存储空间价格低

· 非易失性存储器

· 读写速度慢

第三部分:计算机架构与指令集

  1. 主流架构

· x86

· ARM

· MIPS

· RISC-V

  1. 指令集分类

· CISC(复杂指令集计算机):指令系统复杂,如x86架构(X64为其64位扩展)

· RISC(精简指令集计算机):指令系统精简,如ARM架构

  1. ARM指令集版本演进

V1-V4-V9,包含V4、V5、V7、V9等版本。

  1. ARM内核型号

· 经典系列:ARM7、ARM9、ARM11

· Cortex系列:

· Cortex-A:应用处理器,用于高性能场景(如手机)

· Cortex-R:实时处理器,用于高实时性场景

· Cortex-M:微控制器,用于低功耗控制场景

第四部分:ARM内部结构与寄存器

  1. 机器字长

ARM架构为32位,机器字长4字节。

  1. 通用寄存器

· R0~R15:通用寄存器

· R13(sp):栈指针寄存器,指向当前栈顶

· R14(lr):链接寄存器,保存函数返回地址

· R15(pc):程序计数器,指向下一条要执行的指令地址

  1. 关键硬件模块

· ALU(算术逻辑单元):执行算术和逻辑运算

· Cache(高速缓存):分为iCache(指令缓存)和dCache(数据缓存),用于提高访存速度

· MMU(内存管理单元):负责虚拟地址到物理地址的映射

· CPSR(当前程序状态寄存器):保存当前程序运行状态

· SPSR(备份程序状态寄存器):在异常发生时保存CPSR的值

  1. 总线结构

· 数据总线:32根

· 地址总线:32根,寻址范围0x00000000 ~ 0xFFFFFFFF

· 控制总线:若干根,用于传输控制信号

第五部分:内存管理(MMU)与虚拟内存

  1. MMU的作用

· 关闭MMU:直接访问物理内存空间

· 打开MMU:通过MMU将物理内存空间映射为虚拟内存空间

  1. 虚拟内存空间布局(由高到低)

· 操作系统内核区

· 栈区:存放局部变量,向低地址方向增长

· 堆区:动态分配内存,向高地址方向增长

· BSS段(未初始化区):存放未初始化的全局变量和静态变量,自动清零

· 数据段(已初始化区):存放已初始化的全局变量和静态变量

· 代码段:存放程序指令

  1. 内存映射

通过MMU将外设(如GPIO、PWM、RAM、ROM等)映射到虚拟内存空间的特定地址范围,实现统一编址访问。

第六部分:程序编译与内存布局

  1. GCC编译流程

· 预处理:.c -> .i(展开宏、头文件)

· 编译:.i -> .s(生成汇编代码)

· 汇编:.s -> .o(生成目标文件)

· 链接:.o -> .out(生成可执行文件)

  1. 程序在内存中的布局

· 代码段:存放函数指令,如main、fun0、fun1等函数体

· 栈区:存放函数的局部变量和参数,栈帧随函数调用而创建和销毁

· 栈指针R13(sp)向下移动分配空间,向上移动释放空间

  1. 栈帧(Stack Frame)

每次函数调用都会在栈上创建一个新的栈帧,用于保存函数的局部变量、参数和返回地址。函数返回时,栈帧被销毁。

第七部分:流水线与总线

  1. 三级流水线

· 取指:从内存中取出指令

· 译码:解析指令的操作码和操作数

· 执行:执行指令的实际操作

流水线技术允许多条指令同时处于不同执行阶段,提高CPU执行效率。

  1. 总线类型

· AHB(先进的高性能总线):用于连接高性能模块(如CPU、内存控制器、DMA等)

· APB(先进的高性能外设总线):用于连接低速外设(如UART、GPIO、定时器等)

关键概念辨析

MPU vs MCU

· MPU:微处理器,通用型,偏向处理,通常需要外接内存和外设

· MCU:微控制器,集成度高,偏向控制,内部集成内存和外设

RAM vs ROM

· RAM:易失性,读写快,可随机访问,用于运行时数据存储

· ROM:非易失性,读写慢,一般用于存储固件或启动代码

CISC vs RISC

· CISC:指令复杂,一条指令可完成较多操作,硬件实现复杂

· RISC:指令精简,每条指令执行时间短,便于流水线优化,硬件实现简单

MMU开启与关闭

· 关闭MMU:直接操作物理地址,适用于裸机或简单嵌入式系统

· 开启MMU:使用虚拟地址,提供内存保护和地址映射,适用于复杂操作系统

相关推荐
硬禾科技2 小时前
连接世界的工程哲学
嵌入式硬件·测试工具·自动化·硬件工程
深圳市青牛科技实业有限公司 小芋圆2 小时前
GC1808:高性能、低成本的立体声音频ADC芯片
人工智能·嵌入式硬件·无人机·太阳能逆变器
fhq_fn_jgd2 小时前
51单片机(串口通信)
单片机·嵌入式硬件
沸速存储3 小时前
AI 机器人靠哪些内存与存储驱动整机运行?
服务器·科技·嵌入式硬件·电脑
深圳市恒锐丰科技杨生3 小时前
EG6288 220V 三相独立半桥栅极驱动芯片|屹晶 EGmicro
嵌入式硬件·硬件工程
商业白皮书3 小时前
杭州企业做 GEO 怎么选服务商?B2B 制造、外贸出海与品牌连锁选型指南
笔记
Brilliantwxx3 小时前
【STM32】 I2C_EEPROM_test 工程(实战篇)
开发语言·stm32·单片机·嵌入式硬件·ecmascript
en.en..4 小时前
UDP套接字编程完整标准流程(服务端+客户端)
单片机·嵌入式硬件
商业白皮书4 小时前
密不透风的瑕疵防线:东集SEV400视觉传感器,定义“轻量化”精准检测
笔记