Thread 中讨论的其他器件:SYSBIOS
工具/软件:TI-RTOS
您好!
我目前正在尝试对 MSMC SRAM 存储器区域实施存储器保护、以避免因一个内核写入其他内核存储器区域而导致的任何存储器损坏。 我不熟悉存储器保护领域、因此需要一些相同的指导。 为了理解这一概念,我已经介绍了一些文件,如 sprugw0c (CorePac)和 sprugw7a (MSMC)。 读取后、我添加了一些初始代码来执行地址转换、并为存储器范围提供初始权限、如下所示
mpaxh.bAddr =(0xC0000000 >> 12);
mpaxh.segSize =(MPAX_SEGSIZE = 4MB 和0x0000001F);
mpaxl.rAddr = 0x00c00000 >> 8;
mpaxl.SR = 1;
mpaxl.SW = 1;
mpaxl.sx = 1;
mpaxl.ur = 1;
mpaxl.uW = 1;
mpaxl.ux = 1;
CSL_XMC_setXMPAXH (3、&mpaxh);
CSL_XMC_setXMPAXL (3、&mpaxl);
现在、我想为上述的 MSMC SRAM 分配一个 size180 KB 的部分空间、并具有一些不同的权限、例如禁用用户写入和主管写入。 为此、我将使用 MemoryProtect_setPA 函数为 大小 为180KB 的0x0C000000地址位置设置存储器权限属性。 我的做法如下
MASK = MemoryProtect_MPPA_local | MemoryProect_MPPA_SR | MemoryProect_MPPA_SX | MemoryProect_MPPA_UR | MemoryProect_MPPA_UX;
RET = MemoryProtect_setPA ((ptr) 0x0C000000、0x2CFFF、掩码);
但是、当我从 MemoryProtect_setPA 中检查"Ret"值时、它始终返回 false。 在浏览 MemoryProtect_setPA 函数的文档后、它说"如果地址不属于任何已配置的 MPC、则为 false、否则为 true、并且 PA 已写入 addr 的 MPPA 寄存器"。 如果我在设置内存权限属性时出现任何错误、我将无法获得。
是否有人可以帮助我调试问题或提供一些解决问题的建议?
谢谢、此致、
Rahul