您好!
我正在使用6638 K2K 定制板。 我在使用 DDR3进行数据处理的不同内核上运行不同的应用。 我需要启用存储器保护、以便一个内核无法访问其他内核数据部分。 在非法访问时、应引发异常、并调用挂钩函数。 我使用 MPAX 寄存器保护存储器的一部分、并拒绝本地处理器访问该存储器部分。 当本地处理器试图写入存储器的那个部分时、数据不会像预期的那样写入存储器、但不会产生故障。 下面是我所做的工作:
索引=4;
mpaxh.segSize =23;
mpaxh.bAddr = 0x90000;
CSL_XMC_setXMPAXH (索引、&mpaxh);
mpaxl.ux = 0;
mpaxl.uW = 0;
mpaxl.ur = 0;
mpaxl.sx = 0;
mpaxl.SW = 0;
mpaxl.SR = 0;
XX =(0x810 + coreNum * 0x01)<<12;
mpaxl.rAddr = xx;
CSL_XMC_setXMPAXL (索引、&mpaxl);
然后、我尝试写入存储器0x90000000、写入失败、但不会生成异常。 我检查了 FSR 寄存器、它显示0x0。
以下是 cfg:
VAR MemoryProtect = xdc.useModule('ti.sysbios.family.c64p.MemoryProtect');
exception.exceptionHook ="&My_ExceptionHandler";
Exception.internalHook ="&My_ExceptionHandler";
exception.externalHook ="&My_ExceptionHandler";
exception.nmiHook ="&My_ExceptionHandler";
异常.returnHook ="&My_ExceptionHandler";
exception.enableExternalMPC = true;
exception.enablePrint = true;
当我尝试访问空指针时、异常处理程序会正确执行。
请帮助我了解我遗漏的内容。
此致、Yunas