linux下不通過JLink直接燒寫 | linux下的dnw (轉)

摘自http://blog.csdn.net/zsdt345a780rfajwet/article/details/7925217

方法是:

1. 下載Linux下DNW的PC端USB驅動和寫入工具

dnw_linux.zip (這是我測試使用OK的一個,我把它作爲資源上傳的,0資源分下載,與大家分享~ )

下載後把後綴名改成.tgz(改不改無所謂,解壓就行)


2. 編譯PC端USB驅動和寫入工具
2.1 解壓縮
$ tar xzvf /path/to/dnw_linux.tgz
dnw_linux/
dnw_linux/secbulk/
dnw_linux/secbulk/Makefile
dnw_linux/secbulk/secbulk.c
dnw_linux/dnw/
dnw_linux/dnw/dnw.c
其中secbulk.c是PC端USB驅動, dnw.c是寫入工具

2.2 編譯並加載secbulk.c內核模塊
$cd secbulk
$make -C /lib/modules/`uname -r`/build M=`pwd` modules

編譯成功後在當前目錄下可以看到secbulk.ko
alex@alex-desktop:~/project3/qq2440/dnw_linux/dnw_linux/secbulk$ ls
Makefile
 Module.symvers  secbulk.c  secbulk.ko  secbulk.mod.c  secbulk.mod.o  secbulk.o

用insmod命令加載模塊,這需要root權限
$sudo insmod ./secbulk.ko

加載後用dmesg命令可以看到模塊已經成功加載
[  238.007970] secbulk:secbulk loaded
[  238.009101] usbcore: registered new interface driver secbulk

2.3 編譯dnw寫入工具
$cd dnw
$gcc -o dnw dnw.c
編譯成功後生成可執行檔dnw

==========================
使用dmesg查看是否成功加載驅動很重要,如果沒有這步,會提示說"Can not open /dev/secbulk0 "


3 使用DNW下載
3.1 啓動開發板,進入Supervivi,並將開發板和PC用USB電纜連接,此時用dmesg命令可以看到secbulk驅動加載:
[  283.677772] usb 1-1: new full speed USB device using uhci_hcd and address 2
[  284.084835] usb 1-1: configuration #1 chosen from 1 choice
[  284.140430] secbulk:secbulk probing...
[  284.140482] secbulk:bulk out endpoint found!

3.2 此時可以用supervivi進行USB下載,vivi上步驟請參考用戶手冊,當出現“USB host is connected. Waiting a download.”時,在PC端Linux上用dnw工具寫入要下載的文件
$sudo ./dnw /path/to/what/you/want/download
#此處使用命令寫入,無界面

寫入完成後提示成功
100%    xxxxxxx bytes    OK


$sudo insmod ./secbulk.ko 爲加載模塊進內核
開機的時候不會自動加載,這樣每次都要先加載纔可以使用,此時將其加入開機腳本,
使其得到自動加載,編輯/etc/init.d/rc.local 在最後加上 insmod /所在路徑/secbulk.ko。


#調用dnw時只能在當前目錄使用./dnw執行,對此情況,將dnw添加到/usr/local/sbin中,這樣可以在
任何目錄,使用  sudo dnw filename來調用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章