Chinaunix首页 | 论坛 | 博客
  • 博客访问: 44606
  • 博文数量: 5
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 227
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-19 15:17
文章分类

全部博文(5)

文章存档

2013年(5)

我的朋友

分类: LINUX

2013-05-18 13:35:13

一、修改ID号:

1.确定ID

在开发板上电进入UbootSuperboot情况下,将USB线插入主机U口上,并用dmesg查看USB设备的连接情况,如果有新的设备接入,表明开发板已经连接上,此时可用lsusb命令查看:

liwei@liwei:~$ lsusb

Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 003 Device 002: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 002 Device 003: ID 046d:c315 Logitech, Inc. Classic New Touch Keyboard

Bus 002 Device 002: ID 093a:2510 Pixart Imaging, Inc. Hama Optical Mouse

Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 001 Device 044: ID 5345:1234 Owon PDS6062T Oscilloscope

Bus 001 Device 042: ID 18e3:9103 Fitipower Integrated Technology Inc

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

liwei@liwei:~$

我们会发现如下一行:

Bus 001 Device 044: ID 5345:1234 Owon PDS6062T Oscilloscope

表明主机已经识别此设备,但我们关心的只是ID 5345:1234这一句,其中包含了我们所需要的VENDOR_ID0x5345PRODUCT_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程序了。

阅读(2506) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~