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

            最初想法的誕生地

             

            OEMAddressTable,config.bib詳解

            OEMAddressTable只存在于X86和ARM架構的平臺下,用來定義從4GB的虛擬地址到物理512MB存儲空間的靜態映射關系,它實質是一個結構變量。
            typedef struct
            {
            ULONG ulVirtualAddress;
            ULONG ulPhysicalAddress;
            ULONG ulSizeInMegs;
            } AddressTableStruct;

            #define MEG(A) (((A - 1)>>20) + 1)

            const AddressTableStruct OEMAddressTable[] =
            {
            { SDRAM_VIRTUAL_MEMORY, //虛擬地址
            PHYSICAL_ADDR_SDRAM_MAIN, //物理地址
            MEG(SDRAM_MAIN_BLOCK_SIZE) //這段空間的大小,以M計
            },
            ………………………
            {
            0,
            0,
            0
            }
            };
            如例子所示,OEMAddressTable為一個結構數組,每項的第一個成員為虛擬地址,第二個成員為對應的物理地址,最后一個成員為該段空間的大小。這個數組的最后一項必須全部為0,以示整個數組的結束。內核啟動時會讀取這個數組的內容以初始化MMU頁表。啟用MMU以后OS內核段程序(如ISR)可以用這里的虛擬地址來訪問設備。當然,OEMAddressTable中所用到的每個物理地址及虛擬地址都需要在頭文件中定義。
                 

            比如X86的OEMAddressTable (platform\common\src\x86\common\startup\startup.asm):

            _OEMAddressTable:

                    dd  80000000h,     0,      04000000h  //格式為:虛擬地址,物理地址,大小

            注意(1)這里的大小,X86下為4MB的倍數,ARM下為1MB的倍數。
                     (2)這里的映射是靜態的cached,虛擬地址范圍是0x8000000-0x9FFFFFFF,系統會自動添加uncached段的映射,從0xA000000-0xBFFFFFFF.

                   CONFIG.BIB文件分兩個部分,我們且稱之為段,MEMORY段和CONFIG段。MEMORY段定義虛擬內存的分片方法,CONFIG段定義它的一些屬性。以下是一個CONFIG.BIB文件MEMORY段的例子:
                 來自platform\CEPC\files\config.bib:

             

            MEMORY

            ;   Name     Start     Size      Type

            ;   -------  --------  --------  ----

            ; 64 MB of RAM (note: AUTOSIZE will adjust boundary)

                NK       80220000  009E0000  RAMIMAGE     //系統鏡像

                RAM      80C00000  03400000  RAM                // 應用程序與文件系統區域

                DMA      80100000  00030000  RESERVED   ; Native DMA reserved.

                BOOTARGS 801FFF00  00000100  RESERVED   ; Boot arguments

                EDBG_DMA 80200000  00020000  RESERVED   ; EDBG DMA buffer





            posted on 2007-04-19 11:24 milkyway 閱讀(3992) 評論(4)  編輯 收藏 引用 所屬分類: Wince學習小結

            評論

            # re: OEMAddressTable,config.bib詳解 2007-05-12 15:04 楊銳

            請問一下樓主:
            Wince中的中斷向量表保存在什么位置呢?由于使能了MMU,這個位置是物理地址,還是虛擬地址呢?
            我有個過程沒有搞清楚,但外部中斷發生時,ARM的PC指針應該自動跳轉到0x0,或者0xffff0000這個地址,但當使能了MMU以后,PC會跳轉到物理地址的0x0呢?還是虛擬地址0x0?
            本來我認為是要跳轉到虛擬地址的0x0,通過MMU映射以后,可以把它映射到物理地址的SDRAM空間,這樣訪問速度就會快很多,但是在OEMAddressTable中,看不到把虛擬地址0x0映射的物理地址。
            通過看config.bib,發現內核是從80001000這個虛擬地址開始,在OEMAddressTable將他映射到了SDRAM的物理地址空間。
            我上述的理解肯定有問題,請您給我解釋一下,好嗎?謝謝!!  回復  更多評論   

            # re: OEMAddressTable,config.bib詳解 2007-05-13 18:23 milkyway

            在wince啟動后,MMU就被使能了,所以這時你訪問的只能是虛擬地址,不是物理地址。
            中斷向量表的位置和處理器有關,ARM要求中斷向量表放置從0地址開始。你說的中斷跳轉地址實際是物理地址的0x,但是由于啟用了MMU,所以CPU只能認虛擬地址。至于這個虛實映射的對應關系就在OEMAddressTable中。你看對應物理地址是0x的虛擬地址是多少。
            你說的內核從80001000這個虛擬地址開始,這個是可以在config.bib中設置的。實際的物理地址參考OEMAddressTable。
            希望對你有點作用。
              回復  更多評論   

            # re: OEMAddressTable,config.bib詳解 2007-05-18 20:15 楊銳

            謝謝你啊!!  回復  更多評論   

            # re: OEMAddressTable,config.bib詳解 2008-01-15 09:59 abby

            請教一下摟主:
            在使用XIPKERNEL時,之前我定義CONFIG。BIB為
            XIPKERNEL 80040000 001C0000 RAMIMAGE
            NK 80200000 01C00000 RAMIMAGE
            CHAIN $(CHAIN_ADDRESS) 00004000 RESERVED

            RESERVE 8df00000 00080000
            RAM 8c200000 03C00000 RAM
            現在我想改變一下RAM的起始地址,在各個相關的文件中都把RAM的起始地址改為了94200000,映射表也為94000000 300000000 64

            但我發現一個問題就是,從各種實驗結果看好像是系統找不到94000000這個虛擬地址對30000000的映射,系統起不來。我想問一下,在使用XIP功能時對于RAM 的起始位置有什么規定嗎?還是有其他一些說法。我用的是三星的2443,ARM核。
            對這個的理解我還有些不是特別透徹,請您給我講解一下,好嗎? 謝謝!  回復  更多評論   

            導航

            統計

            公告

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

            常用鏈接

            留言簿(37)

            隨筆分類(104)

            隨筆檔案(101)

            文章分類(51)

            文章檔案(53)

            wince牛人

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            久久精品综合一区二区三区| 久久国产精品-久久精品| 99久久这里只有精品| 国产成人无码精品久久久久免费 | 2020最新久久久视精品爱| 久久精品国产第一区二区| 久久影院午夜理论片无码| 久久不见久久见免费视频7| 久久亚洲国产午夜精品理论片| 久久人人爽人人爽人人片AV麻豆 | 99精品国产在热久久无毒不卡| 国产成人久久激情91| 久久综合久久鬼色| 看久久久久久a级毛片| 久久精品国产2020| 色综合久久最新中文字幕| 亚洲人AV永久一区二区三区久久| 国产精品国色综合久久| 久久久久久久精品成人热色戒| 丰满少妇高潮惨叫久久久| 久久99精品免费一区二区| 狠狠色综合网站久久久久久久| 久久久久久久波多野结衣高潮 | 亚洲精品第一综合99久久 | 亚洲狠狠婷婷综合久久蜜芽 | 模特私拍国产精品久久| 久久免费高清视频| 国产亚洲美女精品久久久2020| 一本色道久久综合狠狠躁| 久久久精品视频免费观看| 国产亚洲精品自在久久| 久久亚洲私人国产精品vA| 无码任你躁久久久久久老妇App| 中文字幕热久久久久久久| 伊人久久亚洲综合影院| 久久99精品久久久久久水蜜桃| 婷婷综合久久狠狠色99h| 国产精品美女久久久| 久久91精品久久91综合| 国产成人综合久久综合| 色综合久久精品中文字幕首页|