omapl138 ARM端在SYSBIOS下使能MMU后无法访问外设.比如使能MMU后串口就无法配置和使用.请问是有什么配置没有设好吗?禁用MMU就正常.
Ryan BL:
使能mmu前,你的tlb配置了吗?
user4699890:
回复 Ryan BL:
你好,我这样配置了.就是我只想share ram的内存被cache.实际上,DDR的内存也被cache了.
for (index = 0; index < (4*1024); index++) { if(index == 0x800) { pageTable[index] = (uiIdx << 20) | 0x00000C1E; } else { pageTable[index] = (uiIdx << 20) | 0x00000C12; } } CP15TtbSet((unsigned int )pageTable);
Ryan BL:
回复 user4699890:
呃。。。我没怎么搞过arm的mmu,只弄过ppc的,一般不在linux下跑多任务的话,都是将物理地址和虚拟地址同地址映射,然后某些诸如外设空间的地址,使用大块地址的映射,ppc某些处理器是有大块地址的映射的,不叫tlb,叫啥忘记了,反正优先级比tlb高,也没仔细看arm的tlb是否支持大块的内存映射。
你看下你使能mmu后串口不能访问的问题,是否将串口配置寄存器空间有对应的映射。