二、先在SD卡上启动U-boot,再烧写新的U-boot进Nandflash
1. 制作SD卡
先準備一張2G的SD卡(不能用8G的,2G的卡和8G的卡協議不一樣),和燒寫SD卡的工具write_sd以及需要燒寫到SD卡中的u-boot-movi.bin。將SD卡格式化后連接到Ubuntu虛擬機中,注意在SD卡需要插入到讀卡器中,不能用電腦自帶的SD卡槽,否則在Ubuntu下認不到。先執行ls /dev/sdb*,能夠看見有一個/dev/sdb文件,說明Ubuntu認到SD卡了。如下圖:
執行命令:sudo ./write_sd /dev/sdb u-boot-movi.bin
將u-boot寫入SD卡中。將SD卡插入6410開發板中,將撥碼開關設置為SD卡啟動,連接串口運行minicom或其他串口終端(先保證串口配置是正確的),啟動板子后串口正常打印則說明SD卡上成功燒寫了U-boot。需要說明的是寫入SD卡的u-boot-movi.bin支持DNW但不支持TFTP,而且write_sd這個工具制作出來似乎就是為了燒寫u-boot-movi.bin這一個文件,不能寫入其他的文件?,因此我是借助u-boot-movi.bin燒寫自己編譯出的U-boot。
2. 使用DNW下載U-boot
先準備好要下載進Nandflash的U-boot? “u-boot-nand.bin”
1)在板子終端中輸入:dnw 50008000
2)在虛擬機中輸入:sudo dnw?u-boot-nand.bin
成功后在6410內存地址為50008000的地方存放的就是u-boot-nand.bin,此時要將該文件寫入Nandflash的0地址中。
3)在板子終端輸入:nand erase 0
每次要往Nandflash中寫入新數據時一定要保證該區域是擦除過的。nand erase后面可以跟兩個參數,第一個是要擦除的首地址,第二個參數是要擦除的大小,如果輸入nand erase 0則是整片擦除。
4)在板子終端輸入:nand write 50008000 0 32000
第4步的意思是將內存地址為50008000的數據寫入Nandflash中,寫入長度為0x32000個字節。32000這個數是根據u-boot-nand.bin文件大小而定的,我的u-boot-nand.bin不到200k,因此寫入200k確保U-boot完全寫入。
5)將板子設置為Nandflash啟動,重啟后看打印信息,正常輸出表明U-boot寫入Nandflash成功并且能從Nandflash啟動。
附:
write_sd 下載鏈接:https://files-cdn.cnblogs.com/files/Suzkfly/write_sd.zip
u-boot-movi.bin 下載鏈接:https://files-cdn.cnblogs.com/files/Suzkfly/u-boot-movi.zip
?
轉載于:https://www.cnblogs.com/Suzkfly/p/10303143.html
總結
以上是生活随笔為你收集整理的二、先在SD卡上启动U-boot,再烧写新的U-boot进Nandflash的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 反序列化 还是记一下吧
- 下一篇: centos7输入法,非root用户无法