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

            最初想法的誕生地

             

            ce內存映射的點點滴滴

            wy12218 發表于 2006-11-9 18:17:00

            OEMAddressTable里定義的映射關系是給ARM MMU用的,是在KernelStart(source code參考wince420private目錄)時建立的,只要WINCE還在跑,就不會解除.
            OEMAddressTable里的Virtual Addr和Physical Addr是對ARM來說的. 其實對于WINCE,就只能訪問到它的Virtual address. 也就是說,OEMAddressTable里的Virtual address對WINCE 系統來說才是Physical Address.

            經過OEMAddressTable映射后的系統的物理地址,在0x80000000~0x9fffffff之間.是caching and buffering的地址,這個地址加上0x20000000,就是它的cache & buffering disabled地址.所有的硬件寄存器的地址都在這個地址段上,受MMU保護的.

            上面講的系統的物理地址,從0x80000000~0xbfffffff,在Kernel Mode下都可以直接訪問. ISR是在KERNEL里,也就可以直接訪問這些系統的物理地址.無所謂"因為ISR只能訪問靜態映射的虛擬地址".

            上面說過,對于ARM來說,有虛擬地址和物理地址之分,對于WINCE來說,也有虛擬地址和物理地址之分. 可以這么說,ARM的虛擬地址就是WINCE系統的物理地址.
            32位的OS總共有4G的虛擬地址空間,WINCE也不例外. 其中,0x00000000~0x80000000是Application Space; 0x80000000~0xffffffff是System Reserved. 系統的物理地址就在System Reserved的這段,只能在KERNEL MODE訪問. 那么,當APPLICATION和DRIVER(都是運行在USER MODE)要訪問這些在System Reserved地址段的硬件寄存器或MEMORY怎么辦呢? 只好再建立一層映射關系,在Application Space里分配一段空間,把它映射到System Reserved里的地址上,這就是VirtualAlloc/Copy和MmMapIoSpace干的事情.

            如果你的地址是這樣聲明的:
            #define RTC_COUNTER *((volatile unsigned *)0x91000000)
            那么直接讀寫就可以了,比如:
            int nRtc = RTC_COUNTER;
            RTC_COUNTER = nRtc;

            否則,可以用:
            int nRtc = READ_REGISTER_ULONG(0x91000000);
            WRITE_REGISTER_ULONG(0X91000000, nRtc);

            其實這兩種方式的本質是一樣的,都是把地址聲明成某個數據類型,然后就可以直接讀寫了.下面是READ_REGISTER_ULONG()和WRITE_REGISTER_ULONG()的定義:
            #define READ_REGISTER_ULONG(reg) (*(volatile unsigned long * const)(reg))
            #define WRITE_REGISTER_ULONG(reg, val) (*(volatile unsigned long * const)(reg)) = (val)

            ?

            posted on 2007-02-02 09:27 milkyway 閱讀(2275) 評論(2)  編輯 收藏 引用 所屬分類: wince(別人的文章技巧總結)

            評論

            # re: ce內存映射的點點滴滴 2009-02-08 16:47 a mao

            這事我見過的講述WinCE內存和Arm地址最最透徹的文章,由于初入WinCE,本來還是比較模糊的概念,現在全部理清了。

            真的感謝博主!!!  回復  更多評論   

            # re: ce內存映射的點點滴滴 2010-05-15 21:02 s

            同感@a mao
              回復  更多評論   

            導航

            統計

            公告

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

            常用鏈接

            留言簿(37)

            隨筆分類(104)

            隨筆檔案(101)

            文章分類(51)

            文章檔案(53)

            wince牛人

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲香蕉网久久综合影视| 久久香蕉一级毛片| 久久笫一福利免费导航| 久久亚洲日韩看片无码| 久久国产亚洲精品无码| 国产三级观看久久| 亚洲中文字幕久久精品无码喷水| 亚洲欧美成人综合久久久| 久久国产美女免费观看精品 | 久久精品九九亚洲精品| 久久久无码精品亚洲日韩蜜臀浪潮| 日产精品久久久久久久性色| 97久久综合精品久久久综合| 久久久久久青草大香综合精品| 亚洲色欲久久久综合网东京热| 99久久人妻无码精品系列| 久久av免费天堂小草播放| 久久综合狠狠综合久久| 一本久道久久综合狠狠躁AV| 色综合久久88色综合天天| 亚洲女久久久噜噜噜熟女| 久久精品无码专区免费| 久久国产精品一国产精品金尊| 久久综合日本熟妇| 久久精品嫩草影院| 久久国产免费观看精品3| 欧美成a人片免费看久久| 国产精品99久久久久久董美香| 国产V亚洲V天堂无码久久久| 无码精品久久一区二区三区 | 99久久免费国产精品热| 伊人久久大香线蕉综合网站| 久久精品国产99久久久香蕉| 色综合久久综精品| 国产精品视频久久| 精品国产福利久久久| 成人妇女免费播放久久久| 伊人久久大香线蕉av不变影院| 久久精品无码专区免费青青| 欧美日韩精品久久久免费观看| 久久婷婷色香五月综合激情|