Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1834811
  • 博文数量: 286
  • 博客积分: 3713
  • 博客等级: 少校
  • 技术积分: 2275
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-11 09:47
个人简介

http://blog.chinaunix.net/uid/16979052.html

文章分类

全部博文(286)

文章存档

2018年(1)

2017年(16)

2016年(9)

2015年(17)

2014年(15)

2013年(112)

2012年(116)

分类: LINUX

2013-05-23 21:56:02

一、修改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程序了。

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