由於使用usb下載的時候總是出現藍屏現象,這種幾乎無法避免,在昨天經曆幾次藍屏後,我決定尋找其他燒寫程式的方法,拋棄USB下載!
tftp是首先想到的,也是實驗成功的,寫下部落格,記下昨天的收穫。順便感謝昨天耐心指導我的大牛!
一開始,你就要先將電腦的防火牆關了。。。。
1、用jlink燒寫u-boot到nor flash中,注意,TQ出廠內建的u-boot 經測試無法使用tftp下載功能,在我的資源裡有測試成功的u-boot,也就是我昨天使用的。
2、準備好tftp server (這裡使用的也不是TQ內建的,我的資源裡也可以下載到),將壓縮包解壓後,直接開啟就可以使用了。開啟之後如所示。。。
在這裡,不需要做任何的設定,只需將它開啟,然後最小化,繼續下一步的工作。
3、將你要燒寫的程式,放到tftp server所在的目錄下,
中的ucos.bin zImage.bin uboot.bin 等檔案,就是可以燒寫到開發板的檔案,我把他們都放到了tftp server所在的目錄下。到時只要指定要下載的檔案名稱,tftp server就會將對應的檔案下載進去了。。。。
4、現在,把你的開發板用串口線串連到電腦(我使用的是USB轉串口,都行的),開啟secureCRT(也可以使用超級終端),開啟後:
這就是我使用的u-boot的命令列介面。
5、設定IP :在串口終端輸入命令 print ,可以看到一些靜態變數的資訊,
這兩個IP是需要修改的,首先,你要知道你電腦的IP(我的電腦設定的是靜態IP),然後將開發板的IP設定得跟電腦IP在同一網段
輸入命令: set ipaddr 192.168.1.6
set serverip 192.168.1.10
save
依次輸入上面的三條命令後,再print ,
ipaddr 就是開發板的IP ,serverip 就是電腦的IP ,這裡我的電腦IP是192.168.1.10 所以開發板的就設定為 192.168.1.6
6、IP設定好了之後,就可以開始燒寫程式了
用網線將你的開發板和電腦串連起來,直接連接,這時會看到開發板的網口指示燈是亮著的。表示串連成功,沒亮的話可以重啟一下開發板。
注意,每次往nand flash中燒寫程式前,都要先擦除!
串口終端輸入命令: nand erase
顯示擦除成功後,為確保環境變數沒有改變,可以再print查看一下,這裡就不了。
現在我要往開發板的nand flash 燒寫ucos.bin檔案
串口終端輸入命令 : tftp 0x30000000 ucos.bin (後面有關於命令的詳細解析)
上傳成功之後,你會發現tftp server裡面有提示發送成功,
下面就可以燒寫到nand flash裡面了
輸入命令: nand write 0x30000000 0 0x300000
燒寫成功,現在將開發板調到nand flash啟動,就可以看到ucos工作了,串口終端的資訊
OK,以上是整個燒寫的過程,現在來講下具體命令的含義:
以上輸入的命令都是u-boot的命令,可以通過輸入help查看到!
nand erase --- 就是要擦除整塊nand flash
tftp 0x30000000 ucos.bin ------就是將tftp server 所在目錄下的ucos.bin檔案,上傳到開發板的sdram ,因為開發板的sdram地址是從0x30000000開始,故輸入 0x30000000 (當然,你也可以燒到sdram的其他地址去)
nand write 0x30000000 0 0x100000 ------- 0x30000000就是剛才燒程式到sdram的地址,0是指 程式要燒寫到nand flash的0地址處,0x100000 是指燒寫的程式的大小(只要設定的比你要燒寫的程式大就可以)
其實總的來說就是:將sdram 0x30000000地址開始的 0x1000000 大小的空間內容,寫到nand flash裡面
好了,全部的過程就是這樣,如果有錯誤的地方,還望高手指點!