LPC1788的外部存儲控制器(Emc),可以對動態存儲器和靜態存儲器的支持,可以接SDRAN、NAND_FLASH、NOR_FLASH等多種存儲器!有了這些存儲器的支持,就有更大的空間存儲我們的代碼和數據,把Uboot移植到開發板上,有了這個強大的程序支持,就可以在上面跑UCLinux操作系統,還可以吧程序放到NAND_FLASH里面運行。好處是大大的有啊!好了廢話不多說咱們開始。 首先要做的是安裝Linux系統,我裝了個虛擬機里面跑的是CentOS。具體如果安裝就不多說了網上有很多的教程。這里說交叉編譯器的安裝,我用的是4.5.1的版本,這個東西是開發ARM過程中最重要的東西了。具體安裝步驟如下。 在根目錄下創建“/disk/m3”的路徑,將交叉編譯器放到這個路徑。以后的開發就在這個路徑里進行。現在用“tar”命令解壓編譯器,如上圖。這個是我自己的習慣。 解壓完后將WB_ARM拷貝到“/opt/”路徑下,如上圖。 編譯器就在“/opt/WB_ARM/toolschain/4.5.1/bin/”路徑下。用“ls”命令可以查看到如上圖。 用vim編輯器,把交叉編譯器的路徑添加到家目錄下的“.bash_profile”文件中。使用vim的方法如上圖。 上圖就是將路徑添加后的結果,注意不要寫錯了。完成后保存退出。然后注銷CentOS,按鍵盤上的“Ctrl+Alt+字符刪除鍵(←)”,就可以注銷。 注銷完成后在終端里輸入arm-然后按鍵盤上的“Tab”鍵兩次,就會出現如上圖的交叉編譯器。 接下來就可以編譯uboot。 將uboot拷貝到我們創建的路徑下并解壓,因為這個源碼包是zip包,不是tar包,所以不能用tar命令解壓,要用unzip命令解壓。如上圖。 解壓后進入,里面就是uboot的源碼文件。 在“board/nxp/”路徑下就有1788的開發板如上圖,但是這個開發不是我們自己的開發板,不過有1788的就好。查看了官方的ea-lpc1788的電路圖,用的是串口0,旺寶的1788開發板也是用的串口0,按道理說,編譯后下載到板子串口0會有信息輸出。接下來就編譯試試看。 在uboot的頂層目錄,先用make clean清除一下,再用make ea-lpc1788_config將uboot配置成1788的uboot,最好make編譯,如上圖。 不編不知道一編嚇一跳,還有錯誤,這可如何是好啊!他說,找不到‘raise’這個符號,思來想去,符號應該就是一個函數,是不是那個地方定義了后,沒有寫這個函數,結果我搜索了一遍什么都沒有啊,那感覺就像在孫悟空身上拔了一根毫毛,興奮的一吹什么都沒有啊。最后想了想,居然沒有這個符號,那我就給它一個這樣的符號。 找了一個命令的路徑,用vim打開里面有一個main.c如上圖。 在里面添加了一個raise的函數保存退出,如上圖。 繼續編譯。 奇跡出現了,呵呵!!出來了一個u-boot.bin這個就是我們要用到的。如上圖。 把u-boot.bin下載到lpc1788的0地址處,連接開發板的USB轉串口到電腦。打開centos的minicom。打開前先將USB轉串口轉接到虛擬機的centos里,將minicom設置為/dev/ttyUSB0,8位數據位,沒有校驗位,一位停止位。具體設置的詳細過程網上有很多。連接后復位開發板,就會有信息打印出來,這說明我們的uboot成功的運行起來了,由于旺寶的lpc1788開發板和官方的不一樣,所以NAND就出現問題了!如上圖。 現在在uboot里面輸入help就會顯示出uboot的命令,到了這一步感覺很是高興啊!不過要成功引導加載UCLinux還有很長的一段路要走啊!這次先寫到這里吧!希望能夠堅持到那一步。帖子會不定期的更新,并加上源代碼!希望大家多多支持,給我前進的動力! 操作系統,CentOS 交叉編譯器版本,4.5.1 開發平臺,旺寶 悍馬1788開發板。 |