arm指令集和mcu
ARM
RISC 中的 CISC。由于 XiuOS 主要支持 Cortex-M 系列处理器,这里的内容基于 ARMv7-M。
特权级
Thread Mode 和 Handler Mode。
数据类型和寄存器
和许多指令集类似,有字节、字、半字。
13个通用寄存器 + SP (分为MSP和PSP)+ LR + PC。
和 x86 类似,会存储标志信息。有 N,Z,C,V,Q。
系统模式
不支持虚拟内存。
与 PSR (对应 CSR)相关的指令:MSR,MRS。
发生中断&异常时,保存现场由硬件来做。
(exception model:https://interrupt.memfault.com/blog/arm-cortex-m-exceptions-and-nvic)
相关指令: SVC (对应 syscall),BKPT(对应 ebreak)。
Memory Model
指令集
支持 Thumb-2,2 字节和 4 字节的指令可以任意混合。
通过跳转指令,程序可以跳转到特定的地址标志处执行,或者跳转到特定的子程序处执行。其中,B指令用于执行跳转操作;BL指令在执行跳转动作的同时,保存子程序的返回地址;BX指令在执行跳转操作的同时,根据目标地址的最低位可以将程序状态切换到Thumb状态;BLX指令执行3个操作:跳转到目标地址处执行,保存子程序的返回地址,根据目标地址的最低位可以将程序状态切换到Thumb状态。
(ref:https://blog.csdn.net/caihaitao2000/article/details/84843270)
MCU:以STM32F407VGT6为例
STM32F407VGT6是意法半导体基于高性能的Arm Cortex®-M4 32位RISC内核设计的一款微处理器,其工作频率高达 168 MHz。Cortex-M4 内核具有浮点运算单元(FPU),支持所有ARM单精度数据处理指令和数据类型。 它还实现了全套的DSP指令和一个存储器保护单元(MPU),从而增强了应用程序的安全性。 STM32F407VGT6集成了高速嵌入式存储器,其中包括高达 1 MB的FLASH,高达 192 KB的SRAM。
芯片的其他特性如下:
- 芯片提供三个12位ADC模数转换器,转换速度最高可达2.4Mhz,两个DAC数模转换器,一个低功耗亚秒级精度的RTC,十二个通用16位定时器,其中包括两个用于电机控制的PWM定时器,两个通用32位定时器。 真正的随机数生成器(RNG)。 它们还具有标准和高级通信接口。
- STM32F407提供了工作频率为168 MHz的Cortex™-M4内核(具有浮点单元)的性能,在168 MHz频率下,从Flash存储器执行时,芯片能够提供210 DMIPS/566 CoreMark性能,并且利用意法半导体的ART加速器实现了FLASH零等待状态。DSP指令和浮点单元扩大了产品的应用范围。芯片本身具有功率调节功能,功耗低至238 µA/MHz的电流消耗(@ 168 MHz)。
- 灵活的静态存储器控制器,支持紧凑型闪存,SRAM,PSRAM,NOR和NAND存储器,用于扩展SRAM和FLASH。
- LCD并行接口,支持8080/6800模式。
- CPU支持睡眠,停止和待机等运行模式。
- 芯片拥有2个DMA控制器,共有16个数据流,具有FIFO和突发传输功能。
- 芯片支持串行线调试(SWD)和JTAG接口,Cortex-M4嵌入式跟踪Macrocell™。
- 具有3个I2C接口(SMBus / PMBus),2个bxCAN控制器,4个USARTs / 2 UART, 3个SPI(42 Mbits / s),其中2个具有复用的全双工I2S,可通过内部音频PLL或外部时钟实现音频类精度。
- SDIO接口:STM32F407VGT6 的SDIO 控制器支持多媒体卡(MMC 卡)、 SD 存储卡、 SD I/O 卡和 CE-ATA 设备等。
- STM32F407 芯片自带10M/100M以太网MAC控制器,该模块支持介质独立接口 MII 和简化介质独立接口 RMII,并自带了一个用于外部 PHY 通信的 SMI 接口, 通过一组配置寄存器,用户可以为 MAC 控制器和 DMA 控制器选择所需模式和功能。
- STM32F407芯片自带的USB控制器支持USB2.0 通信协议,可以满足USB OTG FS 和 USB OTG HS通信(HS 需要外扩高速 PHY 芯片实现,速度可达 480Mbps),支持 USB Host 和 USB Device。
8至14位并行摄像头接口(DCMI),传输速度高达54 Mbytes / s。 - 高达512字节的OTP存储器。
- 拥有全球唯一96位ID标识码。