内存保护
yiyeguzhou100
专注,探索,分享
展开
-
TI C66x DSP 四种内存保护问题 -之- 针对CPU访问外存(DDR3 or MSM)时的内存保护问题
DSP访问外存时内存保护的问题,原因是CPU访问了自己没有访问权限的外部内存(如share memory即MSM或者DDR3,相对于corePac内部的L1,L2内存而言),如CPU访问DDR3中的无权限内存时(即在当前CPU的配置中,没有设置对该内存的访问权限),硬件会触发MDMA bus error event(VbusM error event 110,CPU访问corePac内部资源L1,原创 2014-05-14 17:08:26 · 2664 阅读 · 0 评论 -
volatile and non-cacheable
In some applications, some specific addresses may need to be read from their physical locations each time they are accessed (e.g., a status register within FPGA).The L2 controller offers registers t原创 2015-09-10 21:04:26 · 988 阅读 · 0 评论 -
常见的CPU访问引起的内存保护问题为什么只用event_122上报 - 举例2
另一个例子,通过下面的log看,CPU在访问reserved的地址0x53611EFD,非法访问时该地址会在L1D内存控制器的L1DMPFSR寄存器中记录。** FATAL EXCEPTION Nid:0x1262 TYPE:EXTERNAL:[0xEA07A]CpuL1DMemoryProtectionFault Violated memory address(L1DMPFAR):0x536原创 2014-06-07 10:46:47 · 1156 阅读 · 0 评论 -
常见的CPU访问引起的内存保护问题为什么只用event_122上报 - 举例1
在代码维护中,发现一个指针的初始值是0,在没有走到正常分支处该指针是不会被赋值的,而在软件的启动阶段,恰恰该指针不会走到正常分支,所以在后面使用该指针的时候,并没有判断指针值是否为空,所以CPU使用空指针访问,就会出现问题,并在L1内存控制器中被检测到,通过event 122=0x7A上报。根据下图CPU通过空指针访问0x48的地址,是因为空指针指向一个结构体,在用指针去访问结构体中某个变量,原创 2014-06-07 10:37:03 · 1005 阅读 · 0 评论 -
常见的CPU访问引起的内存保护问题为什么只用event_122上报 - 1
当CPU访问某个地址,会首先将访问请求发给L1D内存控制器,如果在L1D cache或L1D SRAM(CPU直接访问L1D内存)中命中,则L1D内存控制器就向CPU直接返回访问内存,如果没有命中则需要L2内存控制器请求…这样当CPU访问的地址是空地址(NULL)或者是DSP中reserved(DSP没有开放使用的内存地址)的地址,在L1D内存控制器中就会检测到CPU非法地址访问,就会通过L1原创 2014-06-05 21:22:23 · 1141 阅读 · 0 评论 -
常见的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文档中有这一原创 2014-06-05 22:12:07 · 1258 阅读 · 0 评论 -
TI C66x DSP 四种内存保护问题 -之- 针对CPU访问外存(DDR3 or MSM)时的内存保护问题 - 举例
在代码维护中遇到过这种问题,CPU访问了corePac的外部内存空间0x75510C55地址,即CPU向corePac的L2内存控制器发起了对该内存的访问,然后L2内存控制器将该请求发给corePac的XMC模块,XMC模块根据配置好的寄存器(即32bit虚拟地址到36位物理地址的映射与内存权限寄存器,每个大小为16M的内存段用一个寄存器设置,每个CPU均有同样的多个此种寄存器)检查该地址是否合法原创 2014-06-03 22:04:29 · 2652 阅读 · 0 评论 -
Reserved space protection
Reserved space (invalid address) is protected against abnormal access. Reads from invalid address return garbage; writes to invalid address are blocked. Access to reserved space can generate exception原创 2014-06-04 13:39:42 · 1015 阅读 · 0 评论 -
TI C66x DSP 四种内存保护问题
CPU访问外存(DDR3 or MSM)时的内存保护问题;外设(如SRIO,QM,FFTC等)对外存访问的内存保护问题有另一套机制实现;CPU对自己所属corePac内部资源(L1,L2内存)访问时的内存保护问题,由各自的内存控制器实现,这个比较简单。原创 2014-05-14 17:20:51 · 2268 阅读 · 0 评论 -
TI C66x DSP 四种内存保护问题 -之- CPU访问corePac内部资源时的内存保护问题
CPU访问corePac内部资源(L1,L2)时的内存保护(通过设置内存的访问权限实现)等问题请参考下面两个blog,已经叙述的很详细。"TI C66x DSP 系统events及其应用 - 2","TI C66x DSP 系统events及其应用 - 3"。原创 2014-05-17 11:34:13 · 1662 阅读 · 0 评论 -
TI C66x DSP 四种内存保护问题 -之- 外设访问corePac内部资源时的内存保护问题
外设访问corePac内部资源(L1,L2)时的内存保护等问题请参考下面两个blog,已经叙述的很详细。"TI C66x DSP 系统events及其应用 - 2","TI C66x DSP 系统events及其应用 - 3"。原创 2014-05-17 11:27:32 · 1308 阅读 · 0 评论 -
volatile代码中的应用
typedef volatile unsigned int vu32;#pragma DATA_SECTION(".gadParamFlg")volatile SAdParam gAdParam[PARAM_NUM]; // indicate EDMA bcp-tcp STATUS.volatile u32 *Reg = (u32 *)BCP_ENABLE_TM_原创 2015-09-10 21:56:17 · 983 阅读 · 0 评论