嵌入式系统的内存管理与外设配置
1. 内存保护单元(MPU)编程
Cortex - M 微控制器的 MPU 支持多达八个不同的可编程区域。可以实现一个启用 MPU 并设置所有区域的函数,并在程序开始时调用。我们直接定义并访问 MPU 寄存器:
#define MPU_BASE 0xE000ED90
#define MPU_TYPE (*(volatile uint32_t *)(MPU_BASE + 0x00))
#define MPU_CTRL (*(volatile uint32_t *)(MPU_BASE + 0x04))
#define MPU_RNR (*(volatile uint32_t *)(MPU_BASE + 0x08))
#define MPU_RBAR (*(volatile uint32_t *)(MPU_BASE + 0x0c))
#define MPU_RASR (*(volatile uint32_t *)(MPU_BASE + 0x10))
为了在 RASR 中设置正确的属性,定义了以下位域值:
#define RASR_ENABLED (1)
#define RASR_RW (1 << 24)
#define RASR_RDONLY (5 << 24)
#define RASR_NOACCESS (0 << 24)
#define RASR_SCB (7 << 16)
#define RASR_SB (5 << 16)
#define RASR_
超级会员免费看
订阅专栏 解锁全文
1580

被折叠的 条评论
为什么被折叠?



