关于MMU映射 建表的问题
本帖最后由 徐长远 于 2013-3-1 21:12 编辑#define MMU_FULL_ACCESS (3 << 10) /* 访问权限 */
#define MMU_DOMAIN (0 << 5) /* 属于哪个域 */
#define MMU_SPECIAL (1 << 4) /* 必须是1 */
#define MMU_CACHEABLE (1 << 3) /* cacheable */
#define MMU_BUFFERABLE (1 << 2) /* bufferable */
#define MMU_SECTION (2) /* 表示这是段描述符 */
#define MMU_SECDESC (MMU_FULL_ACCESS | MMU_DOMAIN | MMU_SPECIAL | \
MMU_SECTION)
#define MMU_SECDESC_WB (MMU_FULL_ACCESS | MMU_DOMAIN | MMU_SPECIAL | \
MMU_CACHEABLE | MMU_BUFFERABLE | MMU_SECTION)
#define MMU_SECTION_SIZE 0x00100000
unsigned long virtuladdr, physicaladdr;
unsigned long *mmu_tlb_base = (unsigned long *)0x30000000;
/*
* Steppingstone的起始物理地址为0,第一部分程序的起始运行地址也是0,
* 为了在开启MMU后仍能运行第一部分的程
* 将0~1M的虚拟地址映射到同样的物理地址
*/
virtuladdr = 0;
physicaladdr = 0;
*(mmu_tlb_base + (virtuladdr >> 20)) = (physicaladdr & 0xFFF00000) | \
MMU_SECDESC_WB;
其中最后一句代码什么意思?virtuladdr >> 20 位为0? physicaladdr & 0xFFF00000 相与为0?最后一或赋值又是多少? 建议你先看下MMU的特性及设置方法,韦东山好像有本书讲的很详细,你可以到网上下个PDF的看看 embedsky_lhh 发表于 2013-3-2 11:25 static/image/common/back.gif
建议你先看下MMU的特性及设置方法,韦东山好像有本书讲的很详细,你可以到网上下个PDF的看看
亲,要不你就来解释下?然后我们深讨下? /*
* Steppingstone的起始物理地址为0,第一部分程序的起始运行地址也是0,
* 为了在开启MMU后仍能运行第一部分的程
* 将0~1M的虚拟地址映射到同样的物理地址
*/
页:
[1]