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