核心主题与关键观点
arm处理器的授权方式:芯片公司获得授权后,ARM会以verilog-HDL硬件描述语言的形式提供设计的源代码,这些公司的设计工程师会将外设、存储器等自己的设计模块添加进去,并使用EDA工具将整个设计转化为晶体管层级的芯片设计。
cortex处理器分为3个系列,分别为A,M,R;A系列为高性能的开放应用平台(手机、平板);M系列为深度嵌入式微处理器(小型应用、低功耗、低中断);R系列用于实时性能的额高端嵌入式系统(汽车系统);
多个长周期处理的任务往往需要同时执行,借助实时操作系统,可以架构处理器实践分为多个时间片,并见时间片分给所需的进程。在每个时间片的最后,定时器会产生定时中断,从而触发任务调度器确定是否执行上下文切换。
指令集:M3M4使用的式Thunb-2指令集,允许16位和32位指令混合使用;以获得更好的代码密度。arm7TDMI-需要在arm指令集和thumb指令集切换,arm指令集为了性能优化、thumb指令集为了代码密度提升;儿cortexM处理器无需状态切换,从而节省了切换的cpu开销。
ARM7TDMI 是 ARM 公司早期推出的经典 32 位 RISC 嵌入式处理器内核,名称中每个字母代表一项特定的功能扩展:
- T(Thumb):支持 16 位 Thumb 压缩指令集。标准 ARM 指令为 32 位,Thumb 指令集将其压缩为 16 位,显著提高了代码密度,降低了存储器带宽需求,特别适合存储空间受限的嵌入式应用。
- D(Debug):支持片上调试功能,可通过 JTAG 接口进行断点设置、单步执行、寄存器观测等调试操作。
- M(Multiplier):内嵌硬件乘法器,支持 32 位 × 32 位 → 64 位的长乘法运算,以及乘加(MAC)运算,在数字信号处理等需要频繁乘法的场景中大幅提升效率。
- I(EmbeddedICE):集成 EmbeddedICE 调试模块,提供片上断点和观察点硬件支持,允许在运行时暂停处理器以检查寄存器、内存等内容。
AMBA (Advanced Microcontroller Bus Architecture,先进微控制器总线架构)是 ARM 公司提出的一套片上总线标准,旨在为系统级芯片(SoC)中处理器、内存控制器和外设模块之间提供高效、标准化的互连通信基础架构。
AMBA 的核心目标是让 SoC 设计具备模块化、可复用和可扩展的特性,使不同供应商的 IP 组件能够无缝集成,从而降低开发成本、加快产品上市。
主要总线协议
AMBA 协议族包含多种总线,分别针对不同的性能、功耗和复杂度需求:
AHB(Advanced High-performance Bus,先进高性能总线)
AHB 是高性能的系统骨干总线,面向高带宽、低延迟的模块互连。
- 支持流水线操作 、突发传输(burst transfer) 和分割传输(split transaction)
- 支持多主设备仲裁
- 单时钟沿操作,无三态实现
- 数据总线宽度最低 32 位,最高可达 1024 位
- 典型应用:连接 CPU、DMA 控制器、片上内存(SRAM/SDRAM 控制器)等
APB(Advanced Peripheral Bus,先进外设总线)
APB 是最简单的 AMBA 总线,设计目标是极简化和低功耗。
- 非流水线传输,结构简单
- 所有信号与时钟上升沿同步
- 通过**桥接器(Bridge)**挂载在 AHB 或 AXI 总线下
- 典型应用:连接低速外设,如 UART、GPIO、定时器、I²C 等
AXI(Advanced eXtensible Interface,先进可扩展接口)
AXI 是 AMBA 3.0 引入的高性能接口,现已成为现代 SoC 中高带宽通信的主导协议。
- 独立的读/写数据通道,支持并发传输
- 支持乱序传输 和非对齐访问
- 基于握手机制(valid/ready),适合高频设计
- 典型应用:连接多核处理器、GPU、DDR 控制器、PCIe 等高速模块
典型应用:连接多核处理器、GPU、DDR 控制器、PCIe 等高速模块
MSP 和PSP: MSP是os内核和中断用的主栈指针,PSP是应用任务用的进程栈指针,从而时间可靠性提升和栈空间优化。
芯片调试的支持原理:cortex-M3M4的flash补丁和断点单元FPB存在最多8个用于断点的硬件比较器,触发时,处理器可以被暂停。
arm处理器采用的加载-存储架构,在处理存储器的数据时,需要先加载到寄存器,处理后再写回存储器。
软件复位后,或者处于处理模式中,会使用MSP,线程模式会使用PSP,在使用OS是才会使用PSP,此时OS内核同应用任务的栈相互独立。
R14-LR,链接寄存器,用于存储函数或子程序调用时返回地址的保存。而如果存在函数的嵌套调用,则需要现将LR压栈。