摘要:处理器拥有的一组寄存器。 主堆栈指针重置后,操作系统内核和异常处理例程(包括中断服务例程)将使用默认堆栈指针。 进程堆栈指针由您的应用程序代码使用。 堆栈指针的低两位始终是字节对齐的。 这意味着堆栈始终是字节对齐的。
第 1 章 ARM 处理器 1.1 ARM 处理器概述 1.1.1 ARM 概念
ARM(高级 RISC 机器)可以被视为公司名称或对一种微处理器的引用。 它通常被认为是一种先进的 RISC(精简指令集)微处理器和技术的名称。 ARM不制造也不销售芯片,只提供芯片技术授权。 其分包商结合UART、SDI、I2C等各种硬件组件,根据不同的需求设计不同的SoC芯片。
1.1.2 ARM应用场景
基于ARM的处理器具有速度快、功耗低、价格低廉等优点,广泛应用于以下领域:通信、可靠性,为消费电子提供高品质视频设备和其他产品的解决方案。 运行复杂操作系统的开放应用程序平台。 它为海量存储、汽车电子、工业控制和网络应用领域提供实时嵌入式应用。
1.1.3 ARM技术特性
ARM架构支持32位ARM指令集和16位Thumb指令集(从而增加代码存储空间)。 处理器系列产品: ARM Cortex-A系列:顶级主控、手机、平板AP应用处理器 ARM Cortex-R系列:实时高性能处理器、硬盘控制器、车辆控制产品ARM Cortex -M 系列:基于 Cortex - 1.2 的流行低端工业和消费电子微控制器] M3 MCU 1.2.1 Cortex-M3 处理器内核与基于 Cortex-M3 的 MCU 之间的关系
Cortex- M3 内核定义:微控制器的中央处理单元 CPU。 Cortex-M3是ARM设计的基于ARMv7架构的Cortex系列中的首款产品。 其目的是让32位处理器参与单片机市场。 Cortex-M3特点:性能强、功耗低、实时性好、代码密度显着提升、使用更简单、整体方案成本更低、开发工具较多:keil、Cube..两者关系:如如图1所示,-1是基于Cortex-M3内核的MCU,Cortex-M3对应的是小型CPU(中央处理单元)。 MCU就是我们看到的芯片。 一旦不同的芯片制造商获得使用 Cortex-M3 内核的许可,他们将能够在自己的硅芯片设计中使用它们,从而允许每个制造商添加不同的容量。 或者具有不同类型内存和其他外设的不同 MCU 型号。
图1-1
1.2.2 ARM指令集
ARM处理器一直支持两种相对独立的指令集: 32位ARM指令集 对应的处理器状态:ARM状态 16位Thumb指令集对应处理器状态。 Thumb 状态
1.2.3Cortex-M3 - 寄存器组
Cortex-M3 是一个32 位处理器内核。 内部数据路径是32位,寄存器是32位,存储器接口是32位。 CM3 采用哈佛架构,具有独立的指令和数据总线,允许指令读取和数据访问并行发生。 这样,数据访问就不会占用指令总线,从而提高了性能。 Cortex-M3 处理器具有 R0-R15 寄存器组。 其中,R13成为堆栈指针SP。 有两个 SP,但一次只能显示一个。 这是所谓的“银行”寄存器。
图1-2 R0-R所有 12 个都是用于数据操作的 32 位通用寄存器。 大多数 16 位 Thumb 指令只能访问 R0-R7。 32 位 Thumb-2 指令可以访问所有寄存器。 R13:两个堆栈指针。 Cortex-M3 有两个堆栈指针,但它们是存储的,因此任何时候只有一个可用。 主堆栈指针(MSP):复位后默认使用的堆栈指针。 由操作系统的内核和异常处理例程(包括中断服务例程)使用。 进程堆栈指针 (PSP):由您的应用程序代码使用。 堆栈指针的低两位始终为 0。 这意味着堆栈始终是 4 字节对齐的。 R14:连接寄存器。 当调用子程序时,R14 存储返回地址。 R15:程序计数器寄存器。 指向当前程序地址。 Cortex-M3在核心级别还拥有几个特殊功能寄存器,包括: 程序状态字寄存器组(PSR) 中断屏蔽寄存器组(PRIMASK、FAULTMASK、BASEPRI) 控制寄存器(CONTROL)
图 1-3
在 Cortex-M3 中有一个预定义的“宽线”内存映射。 将片内外设的寄存器映射到外设区域,可以方便地访问这些外设的寄存器,并通过访问内存来控制其操作。 这允许您使用C语言来操作片上外设。
评论前必须登录!
注册