sdram: 32mbytes ncs1
flash: 8mbytes ncs0
涉及到的檔案有四個:
common.h
flash.c
flash.h
」./board/at91rm9200dk/config.mk」
以下簡單的說說。
一、首先讀讀uboot自帶的readme檔案,了解了乙個大概。
二、看看common.h,這個檔案定義了一些基本的東西,幷包含了一些必要的標頭檔案。再看看flash.h,這個檔案裡面定義了flash_info_t為乙個struct。包含了flash的一些屬性定義。並且定義了所有的flash的屬性,其中,amd的有:amd_id_lv320b,定義為「#define amd_id_lv320b 0x22f922f9」。
三、對於「./borad/at91rm9200dk/flash.c」的修改,有以下的方面:「void flash_identification(flash_info_t *info)」這個函式的目的是確認flash的型號。注意的是,這個函式裡面有一些巨集定義,直接讀寫了flash。並獲得id號。
四、修改:」./board/at91rm9200dk/config.mk」為text_base=0x21f80000 為text_base=0x21f00000 (當然,你應該根據自己的板子來修改,和一級boot的定義的一致即可)。
五、再修改」./include/configs/at91rm9200dk.h」為修改flash和sdram的大小。
六、另外乙個要修改的檔案是:./borad/at91rm9200dk/flash.c。這個檔案修改的部分比較的多。
1. 首先是orgdef的定義,加上目前的flash。
2. 接下來,修改」#define flash_bank_size 0x200000」為自己flash的容量
3. 在修改函式flash_identification(flash_info_t * info)裡面的列印資訊,這部分將在u-boot啟動的時候顯示。
4. 然後修改函式flash_init(void)裡面對一些變數的賦值。
5. 最後修改的是函式flash_print_info(flash_info_t * info)裡面實際列印的函式資訊。
6. 還有乙個函式需要修改,就是:「flash_erase」,這個函式要檢測先前知道的flash型別是否匹配,否則,直接就返回了。把這裡給注釋掉。
七、接下來看看sdram的修改。這個裡面對於「size」的定義都是基於位元組計算的。只要改」./include/configs/at91rm9200dk.h」裡面的「#define phys_sdram_size 0x200000」就可以了。注意,size是以位元組為單位的。
八、還有乙個地方要注意,就是按照目前的設定,一級boot把u_boot載入到了sdram的空間為:21f00000 -> 21f16b10,這恰好是sdram的高階部分。另外,bss為21f1ae34。
九、編譯後,可以寫入flash了。
1. 壓縮這個u-boot.bin「gzip –c u-boot.bin > u-boot.gz」壓縮後的檔案大小為:43kbytes
2. 接著把boot.bin和u-boot.gz燒到flash裡面去。boot.bin大約11kbytes,在flash的0x1000 0000 ~ 0x1000 3fff
簡單說說U boot的修改
涉及到的檔案有四個 common.h flash.c flash.h board at91rm9200dk config.mk 以下簡單的說說。一 首先讀讀uboot自帶的readme檔案,了解了乙個大概。二 看看common.h,這個檔案定義了一些基本的東西,幷包含了一些必要的標頭檔案。再看看fl...
簡單說說MPEG
mpeg 1 mpeg 2和mpeg 4。mpeg 3 原本目標是為高畫質晰度電視 hdtv 設計,隨後發現mpeg 2已足夠hdtv應用,故mpeg 3的研發便中止。音訊物件 video audio objects 的編碼 3d內容 低位元率編碼 low bitrate encoding 和數字版...
簡單說說委託
在c 中,大多時候,方法的引數是資料,但有時我們會想將 方法 作為引數,這時,我們就可以用委託。委託一般情況下會和事件一起使用,事件說白了也是特殊的乙個方法。先看個例子吧 有很多方法,比如求平方,求階乘 想讓使用者輸入值,求該值的平方,階乘 using system using system.col...