歡迎您光臨本站 註冊首頁

用USB方式燒寫ARM板

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  

一直在尋找GNU/Linux的工作、生活方式,Linux下的嵌入式開發也一樣

用vivi燒寫root文件系統時,如果通過minicom的xmodem串口傳輸方式,16M要用大約3個半鍾
後來為了提高效率,找到了這個USB方式燒寫軟體DNW,16M文件系統的燒寫只需1分多鐘

下載dnw_linux.rar


解壓后的編譯過程如下

$ cd dnw_linux/
$ ls
dnw  secbulk
$ cd dnw/
$ ls
dnw.c


編譯dnw燒寫程序

$ gcc dnw.c -o dnw
$ ls
dnw  dnw.c
$ sudo cp dnw /usr/local/bin/
$ cd ..
$ cd secbulk/
$ ls
Makefile  secbulk.c

編譯dnw相應的內核模塊

$ make -C /lib/modules/`uname -r`/build M=`pwd` modules
make: Entering directory `/usr/src/linux-headers-2.6.26-2-686'
  CC [M]  /home/c-aries/下載/dnw_linux/secbulk/secbulk.o
/home/c-aries/下載/dnw_linux/secbulk/secbulk.c: In function ‘secbulk_write’:
/home/c-aries/下載/dnw_linux/secbulk/secbulk.c:58: warning: comparison of distinct pointer types lacks a cast
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/c-aries/下載/dnw_linux/secbulk/secbulk.mod.o
  LD [M]  /home/c-aries/下載/dnw_linux/secbulk/secbulk.ko
make: Leaving directory `/usr/src/linux-headers-2.6.26-2-686'
$

上一步如編譯出錯,可能是相應的內核頭文件尚未安裝
Debian系統下,可運行如下命令解決
$ uname -r
2.6.26-2-686
$ sudo apt-get install linux-headers-2.6.26-2-686

註冊內核模塊

$ sudo insmod secbulk.ko
$ dmesg | tail -1
[33298.895244] usbcore: registered new interface driver secbulk
$

dmesg輸出說明secbulk模塊已安裝成功(重啟系統會失效)

使用dnw

在minicom中輸入燒寫root文件系統的命令

vivi > load flash root u                                               
USB host is connected. Waiting a download.

提示等待usb方式燒寫

打開另一個虛擬終端,燒入當前目錄中的rootfs.yaffs

$ sudo dnw rootfs.yaffs
file name : rootfs.yaffs
file size : 4515456 bytes
Writing data...
100% 4515466 bytes     OK
$

另一個終端顯示

vivi > load flash root u                                                 
USB host is connected. Waiting a download.                                     
                                                                               
Now, Downloading [ADDRESS:30000000h,TOTAL:4515466]                             
RECEIVED FILE SIZE: 4515466 (489KB/S, 9S)                                      
Downloaded file at 0x30000000, size = 4515456 bytes                            
Found block size = 0x00450000                                                  
Erasing...    ... done                                                         
Writing...    ... done                                                         
Written 4515456 bytes                                                          
vivi >

root文件系統,usb方式燒寫成功


嵌入式


[火星人 ] 用USB方式燒寫ARM板已經有781次圍觀

http://coctec.com/docs/linux/show-post-66113.html