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

            導航

            統計

            公告

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

            常用鏈接

            留言簿(37)

            隨筆分類(104)

            隨筆檔案(101)

            文章分類(51)

            文章檔案(53)

            wince牛人

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            国产精品久久久久久久人人看| 久久久久成人精品无码中文字幕 | 中文成人久久久久影院免费观看| 精品久久久久久国产三级| 久久精品国产亚洲Aⅴ蜜臀色欲| 久久这里都是精品| 精品亚洲综合久久中文字幕| 久久精品无码av| 999久久久免费精品国产| 亚洲精品成人网久久久久久| 77777亚洲午夜久久多喷| 亚洲伊人久久综合影院| 精品久久久久久国产| 久久WWW免费人成一看片| 国产香蕉97碰碰久久人人| 久久精品欧美日韩精品| 人妻无码精品久久亚瑟影视| 久久99久久成人免费播放| AV无码久久久久不卡蜜桃| 精品熟女少妇AV免费久久| 无码乱码观看精品久久| 18岁日韩内射颜射午夜久久成人| 国内精品九九久久精品 | 久久免费的精品国产V∧ | 亚洲精品高清久久| 亚洲国产精品久久电影欧美| 亚洲国产成人久久一区WWW| 久久久久久狠狠丁香| www性久久久com| 99久久久精品| 久久青青草原国产精品免费| 久久久久久人妻无码| 久久国产劲爆AV内射—百度| 久久久久久久精品妇女99| 久久久久亚洲AV无码专区网站| 一本久久久久久久| 久久久精品久久久久久| 精品久久久久久国产牛牛app| 国产成人久久精品二区三区| 青青草原1769久久免费播放| 久久中文娱乐网|