Cortex-M4外设

关于Cortex-M4外设

专用外设总线(PPB)的地址映射为:

软件可以读取MPU类型寄存器0xE000ED90,以测试是否存在内存保护单元(MPU)。

  • Privileged:只有特权软件才能访问寄存器。
  • Unprivileged:非特权软件和特权软件都可以访问寄存器

嵌套向量中断控制器

本节描述NVIC及其使用的寄存器。NVIC支持:

  • 实现定义的中断数,范围为1~240个中断。
  • 每个中断的可编程优先级为0~255.较高的级别对应较低的优先级值,因此级别0是最高的中断优先级。
  • 电平和脉冲检测中断信号。
  • 中断的动态重优先级。
  • 将优先级值分组为组优先级和子优先级。
  • 中断尾链。
  • 外部不可屏蔽中断(NMI)。
  • 可选WIC,提供超低功耗睡眠模式支持。

处理器在异常入口时自动堆叠其状态,在异常出口时自动解除堆叠,没有指令开销。这提供了低延迟异常处理。NVIC寄存器的硬件实现如下:

使用CMSIS访问Cortex-M4 NVIC寄存器

CMSIS功能使不同的Cortex-M配置文件处理器之间的软件可移植性。

要在使用CMSIS时访问NVIC寄存器,请使用以下函数:

c 复制代码
/* 使能中断或异常 */
void NVIC_EnbaleIRQ(IRQn_Type IRQn);

/* 将中断或异常的挂起状态设置为1 */
void NVIC_SetPendingIRQ(IRQn_Type IRQn);

/* 读取中断或异常的挂起状态。如果挂起状态设置为1,则此函数返回非零值 */
uint32_t NVIC_GetPengdingIRQ(IRQn_Type IRQn);

void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority);

中断设置-使能寄存器

NVIC_ISER0~NVIC_ISER7寄存器使能中断,并显示哪些中断是使能的。

位赋值为:

31:0:中断设置使能位。

写:0=没影响;1=中断使能;

读:0=中断失能;1=中断使能。

如果一个挂起的中断被启用,NVIC会根据它的优先级激活这个中断。

如果中断未启用,断言其中断信号将中断状态更改为挂起,但NVIC永远不会激活中断,无论其优先级如何。

相关推荐
国科安芯7 小时前
ASC0101S自动双向电平转换原理深剖
单片机·嵌入式硬件·fpga开发·云计算·信息与通信
李永奉7 小时前
中科蓝讯SDK开发-开启串口Debug打印调试教程
单片机·嵌入式硬件·mcu·物联网·电脑
LCG元7 小时前
STM32硬件SPI驱动OLED SSD1306显示屏全流程实战:从CubeMX配置到中英文显示
stm32·单片机·嵌入式硬件
sukalot7 小时前
windows网络适配器驱动开发-双 STA 连接(下)
windows·驱动开发·stm32
飞凌嵌入式7 小时前
性能翻倍·功耗减半!RK3572八核核心板,重构嵌入式计算新标杆
人工智能·嵌入式硬件·飞凌嵌入式
zcmodeltech8 小时前
智慧农业沙盘模型物联网控制系统设计:基于STM32与Modbus RTU的传感器-执行器闭环方案
服务器·分布式·stm32·嵌入式硬件·物联网·能源
WD1372980155718 小时前
WD5030L,超高集成度、大电流输出、高效率低发热,限流24V转12V,6A
stm32·单片机·嵌入式硬件·51单片机
~光~~20 小时前
【xv6学习】L0_环境配置
单片机·嵌入式硬件·学习
映翰通网络1 天前
TI开发板上的边缘AI工具链:先认清OpenCV、GStreamer和TIDL
人工智能·嵌入式硬件·opencv·计算机视觉·ti
论迹复利1 天前
Smith 圆图实战——从原理到 L 型匹配网络设计
嵌入式硬件·无线