dnw應用程式以及驅動程式編譯說明 一、修改ID號:1.確定ID號在開發板上電進入Uboot或Superboot情況下,將USB線插入主機U口上,並用dmesg查看USB裝置的串連情況,如果有新的裝置接入,表明開發板已經串連上,此時可用lsusb命令查看:liwei@liwei:~$ lsusbBus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hubBus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hubBus 003 Device 002: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) ICBus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hubBus 002 Device 003: ID 046d:c315 Logitech, Inc. Classic New Touch KeyboardBus 002 Device 002: ID 093a:2510 Pixart Imaging, Inc. Hama Optical MouseBus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hubBus 001 Device 044: ID 5345:1234 Owon PDS6062T OscilloscopeBus 001 Device 042: ID 18e3:9103 Fitipower Integrated Technology IncBus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubliwei@liwei:~$我們會發現如下一行:Bus 001 Device 044: ID 5345:1234 Owon PDS6062T Oscilloscope表明主機已經識別此裝置,但我們關心的只是ID 5345:1234這一句,其中包含了我們所需要的VENDOR_ID:0x5345和PRODUCT_ID :0x1234.這正是我們在驅動中所要修改的。2.修改ID號在驅動secbulk.c中,修改上述ID如下:#define EZ6410_PRODUCT_ID static struct usb_device_id secbulk_table[]= {{ USB_DEVICE(0x5345, 0x1234)},{ }};3.安裝usb-dev庫: ~# sudo apt-get install libusb-dev 二、添加CheckSum功能在編譯dnw.c後,運行時會出現CheckSum Error,那是因為我們的發送函數中沒有完成校正過程。我們通過在寫如函數之前加入如下內容來完成此功能://////////////////////// ADD BY WEI /////////////////////// //添加CheckSum功能 file_buffer[file_stat.st_size+8] = sum; file_buffer[file_stat.st_size+9] = sum>>8; //////////////////////// END OF ADD ///////////////////////至此,一個具有基本傳輸功能的dnw程式就可以使用了。 NOTE:在“最終程式”目錄中為最終的代碼,只要執行代碼中相應的make.sh檔案即可完成編譯:~# ./make.sh首先,需要使用:~# sudo insmod secbulk來插入我們的驅動程式,其次,還要在系統中使用如下命令建立用到的裝置節點:~# sudo mknod /dev/secbulk c 102 0然後,就可以啟動我們的dnw程式了。