俺是一菜鸟 ,看了资源映射/* linux/include/asm-arm/plat-s3c24xx/map.h 函数,对映射过程还是模糊。
求教高手分析 硬件资源物理地址映射到内存虚拟地址的函数实现过程
例如INT_TRC 中断分析 。 |
------------------------------------------------------------------
在map中MMU将虚拟地址映射到物理地址中的范围是,
虚拟地址的范围是:0x0000 0000 -------------0x4F00 0000
物理地址的范围是:0x4800 0000--------------0x5B00 001C
#define S3C24XX_VA_GPIO S3C2410_ADDR(0x00E00000)
#define S3C2400_PA_GPIO (0x15600000)
#define S3C2410_PA_GPIO (0x56000000)
#define S3C24XX_SZ_GPIO SZ_1M
S3C24XX_VA_GPIO 表示: S3C24XX GPIO的Virtual Address
S3C2400_PA_GPIO 表示: S3C2400 GPIO的Physicla Address
S3C2410_PA_GPIO 表示: S3C2410 GPIO的Physicla Address
S3C24XX_SZ_GPIO SZ_1M 表示:S3C24XX每个段(虚拟地址中)划分为1M
如:ARM920T是32位的,则虚拟内存空间为4GB,共划分为4096个1M大小的段
(相当于页,名称不一样而已) |