milkyway的窝

最初想法的诞生地

 

Windows CE在i.MX21平台上的虚实地址映射技术

 

       Windows CE系统中定义了两种地址:物理地址和虚拟地址.在不同架构的CPU中地址管理有所区别:MIPS和SHx系列处理器,地址映射是由CPU完成的,CE内核管理1G的存储(512M缓存,512M非缓存);而X86和ARM系列处理器则通过一个结构数组定义了从4G的虚拟地址到512M物理地址的映射关系.更详细的解释参见“Windows CE的存储与地址映射技术学习”。上面提到的确立地址映射数据结构的名称与其源代码的位置和WinCE版本有关,与CPU体系结构也有关。比如,Windows CE 4.2OEMAddressTable位于oeminit.asmX86)或map.aARM)中。而Windows CE 5.0ARM架构的CPU采用g_oalAddressTable来初始化MMU,其定义位于%WINCE500\PLATFORM\***\SRC\INCoemaddrtab_cfg.inc文件中。

        例如SMDK2410的映射表如下:

; TABLE FORMAT

;                 cached address, physical address, size

;------------------------------------------------------------------------------

 

g_oalAddressTable

 

        DCD     0x80000000, 0x32000000, 32      ; 32 MB DRAM BANK 6

        DCD     0x82000000, 0x08000000, 32      ; 32 MB SROM(SRAM/ROM) BANK 1

……

             i.MX21平台上虚实地址映射的实现比较特别,它通过三个文件共同实现,而不是仅靠一个文件就完成了。

            首先,在%WINCE500\PLATFORM\iMX21_SD\Src\Inc\oemaddrtab_cfg.inc中完成了从虚拟地址到片选信号/存储器/寄存器的映射:

; TABLE FORMAT

;           cached address, physical address, size

;------------------------------------------------------------------------------

 

g_oalAddressTable

 

    DCD 0x88000000, CSP_BASE_MEM_PA_CSD0,  64 ; Entry for 64MB on CSD0, sdram

    DCD 0x80000000, CSP_BASE_MEM_PA_CS0,    64 ; 64MB CS0 flash

    DCD 0x84000000, CSP_BASE_MEM_PA_CSD1,   64 ; Entry for CSD1

DCD 0x8C000000, CSP_BASE_MEM_PA_CS1,    64 ; 64MB CS1 Expanded IO

……

          接着,位于%WINCE500\PUBLIC\COMMON\OAK\CSP\ARM\FREESCALE\MX21\Inc目录下的mx21_base_mem.inc(或mx21_base_mem.h)给出了片选信号和存储器到物理地址的映射关系:

;; i.MX21 INTERNAL MEMORY MAP

;;-----------------------------------------------------------------------------

CSP_BASE_MEM_PA_AIPI1           EQU     (0x10000000)

……

;;-----------------------------------------------------------------------------

;; i.MX21 EXTERNAL MEMORY MAP

;;-----------------------------------------------------------------------------

CSP_BASE_MEM_PA_CSD0            EQU     (0xC0000000)

CSP_BASE_MEM_PA_CSD1            EQU     (0xC4000000)

CSP_BASE_MEM_PA_CS0             EQU     (0xC8000000)

CSP_BASE_MEM_PA_CS1             EQU     (0xCC000000)

……

         类似的,%WINCE500\PUBLIC\COMMON\OAK\CSP\ARM\FREESCALE\MX21\Inc目录下的mx21_base_regs.inc(或mx21_base_mem.h)给出了设备寄存器到物理地址的映射:

……

// AIPI1 periperhals

#define CSP_BASE_REG_PA_AIPI1                   (0x10000000)

……

// Non-AIPI Peripherals

#define CSP_BASE_REG_PA_AITC                    (0x10040000)

#define CSP_BASE_REG_PA_ROMPATCH              (0x10041000)

#define CSP_BASE_REG_PA_SMN                    (0x10042000)

#define CSP_BASE_REG_PA_SCM                    (0x10043000)

#define CSP_BASE_REG_PA_CSI                     (0x80000000)

#define CSP_BASE_REG_PA_BMI                    (0xA0000000)

#define CSP_BASE_REG_PA_SDRAMC                (0xDF000000)

……

         经过这样从虚拟地址---片选信号/存储器/寄存器---物理地址的转换,虚拟地址和物理地址间就建立了映射关系,如下表所示:

虚拟地址, 片选信号/存储空间/寄存器,                物理地址

DCD 0x88000000, CSP_BASE_MEM_PA_CSD0,               0xC0000000

DCD 0x84000000, CSP_BASE_MEM_PA_CSD1,               0xC4000000

DCD 0x80000000, CSP_BASE_MEM_PA_CS0,                 0xC8000000

DCD 0x8C000000, CSP_BASE_MEM_PA_CS1,                0xCC000000

DCD 0x90000000, CSP_BASE_MEM_PA_CS2,                 0xD0000000

DCD 0x91000000, CSP_BASE_MEM_PA_CS3,                0xD1000000

DCD 0x92000000, CSP_BASE_MEM_PA_CS4,                 0xD2000000

DCD 0x93000000, CSP_BASE_MEM_PA_CS5,                 0xD3000000

DCD 0x94000000, CSP_BASE_MEM_PA_PCMCIA_CF_IO,     0xD4000000

DCD 0x98000000, CSP_BASE_REG_PA_AIPI1,                0x10000000

DCD 0x98100000, CSP_BASE_REG_PA_CSI,                  0x80000000

DCD 0x98200000, CSP_BASE_REG_PA_BMI,                 0xA0000000

DCD 0x98300000, CSP_BASE_REG_PA_SDRAMC,            0xDF000000

DCD 0x98400000, CSP_BASE_MEM_PA_VRAM,              0xFFFFE800

posted on 2008-09-02 00:09 milkyway 阅读(1967) 评论(0)  编辑 收藏 引用 所属分类: Wince学习小结


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

公告

随笔皆原创,文章乃转载. 欢迎留言!

常用链接

留言簿(37)

随笔分类(104)

随笔档案(101)

文章分类(51)

文章档案(53)

wince牛人

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜