首页 > 代码库 > 常见的CPU访问引起的内存保护问题为什么只用event_122上报 - 2

常见的CPU访问引起的内存保护问题为什么只用event_122上报 - 2

对于TIC66x DSP,每个corePac的L1D内存(包括cache与SRAM)大小为32k字节。L1D内存控制器把32k字节的内存分为16个页,每页大小为2k字节,与之对应的是L1D内存控制器实现了16个寄存器(L1DMPPA16~31,见下图)用于一对一定义16个页的访问权限(设置是否允许当前CPU以及哪些外设访问和设置访问权限)。

而在TI C66x DSP的corePac文档中有这一段话:L1DMPPA0 through L1DMPPA15 memory protection pages/registers do not exist in C66x CorePac. Reading from or writing to these registers triggers a DSP memory protection fault from L1D memory controller.

L1DMPPA0~15寄存器是不存在的,用户不能访问这些寄存器, 任何TI文档中也没有讲解这16个寄存器的作用,个人理解这16个寄存器已经对空地址与reserved地址进行了保护,这些保护是硬件写死的,用户不可设置,所以L1D内存控制器才可以检测到CPU对空地址与reserved地址的非法访问,但有待TI专家对此种猜想的确认。