我试图将SDRAM内存加载到L2缓存。我初始化了MMU并制作了1个翻译表。 我也启用了缓存,我看到软件也在使用缓存......
要将某些SDRAM加载到我的L2缓存,我尝试使用预加载引擎(PLE)。
我已经阅读了有关PLE的文档,但我没有让它工作。这是我尝试过的: __asm(" MCRR p15,0,%0,%1,c11" ::" r"(0x20000004)," r"(0x20000000)); //程序PLE新频道 0x20000004是包含start_register值的寄存器(在我的情况下为0x10000000) 0x20000000是包含设置的寄存器:在我的情况下为0xFFFC007C。这意味着 : 长度= 16k,stride = 0,块数为32(32 * 16k = 512k,这是可用的L2缓存量)
执行此命令时,PLE对寄存器PLEIDR,PLEASR,PLEFSR,PLEUAR和PLEPCR不执行任何操作。 PLEIDR表示Fifo_size = 16和PLE可用。 PLEASR始终为零,这意味着通道永远不会活动 PLEFSR = 16,这意味着FIFO中有16个可用条目 其他设置是用户定义的......
如何让PLE频道正常运行?