• <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的窩

            最初想法的誕生地

             

            wince下的地址映射知識(shí)點(diǎn)滴

            1.如果是在bootloader中打開MMU之前,程序訪問設(shè)備寄存器,可以直接操作物理地址,無(wú)需虛實(shí)映射。

            2.wince啟動(dòng)后,硬件上ARM和X86體系的處理器啟動(dòng)了MMU,操作系統(tǒng)只能訪問到虛擬地址,不能直接操作物理內(nèi)存了。但是如果是X86的CPU,由于它的外設(shè)I/O端口和存儲(chǔ)器空間分開編址,可以直接嵌入?yún)R編或者使用宏read_port_xxx,write_port_xxx來(lái)讀寫設(shè)備寄存器的物理地址。

            3.wince軟件結(jié)構(gòu)里對(duì)應(yīng)MMU的是一個(gè)名為OEMAddressTable的數(shù)據(jù)結(jié)構(gòu)(源文件oeminit.asm中),其中建立了物理地址和虛擬地址的靜態(tài)映射關(guān)系,也可以在其中改動(dòng)系統(tǒng)所能識(shí)別物理內(nèi)存的大小,以支持大內(nèi)存。

            4.我們也可以在wince啟動(dòng)后調(diào)用CreateStaticMapping和NKCreateStaticMapping來(lái)實(shí)現(xiàn)OEMAddressTable中的這種物理地址和虛擬地址的靜態(tài)映射關(guān)系。

            5.建立了靜態(tài)映射關(guān)系的虛擬地址只能由內(nèi)核模式下的程序來(lái)操作,例如 ISR。除非你在定制系統(tǒng)時(shí),選擇了full kernal mode,使所有程序都運(yùn)行在完全內(nèi)核模式下,這將導(dǎo)致系統(tǒng)不穩(wěn)定。

            6.如果要在驅(qū)動(dòng)程序中訪問設(shè)備寄存器,必須建立動(dòng)態(tài)虛擬地址映射,可以調(diào)用MmmapIoSpace函數(shù)來(lái)實(shí)現(xiàn),或者通過VirtualAlloc和VirtualCopy函數(shù)來(lái)實(shí)現(xiàn)。其實(shí)MmmapIoSpace內(nèi)部就調(diào)用了后者。

            7.在驅(qū)動(dòng)中訪問虛擬地址時(shí),必須是非緩存段(位于0xA0000000 到 0xBFFFFFFF )。

            8.使用VirtualCopy函數(shù)映射物理內(nèi)存時(shí),其lpvSrc參數(shù)必須右移8位,且相應(yīng)的fdwProtect參數(shù)必須帶page_physical。

            9.如果是ARM體系的處理器,訪問掛在系統(tǒng)總線上的設(shè)備寄存器前,必須先把總線地址轉(zhuǎn)化成CPU的地址,通過HalTranslateBusAddress實(shí)現(xiàn)兩種物理地址的變換,然后再調(diào)用MmmapIoSpace函數(shù)作虛實(shí)地址的轉(zhuǎn)換。
              wince5.0下可以使用CreateBusAccessHandle(總線注冊(cè)表路徑)+BusTransBusAddrToVirtual來(lái)實(shí)現(xiàn)總線物理地址到系統(tǒng)虛擬地址的直接變換。

            posted on 2007-03-27 22:39 milkyway 閱讀(2779) 評(píng)論(2)  編輯 收藏 引用 所屬分類: Wince學(xué)習(xí)小結(jié)

            評(píng)論

            # re: wince下的地址映射知識(shí)點(diǎn)滴 2008-03-14 18:20 lll

            不錯(cuò)的稿子  回復(fù)  更多評(píng)論   

            # re: wince下的地址映射知識(shí)點(diǎn)滴 2008-07-29 16:18 wogo

            大哥,你寫的東西很有價(jià)值啊。通俗易懂。我今天一整天都在看你的博客。
            真的非常感謝你,有了你的幫助。我進(jìn)步很快。非常感謝你。你太牛了。  回復(fù)  更多評(píng)論   

            導(dǎo)航

            統(tǒng)計(jì)

            公告

            隨筆皆原創(chuàng),文章乃轉(zhuǎn)載. 歡迎留言!

            常用鏈接

            留言簿(37)

            隨筆分類(104)

            隨筆檔案(101)

            文章分類(51)

            文章檔案(53)

            wince牛人

            搜索

            積分與排名

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            亚洲乱码精品久久久久..| 国产99久久久久久免费看| 久久精品中文字幕一区| 一本色综合网久久| 婷婷综合久久中文字幕| 亚洲精品无码久久毛片| 丁香五月网久久综合| 97精品伊人久久大香线蕉| 99久久成人国产精品免费| 一级做a爰片久久毛片看看| 99久久人妻无码精品系列蜜桃| 性做久久久久久久久| 久久久91精品国产一区二区三区 | 久久久久久亚洲精品不卡| 久久久久青草线蕉综合超碰| 国产欧美久久一区二区| 欧美亚洲国产精品久久高清| 99久久精品免费| 久久精品国产亚洲一区二区| 亚洲AV成人无码久久精品老人| 午夜视频久久久久一区 | 久久综合狠狠综合久久综合88| 91精品国产色综久久| 久久精品国产99久久无毒不卡 | 久久久久久一区国产精品| 国产精品久久久天天影视| 久久精品国产日本波多野结衣| 国产精品久久久久久久午夜片 | 亚洲午夜精品久久久久久浪潮| 久久香蕉国产线看观看精品yw| 精产国品久久一二三产区区别| 久久天天日天天操综合伊人av| 99久久精品国产一区二区| 国产精品美女久久久免费| 久久夜色精品国产亚洲| 久久电影网一区| 精品免费久久久久国产一区| 久久精品18| 国产精品久久久久免费a∨| 国内精品久久久久久久久电影网| 亚洲中文字幕无码久久2017 |