项目简介
本项目基于Infineon微控制器,展示了Cortex - M处理器的内存保护单元(MPU)和对称内存保护单元(SMPU)的配置与使用方法。项目包含CM0+、CM7_0和CM7_1三个核心的主程序,借助共享内存实现核心间通信,运用MPU和SMPU对内存区域进行保护与分隔,防止未经授权的访问,适用于多核处理器系统或有严格内存管理需求的系统。
项目的主要特性和功能
- 内存保护:利用MPU和SMPU保护特定内存地址,区分读/写、执行、用户/特权、安全/非安全等不同访问属性,防止非法访问。
- 多核心协作:CM0+核心负责硬件和外设初始化,配置和保护总线主设备,检测并处理访问违规故障;CM7_0和CM7_1核心负责硬件初始化,通过共享内存接收CM0+指令并从特定地址读取数据。
- 访问违规检测:总线主设备尝试访问受SMPU保护的内存地址时,会根据保护上下文评估,不匹配则阻止访问并触发故障。
安装使用步骤
前提条件
无
代码编译与烧录
- 使用提供的USB电缆,通过KitProg3 USB连接器将开发板连接到计算机。
- 打开终端程序,选择KitProg3 COM端口,将串口参数设置为8N1和115200波特率。
- 选择以下任意一种方式对开发板进行编程:
- 在项目资源管理器中选择代码示例项目。
- 在“快速面板”中向下滚动,点击“[项目名称] Program (KitProg3_MiniProg4)”。
运行与测试
- 编程完成后,代码示例将自动启动,确认UART终端上显示相关消息。
- 按下
1
和4
时,核心尝试进行允许的内存读取操作。 - 按下
2
时,CM7_0尝试读取无权限的地址。 - 按下
3
时,CM7_1尝试读取无权限的地址。 - 若要调试示例代码,可在IDE的“快速面板”中使用“[项目名称] Debug (KitProg3_MiniProg4)”配置,具体细节可参考Eclipse IDE for ModusToolbox™软件用户指南中的“Program and debug”部分。
注意事项
在调试CM7 CPU时,main()
函数中的部分代码可能会在调试器在main()
函数开头暂停之前执行,可参考KBA231071了解该问题及解决方法。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】