2010年(49)
分类: 嵌入式
2010-09-07 13:46:39
1 虚拟内存空间和物理内存空间
所谓虚拟内存空间,是指逻辑上存在的内存空间,其大小一般是由地址总线的位数来决定的。例如,MPC8xx的地址线位宽为32bit,那么其虚拟内存空间的大小为2^32=4GBytes。虚拟内存空间的引入是因为计算机运行软件时所需的实际内存空间超过了硬件提供的物理内存空间,这时需要通过虚拟内存空间的技术来解决这个矛盾。用户实际的编程地址都是在虚拟内存空间完成的,不需要考虑实际物理内存的大小。但是,vxworks虽然支持虚拟内存,但是用户的程序大小是不允许超过物理内存的大小的。
物理内存空间是由PPC的MMU来确定的。具体就是OR/BR。我们一般确定物理内存空间从0开始。比如
请注意虚拟内存空间、物理内存空间及物理内存大小这三个术语。
虚拟内存空间到物理内存空间有一个映射关系。在vxworks操作系统中,这个映射关系是由sysLib.c文件中的PHYS_MEM_DESC sysPhysMemDesc []数组完成的。该数组指明了系统对虚拟内存空间地址的操作是如何映射到实际物理内存空间的。一般我们使两者相等。而物理内存空间的访问就用CPU的内存管理单元来完成。例如MPC8xx中的OR/BR机制。
虚拟空间