littlebot
Published on 2025-04-09 / 0 Visits
0

【源码】基于Infineon微控制器的内存保护单元配置示例

项目简介

本项目基于Infineon微控制器,展示了Cortex - M处理器的内存保护单元(MPU)和对称内存保护单元(SMPU)的配置与使用方法。项目包含CM0+、CM7_0和CM7_1三个核心的主程序,借助共享内存实现核心间通信,运用MPU和SMPU对内存区域进行保护与分隔,防止未经授权的访问,适用于多核处理器系统或有严格内存管理需求的系统。

项目的主要特性和功能

  1. 内存保护:利用MPU和SMPU保护特定内存地址,区分读/写、执行、用户/特权、安全/非安全等不同访问属性,防止非法访问。
  2. 多核心协作:CM0+核心负责硬件和外设初始化,配置和保护总线主设备,检测并处理访问违规故障;CM7_0和CM7_1核心负责硬件初始化,通过共享内存接收CM0+指令并从特定地址读取数据。
  3. 访问违规检测:总线主设备尝试访问受SMPU保护的内存地址时,会根据保护上下文评估,不匹配则阻止访问并触发故障。

安装使用步骤

前提条件

代码编译与烧录

  1. 使用提供的USB电缆,通过KitProg3 USB连接器将开发板连接到计算机。
  2. 打开终端程序,选择KitProg3 COM端口,将串口参数设置为8N1和115200波特率。
  3. 选择以下任意一种方式对开发板进行编程:
    • 在项目资源管理器中选择代码示例项目。
    • 在“快速面板”中向下滚动,点击“[项目名称] Program (KitProg3_MiniProg4)”。

运行与测试

  1. 编程完成后,代码示例将自动启动,确认UART终端上显示相关消息。
  2. 按下14时,核心尝试进行允许的内存读取操作。
  3. 按下2时,CM7_0尝试读取无权限的地址。
  4. 按下3时,CM7_1尝试读取无权限的地址。
  5. 若要调试示例代码,可在IDE的“快速面板”中使用“[项目名称] Debug (KitProg3_MiniProg4)”配置,具体细节可参考Eclipse IDE for ModusToolbox™软件用户指南中的“Program and debug”部分。

注意事项

在调试CM7 CPU时,main()函数中的部分代码可能会在调试器在main()函数开头暂停之前执行,可参考KBA231071了解该问题及解决方法。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】