在之前的博客中已经讲过,驱动程序最核心的两个文件,一个是xxx.sys文件,一个是xxx.inf文件,主机是寻找xxx.inf文件。

在下面的文件中有相关关于USB驱动的说明。对于用户来说,xxx.sys文件 可以不用修改,用户可以对xxx.inf文件的内容进行相应的修改即可。

下图是《cy_usb》应用手册的名字,可以找到下图手册,查看关于USB驱动相关的内容

下图是当前驱动支持的系统。

下图是支持的VID&PID对,且注意,如果用户修改cyUSB3.inf文件,并加入自己的VID&PID,这样会导致使得设备变成未签名。windows系统不建议使用未签名的驱动。这一点需要格外注意。

当前版本支持特性,兼容2.0,3.0等驱动。

下图是手册中的一段描述,主要是针对用户修改cyUSB3.inf,可以加入设备识别号,替换相应的驱动安装过程中的cypress显示字符,完成驱动自定义向导。GUID对应的序列号是固定的,参看之前的博客。

修改VID&PID名称:

修改strings

手册中有规定,若是不单单只修改目前的VID&PID的内容的话,那么需要用户自己去新建一个xxx.inf文件,将原内容进行修改即可。

那么上述修改VID&PID之后,还要让系统能够针对你修改的VID&PID进行识别。如下图所示:

图上这一部分主要是讲解对于不同的操作系统,需要将设置的ID(VID&PID)都要加入到对应的操作系统目录下,如下图所示:

上述主要是针对《cy_usb》手册中的对于用户需要更改的内容作了讲解,和之前的博客《通用USB驱动程序解析》有类似内容。那么笔者接下来操作是,先利用Cypress自带的驱动,先对笔者设计的板卡进行驱动的安装。如下图所示:

先完成调用cypress 自带固件完成驱动安装。

安装完官方自带驱动如下所示:

这是因为EEPROM里面没有固化程序,所以显示上述信息。

那么如果我们想生成自己的控件信息,那该如何操作呢。

首先声明一点,完整的一个USB系统应该包括,固件程序,驱动 程序,上位机程序,从而形成一个USB系统。那么对于想更改USB的签名,那么必须从固件程序和驱动程序入手(有人问,你这不是废话吗。。。。好吧,好戏在后头)。

USB固件编程是整个设计任务的核心,USB固件程序用于完成USB设备的识别,重列举,设备请求、USB协议处理、外部硬件的功能,负责与USB主机间的数据通信等。所以要想更改签名,先从固件程序入手。在安装完套件中的 firmware文件中,有很多固件程序,如下图所示:

我们可以选择一个固件,比如bulkloop,使用keil软件打开,如下图所示:

注意上图中的dscr.a51这个文件,此文件是USB描述符,里面有设备描述符,设备限定描述符,配置描述符,字符串描述符以及用户描述符。关于描述符的介绍参看相关博客---《USB描述符简介》。

重点来了,刚才已经提到固件程序中包含了设备描述符等相关信息,若是想更改USB签名。首先更改图上的VID,PID,以及version ID(这样更改有可能会使得数字签名失效,这个问题请参看相关的博客---《USB数字签名》)

更改上述的VID和PID如下所示:

字符串更改为如下所示:

//==================================================================

注意!!!!!!

上述操作是对应的固件操作,那么固件的VID和PID对应的是0x52EA,那么在驱动程序里面也要进行相应的操作,如下图所示:

USB2.0学习笔记连载(十四):USB驱动安装及固件程序的编写的更多相关文章

  1. USB2.0学习笔记连载(四):安装Cypress官网套件

    上一篇博客大概讲了一下USB通用驱动程序的解析.笔者使用Cypress官网给定的资料去完成USB驱动开发.官网资料地址:http://www.cypress.com/?rID=14321 下载如下图的 ...

  2. USB2.0学习笔记连载(十七):keil实现寄存器的配置及相关函数讲解(一)

    首先要实现对寄存器的配置,可以参考手册<Development kit  User Guide>,如下图所示: 此文件包含在 文件中.上述的应用文档详细介绍了如何利用KEIL实现对固件程序 ...

  3. USB2.0学习笔记连载(十九):EZ-USB TRM手册重要部分介绍

        TRM手册中给出了所有的寄存器配置,在 slave fifo模式或者 GPIF模式等,所以对于用到的各种寄存器配置需要查看此手册,当然还可以配合着应用手册<AN61345>.   ...

  4. USB2.0学习笔记连载(三):通用USB驱动程序解析

    对于USB驱动的开发,读者可以使用Windows DDK.DriverStudio等多种开发工具来实现USB的驱动,但是驱动程序的开发过程都比较复杂,而且很容易致使USB主机内存泄露而死机.那么对于笔 ...

  5. USB2.0学习笔记连载(二):USB基础知识简介

    USB接口分为USB A型.USB B型.USBmini型.USBmicro型.USB3.0其中每种都有相应的插座和插头. 图1 图2 上图是USBA型接口,图1为插座,图2为插头.插座指向下行方向, ...

  6. USB2.0学习笔记连载(一):CY7C68013特性简介

    上一篇博客已经给出了整个视频板卡架构,那么对于USB接口部分需要着重理解和学习. 对于目前来说,若是利用FPGA去模拟USB2.0内核,难度还是挺大的,整个状态的收发都不好控制.现在目前都在使用桥接芯 ...

  7. USB2.0学习笔记连载(六):USB2.0硬件设计需要注意事项

    笔者在设计USB2.0时找到了一个官方给的硬件设计正确设计指南,其中有些内容还挺nice的.不单单只是USB的设计,其中有些思想可以应用到其他的场合中. 对于USB2.0而言,全速状态下可以达到480 ...

  8. USB2.0学习笔记连载(十八):keil实现寄存器的配置及相关函数讲解(二)

    其实之前也有提及过,Cypress公司提供的官方文件和应用手册真的可以解决很多问题.做的也很人性化,操作也及其简单,几乎只要在 TD_int()里面配置一些常用的参数即可,其他都可以不用操作. 作为一 ...

  9. USB2.0学习笔记连载(十):关于WIN8及以上系统哈希值问题

    笔者上一篇博客讲解了关于驱动的安装,笔者使用的系统是win8.1系统,那么对于win8系统及以上系统,会对外部设备,没有在windows系统中进行签名过的,都是不允许在windows系统中进行安装的, ...

随机推荐

  1. 【iOS XMPP】使用XMPPFramewok(二):用户登录

    转自:http://www.cnblogs.com/dyingbleed/archive/2013/05/10/3069397.html 用户登录 准备工作 比较知名的开源XMPP服务器:一个是Ope ...

  2. Robolectric使用教程

    转载请标明出处:http://blog.csdn.net/shensky711/article/details/53561172 本文出自: [HansChen的博客] 概述 怎样使用 为项目加入依赖 ...

  3. haproxy 配置https 同时技持443 80端口

    确定haproxy支持https [root@c01 sbin]# ldd haproxy |grep ssl libssl.so.10 => /usr/lib64/libssl.so.10 ( ...

  4. 菜鸟译文(一)——Java中的继承和组合

    阅读英文的能力对于程序员来说,是很重要的.这几年也一直在学习英文,今天心血来潮,就在网上找了一篇简短的博文翻译一下.水平一般,能力有限,还请各位看官多多指点. 译文: 本文将会举例说明Java中继承和 ...

  5. 超级账本 --- ReadWriteSet的逻辑结构

    用于时序校验,解决双花问题 (doublespending)• Endorser– 模拟执行交易,生成ReadSet和WriteSet– ReadSet是交易前key值的状态– WriteSet是交易 ...

  6. DIOCP开源项目-DIOCP3的重生和稳定版本发布

    DIOCP3的重生 从开始写DIOCP到现在已经有一年多的时间了,最近两个月以来一直有个想法做个 30 * 24 稳定的企业服务端架构,让程序员专注于逻辑实现就好.虽然DIOCP到现在通讯层已经很稳定 ...

  7. golang标准库分析之net/rpc

    net/rpc是golang提供的一个实现rpc的标准库.

  8. spark编译报错信息简介

    spark编译需要环境 git java1.+ maven R 报错信息1: [INFO] ------------------------------------------------------ ...

  9. 通用性好的win2003序列号: (推荐先用这个里面的)

    通用性好的win2003序列号: (推荐先用这个里面的)FJ8DH-TQPYG-9KFHQ-88CB2-Y7V3Y GRD4P-FTQQF-JCDM8-4P6JK-PFG7MJD7JX-KCDTH-7 ...

  10. google3aac509c9040e79d

    google-site-verification: google3aac509c9040e79d.html