主题中讨论的其他器件:AM3517、
工具/软件:Linux
您好!
是否有人可以指向启用 MMU 的位置 ?
谢谢!
已运行
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
尊敬的 Tvestoliln:
附件是为我编译的 A9-cortex。
我不确定这些寄存器中是否有任何一个在 A8下是不可忽略的。
编译器不应该抱怨吗?
如果您知道 MMU 的某些开放源码 MMU 初始化、请告诉我。
谢谢、
已运行
您是否运行了 MMU? 在 DM3730上启用 L1 Dcache 时遇到问题。 我不使用 Linux。
Dcache_disable();
ICache_disable();
ICache_invalidate();
TLB_validate ();//这是 ITLB 和 DTLB */
init_MMU_ttb();//这是页表设置和 MMU 寄存器编程*/
MMU_enable();
Dcache_invalidate();
cache_enable();
DCache_PRELOAD ();
这些是我采取的步骤,但在 dcache_PRELOAD ()中,数据写入将进入 SDRAM 而不是 L1 dcache。 L2高速缓存已禁用。 由于 L1 dcache 是在读取时分配的、因此我加载一个字、将其覆盖、并希望写入到 L1而不是 SDRAM、但我的写入会转到 SDRAM。 它看起来 MMU 工作正常、但 dcache 没有获取数据。
无操作系统。 自定义 MLO 开机自检 u-boot。 因此、我必须设置页表(仅4096 1MB 段级别1页、可高速缓冲、可完全访问、VA=PA (TEX=000b、 C=1、B=1、回写、无读分配)我自己并启用 L1 Dcache。 L2高速缓存已禁用、L1高速缓存已禁用。 我正在测试是否启用了 L1 Dcache、方法是启用它、逐字加载/存储到24个高速缓存、禁用控制寄存器中的 C 位、然后打印。 我*希望*打印 SDRAM 数据,而不是 L1 Dcache 数据,因为我禁用了 C 位,TRM 声明禁用了 C 位,因此不能访问 L1。 我希望 L1 Dcache 数据有效且脏污、但我需要清理和/或使其无效、因为我是回写的。 TRM 声称 L1 Dcache 是*只读*分配,这就是为什么我先加载然后存储以将 SDRAM 数据传入 L1 Dcache 中的原因。 因此,L1 Dcache 的作用看起来像直写式*OR*,它实际上没有启用。 当控制寄存器 C 位打开并且我设置了页表时、这是奇数。