vivi 1 移植

 vivi的移植

vivi的結構:

 

COPYING:GPL協議聲明,Gnu General Public License,這裏是version 2。如果要具體瞭解一下GPL協議,那麼可以仔細讀一下該文件。

CVS: Control version system,一種版本控制的工具。使用cvs,可以很方便的進行版本的控制,節約大量的時間。不過該部分並不屬於vivi核心軟件架構。

Documentation:幫助文檔。關於vivi的簡單介紹,如何進行編譯,如何booting ARM都有簡要的描述。拿到源代碼,首先應該看該文件夾,瞭解一下,它是什麼,可以如何進行操作。不過,裏面有些幫助文檔是韓語,看不懂。

Makefile Makefile.newSDK Rules.make:工程管理。Linux下用make來進行工程管理,對Makefile應該不會陌生。讀源代碼,首先了解Makefile的內容,會很有幫助。

arch: 處理器架構相關的核心代碼。這是vivi bootloader stage1的實現部分。如果要支持其他架構,也需要放到這個文件夾下面。

drivers: 通用的驅動程序。

include: 包含的頭文件

init: 初始化的核心代碼。這是vivi bootloader stage2的實現部分。

lib: 庫文件

scripts: Shell腳本。vivi提供了一種交互式配置機制,實現部分是利用shell腳本來完成的。這也是一個重要的研究內容。

test: 測試文件

util: 小工具。現在包含兩個文件,ecc.c, imagewrite.c。

 

第一步: 改make的編譯環境參數

LINUX_INCLUDE_DIR -- 更改爲交叉編譯器的include文件夾
CROSS_COMPILE     -- 交叉編譯器的可執行文件的路徑
ARM_GCC_LIBS      -- 交叉編譯器的lib庫文件的路徑
參考改法:
LINUX_INCLUDE_DIR = /usr/local/arm/2.95.3/include
CROSS_COMPILE = /usr/local/arm/2.95.3/bin/arm-linux-
ARM_GCC_LIBS = /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3

試過用gcc 3.4.1版本去編譯vivi 出問題, 後來改成 gcc 2.95.3 通過, 並生成vivi燒錄文件,why?

解答:

第二步:  修改arch/s3c2410/smdk.c    主要是修改nand flash分區信息。

問題: bon分區和mtd分區, 配置smdk.c 只是mtd分區,  下面是bon分區的信息,在vivi啓動後用bon命令分區,我的開發板上配置是 0-192K(192K);192K-1216K(1M) ; 1216K-64M  (62.8M).

關於bon 和mtd的區別:

 

以下是個人對MTD和bon分區的理解(如有錯誤請指正,本人也在不斷學習中^_^): 

  
1.MTD是對內存設備支持的統一接口,尤其是對flash(nand flash ,nor flash),提供FLASH設備到字符設備驅動和塊設備驅動的轉換。MTD是比較通用的,一般的嵌入式系統都會用到MTD技術。 

  
2.bonfs是mizi公司提供的nand flash塊設備驅動,它應用範圍相對而言比較狹隘一些,因爲它只對nand flash提供支持,在vivi bootloader裏與bon分區命令相配合。 

  
3.MTD分區和bon分區可以共存,在bon命令裏有個m選項,若帶m則表示bon分區可以和mtd分區共存,否則則不然(個人還沒用過這個參數,只是知道而已)。 

bon是mizi自己搞的,和MTD是同一層的,支持它們自己的bonfs,使用前需要在vivi下用bon命令進行分區,要麼分成bon分區,要麼分成mtd分區,具體分區命令解釋請見http://www.hyesco.com/forum/dispbbs.asp?BoardID=12&ID=366,不能直接將/dev/mtdblock/3作爲/dev/bon/3


 然後燒寫vivi到開發板.  基本上vivi的移植不需要改動很多東西.

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章