博主 WangTx's Blog
博主 2024年12月30日 在线自豪地使用 Typecho 建站搭配使用 🌻Sunny 主题当前在线 1 人
歌曲封面 未知作品
  • 歌曲封面现在 你才不幸福河南说唱之神
  • 歌曲封面夜晚打灯我找不到爱河南说唱之神
  • 歌曲封面工厂河南说唱之神
  • 歌曲封面芳草地DIGI GHETTO

网站已运行 273 天 16 小时 6 分

Powered by Typecho & Sunny

2 online · 37 ms

Title

RH850-U2A MPU配置

信鸽

·

嵌入式

·

Article
⚠️ 本文最后更新于2024年06月03日,已经过了233天没有更新,若内容或图片失效,请留言反馈

芯片手册

支持的Feature

  • 内存访问控制
  • 每种 CPU 运行模式的访问管理
  • 使用系统保护标识符(SPID)进行保护

MPU相关寄存器ID

image.png

Product information of initial value for G4MH register: 用到了SR0,1
image.png

Autosar 配置MPU流程

整体配置流程:

  1. 设置SC3 OS system
  2. 配置MPU区域
  3. 分配MPU区域到MPU
  4. 分配到Task/App/ISR
  5. 使用autosar的mem map配置代码位置
  6. 使用生成的link 文件配置memory 到section

代码理解

autosar 代码配置流程(对应整体流程中的2、3步骤):

  1. 配置MPIDn寄存器。在使能了MPU功能后,哪些硬件模块还可以访问所有的内存保护区域。
  2. 配置MPIDX寄存器。配置每一个内存保护块的时候,需要先配置MPIDX寄存器直没entry ID。
  3. 配置MPLA寄存器。配置每一个内存保护块的Minimum地址。
  4. 配置MPUA寄存器。配置每一个内存保护块的Maximum地址。
  5. 配置MPAT寄存器。配置每一个内存保护块的USER/SVP模式下的可读、可写、可执行的属性。
  6. 配置MPM寄存器。使能MPU功能。

![[Drawing 2024-05-21 15.06.34.excalidraw]]

代码入口:

♾️ path 代码:
Components\Os\Implementation\Os_Hal_MemoryProtection.c
image.png

Os_Hal_SetMPM

♾️ c 代码:
asm void Os_Hal_SetMPM(uint32 value)
{
    %reg value
      ldsr  value, 0, 5
    %con value
      mov   value, r11
      ldsr  r11, 0, 5
    %mem value
      ld.w  value, r11
      ldsr  r11, 0, 5
    %error
}

autosar中使用ldsr(Load to system register)指令进行赋值操作:image.png

官方手册使用:

♾️ c 代码:
void __LDSR(int regID, int selID, unsigned int val);
image.png

LDSR可以直接使用立即数赋值

Os_Hal_MpuConfigSwitch

调用 Os_Hal_SetMPUn( n = 0-31 )image.png
image.png
image.png

举例: Os_Hal_MpuConfigSwitch -> Os_Hal_SetMPU31 -> Os_Hal_SetMPU(31, (Config))

  1. Os_Hal_SetMPIDX31 image.png
  2. Os_Hal_SetMPLA((Config)->MpuRegion31.RegionStart);image.png
  3. Os_Hal_SetMPUA((Config)->MpuRegion31.RegionEnd);image.png
  4. Os_Hal_SetMPAT((Config)->MpuRegion31.RegionAttribute)image.png

Os_Hal_InitMPIDn

MPID寄存器配置哪一些模块可以直接访问内存保护区域
image.png
image.png

Os_Hal_SetMPURegion0

为stacks配置MPU0 的区域,会覆盖之前配置的MPU区域配置

image.png

Os_Hal_Set_MemRegionID

image.png
image.png

Os_Hal_SyncPipeline

image.png

![[GHS编译器同步指令#^fb4e8e]]

Reference

[[TechnicalReference_Os.pdf]]

现在已有 128 次阅读,0 条评论,0 人点赞
Author:信鸽
作者
RH850-U2A MPU配置
当前文章累计共 2754 字,阅读大概需要 1 分钟。
CMAC解析
2024年6月3日 · 0评论
RH850-U2A MPU配置
2024年6月3日 · 0评论
Comment:共0条
发表
搜 索 消 息 足 迹
你还不曾留言过..
你还不曾留下足迹..
博主 不再显示
博主