• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            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 閱讀(2234) 評論(0)  編輯 收藏 引用 所屬分類: Wince學習小結

            導航

            統計

            公告

            隨筆皆原創,文章乃轉載. 歡迎留言!

            常用鏈接

            留言簿(37)

            隨筆分類(104)

            隨筆檔案(101)

            文章分類(51)

            文章檔案(53)

            wince牛人

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            91精品免费久久久久久久久| 久久精品国产日本波多野结衣| 色成年激情久久综合| 丰满少妇人妻久久久久久4| 最新久久免费视频| 国产精品久久99| 人妻无码αv中文字幕久久琪琪布| 久久精品国产网红主播| 亚洲欧美一级久久精品| 国内精品久久九九国产精品| 尹人香蕉久久99天天拍| 久久综合狠狠综合久久激情 | 久久久久久国产精品免费无码| 国产成人久久激情91| 久久午夜福利无码1000合集| 中文字幕亚洲综合久久| 一本色道久久99一综合| 久久性精品| 久久精品国产清自在天天线| 久久国产乱子伦免费精品| 久久人与动人物a级毛片| 久久www免费人成精品香蕉| 久久精品国产精品青草app| AV无码久久久久不卡蜜桃| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 精品人妻伦一二三区久久 | 亚洲色婷婷综合久久| 日本高清无卡码一区二区久久| 91精品国产高清久久久久久国产嫩草 | 99精品久久精品| 亚洲AV乱码久久精品蜜桃| 三级三级久久三级久久| 欧美亚洲日本久久精品| 久久精品国产99久久丝袜| 91精品国产高清久久久久久91 | www亚洲欲色成人久久精品| 久久九九全国免费| 丁香久久婷婷国产午夜视频| 99久久国产综合精品五月天喷水| 久久久国产精品福利免费| 久久免费视频网站|