WinCE下的位址對映以及暫存器訪問

2021-04-19 05:02:16 字數 950 閱讀 3806

1.如果是在bootloader中訪問裝置暫存器,可以直接操作實體地址。

2.wince啟動後,硬體上arm和x86體系的處理器啟動了mmu,作業系統只能訪問到虛擬位址,不能直接操作物理記憶體了。但是如果是x86的cpu,由於它的外設i/o埠和儲存器空間分開編址,可以直接嵌入彙編或者使用巨集read_port_***,write_port_***來讀寫裝置暫存器的實體地址。

3.wince軟體結構裡對應mmu的是乙個名為oemaddresstable的資料結構(

原始檔oeminit.a**中),其中建立了實體地址和虛擬位址的

靜態對映關係,也可以在其中改動系統所能識別物理記憶體的大小,以支援大記憶體。

靜態對映關係。

5.建立了靜態對映關係的虛擬位址只能由核心模式下的程式來操作,例如 isr。除非你在定製系統時,選擇了full kernal mode,使所有程式都執行在完全核心模式下,這將導致系統不穩定。

6.如果要在驅動程式中訪問裝置暫存器,必須建立

動態虛擬位址對映,可以呼叫mmmapiospace函式來實現,或者通過virtualalloc和virtualcopy函式來實現。其實mmmapiospace內部就呼叫了後者。

7.在驅動中訪問虛擬位址時,必須是非快取段(位於0xa0000000 到 0xbfffffff )。

8.使用virtualcopy函式對映物理記憶體時,其lpvsrc引數必須右移8位,且相應的fdwprotect引數必須帶page_physical。

9.如果是arm體系的處理器,訪問掛在系統匯流排上的裝置暫存器前,必須先把匯流排位址轉化成

cpu的位址,通過haltranslatebusaddress實現兩種實體地址的變換,然後再呼叫mmmapiospace函式作虛實位址的轉換。

wince5.0下可以使用createbusaccesshandle(匯流排登錄檔路徑)+bustransbusaddrtovirtual來實現匯流排實體地址到系統虛擬位址的直接變換。

wince下的位址對映知識點滴

引自 http blog.csdn.net gooogleman archive 2008 07 29 2731747.aspx 1.如果是在bootloader中訪問裝置暫存器,可以直接操作實體地址。2.wince啟動後,硬體上arm和x86體系的處理器啟動了mmu,作業系統只能訪問到虛擬位址,不...

暫存器位址對映

目錄 暫存器位址對映 暫存器位址對映關係 mdk5 中的位址關係以及查詢方法 gpiob的埠位址 埠位址如何對映到具體暫存器的位址?暫存器位址與埠位址的關係 apb2外圍裝置匯流排的位址 外圍裝置基位址 綜上所述 如上圖所示,進行了一次強制型別轉換,其實位址這個東西就是代表儲存的地點,任何型別對他來...

wince儲存與位址對映技術

1.如果是在bootloader中訪問裝置暫存器,可以直接操作實體地址。2.wince 啟動後,硬體上arm和x86體系的處理器啟動了mmu,作業系統只能訪問到虛擬位址,不能直接操作物理記憶體了。但是如果是x86的cpu,由於它的外設i o埠和儲存器空間分開編址,可以直接嵌入彙編或者使用巨集read...