Tiny4412 在linux下的dnw使用

2021-07-10 02:17:26 字數 2662 閱讀 9218

將tiny4412的usb線、串列埠線與電腦連線,在win7+虛擬機器ubuntu的環境下,在win7環境中用驅動精靈裝上串列埠的驅動,在虛擬機器中應該就能檢測到串列埠,我這裡採用的是usb轉串列埠驅動,在ubuntu中用lsusb命令可以查詢到是否檢測到串列埠,如下圖:

解壓縮,之後會看到dnw_linux資料夾,進入該資料夾

$ cd dnw_linux

$ ls

$ /dnw   /secbulk

進入secbulk資料夾,輸入編譯命令,編譯成模組。(我自己修改了makefile,因此大家只需make就可編譯,make clean 就可清除編譯。修改後的makefile如下:

obj-m := secbulk.o

kdir := /lib/modules/`uname -r`/build

pwd := $(shell pwd)

default:

$(make) -c $(kdir) subdirs=$(pwd) modules

clean:

$(make) -c $(kdir) subdirs=$(pwd) clean

rm -rf *.order *.symvers

static

struct usb_device_id secbulk_table= ,

};

至此,**修改完畢!

$ make

之後在資料夾中會有secbulk.ko模組檔案,如下圖所示:

載入該模組到核心(注意:需要root許可權)

$ sudo insmod secbulk.ko

載入後用dmesg命令可以看到模組已經成功載入

[  238.007970] secbulk:secbulk loaded

[  238.009101] usbcore: registered new inte***ce driver secbulk

常見問題: can not open /dev/secbulk0,  則表示該模組沒有載入成功或者dnw沒有root許可權

通過lsmod可以看看載入成功沒。

$ lsmod | grep secbulk

進入dnw資料夾

$ cd dnw

$ gcc –o dnw dnw.c

可能會有一些警告,不過可以忽略。在dnw下生成dnw工具

將dnw複製到/bin目錄下,這樣就可以在任意檔案目錄下呼叫dnw命令。

溫馨技巧: 因為要用dnw的話,要確保secbulk驅動載入到核心,為了避免每次都要手動載入,因此修改/etc/init.d/rc.local檔案(root許可權),在後面加上下面一句:

insmod /….你的secbulk.ko檔案目錄/secbulk.ko

儲存退出完事

將secbulk.c中的

#define bulkout_buffer_size32

改為#define bulkout_buffer_size 512

新問題又出現了:在writing data…期間,寫到10%的時候就出現failed!,我試好多次都是這個問題。現在正在解決中。。。

3.3

go 0x50008000

一種解決方法是:

有時候由於核心的公升級,執行時會提醒can not open/dev/secbulk0

的錯誤,此時需要重新到secbulk目錄執行

$make-c /lib/modules/`uname -r`/build m=`pwd` modules,然後載入模組$sudo insmod./secbulk.ko即可!

經過dmesg檢視和許可權檢查,發現問題都不在這!根據提示資訊,是否該檢查一下是否有/dev/secbulk0 這個裝置!!??

通過檢視/dev/ 下的裝置,發現我的電腦secbulk的從裝置號是1。如下圖

開啟dnw.c原始碼 看見如圖

修改從裝置號為1後如下,

經過這樣的修改,然後重新編譯dnw , 執行結果如下:

呼叫dnw時只能在當前目錄使用./dnw執行,對此情況,將dnw新增到/usr/local/sbin中,這樣可以在

任何目錄,使用  sudo dnw filename來呼叫。

tiny4412 從u boot開始(一)

準備業餘時間把armv7 contex a9 的exynos4412從頭搞一下。之前學了一些簡單的彙編指令,現在開始在uboot啟動後進行裸板測試。原始碼 uboot tiny4412 20130729.tgz 先關閉mmu diff git a board samsung tiny4412 con...

tiny4412看門狗的禁用

看門狗所在位址為0x10060000 看門狗暫存器的最後一位是禁止位,當最後一位為0的時候將禁用看門狗 在arm架構下,資料從記憶體到cpu之間的移動只能通過ldr str指令來完成.而mov只能在暫存器之間移動資料,或者把立即數移動到暫存器中,並且資料的長度不能超過8位 define pwtcon...

基於tiny4412的u boot移植(一)

開發環境 win7 64位 vmware11 ubuntu14.04 64位 開發板 tiny4412adk s700 4gb emmc 1g ddr3 工具鏈 友善之臂提供的 arm linux gcc version 4.5.1 要移植的u boot版本 u boot 2015 10 本博文簡要...