USB系列 2 DNW原始碼

2021-09-14 03:05:19 字數 2162 閱讀 7021

對dnw驅動原始碼進行簡要分析。

#include #include #include #include #include #include #include #define secbulk_major    102

#define secbulk_minor 0

#define driver_name "secbulk"

#define bulkout_buffer_size 512

struct secbulk_dev

;static struct usb_class_driver secbulk_class;

static struct usb_device_id secbulk_table= , //c

};static struct usb_driver secbulk_driver;

static void secbulk_disconnect(struct usb_inte***ce *inte***ce)

static ssize_t secbulk_read(struct file *file, char __user *buf, size_t len, loff_t *loff)

static ssize_t secbulk_write(struct file *file, const char __user *buf, size_t len, loff_t *loff)

ret = usb_bulk_msg(dev->udev, usb_sndbulkpipe(dev->udev, dev->bulk_out_endpointaddr), //構造批量傳輸資訊,傳輸給usbcore處理

dev->bulkout_buffer,

to_write,

&actual_length,

3*hz);

if(ret || actual_length!=to_write)

len -= to_write;

total_writed += to_write;

}return total_writed;

}static int secbulk_open(struct inode *node, struct file *file)

static int secbulk_release(struct inode *node, struct file *file)

static struct file_operations secbulk_fops = ;

static struct usb_class_driver secbulk_class = ;

static int secbulk_probe(struct usb_inte***ce *inte***ce, const struct usb_device_id *id)

iface_desc = inte***ce->cur_altsetting;

for(i=0; i < iface_desc->desc.bnumendpoints; i++) //從usbcore傳入的藉口中得到得到輸出端點

}if(!(dev->bulk_out_endpointaddr))

ret = usb_register_dev(inte***ce, &secbulk_class); //將usb驅動註冊成字元裝置驅動提供給使用者程式

if(ret)

dev->udev = usb_get_dev(inte***ce_to_usbdev(inte***ce));

usb_set_intfdata(inte***ce, dev);

mutex_init(&dev->io_mutex);

return 0;

error:

if(!dev)

kfree(dev);

return ret;

}static struct usb_driver secbulk_driver= ;

static int __init secbulk_init(void)

return 0;

}static void __exit secbulk_exit(void)

module_init(secbulk_init);

module_exit(secbulk_exit);

module_license("gpl");

Eureka原始碼系列 2 原始碼啟動入口

本文介紹如何搭建eureka原始碼的debug環境,網上有一些部落格抄來抄去,抄錯了都不知道。eureka server模組下有乙個測試類 eureka server src test j a com netflix eureka resources eurekaclientserverrestin...

原始碼系列 基於 FPGA 的 USB2 0 設計

2019年9月4日,usb if終於正式公布usb 4規範。它引入了intel此前捐獻給usb推廣組織的thunderbolt雷電協議規範,雙鏈路執行 two lane 傳輸頻寬因此提公升,與雷電3持平,都是40gbps。需要注意的是,你想要體驗最高傳輸速度,就必須使用經過認證的全新資料線。usb4...

USB 滑鼠驅動原始碼分析

kernel kernel 3.4.39 uhci intel,低速 1.5mbps 全速 12mbps ohci microsoft 低速 全速 ehci 高速 480mbps usb匯流排驅動程式的作用 1 分配位址給usb裝置,同時將分配的位址發給usb裝置 最開始通訊位址是埠0 2 發出命令...