DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 7022|回复: 9
打印 上一主题 下一主题

[UUProg] uuprog开发教程:winusb示例固件源代码修改成UUProg的固件

[复制链接]
跳转到指定楼层
楼主
发表于 2015-5-5 22:40:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有了winusb_bulk的实例,我们怎样修改成UProg的固件呢?
其实这个也不难,主要牵涉到的就是vid、pid,只要修改这两个到我们对应的驱动就可以了
这些信息都在F3xx_USB0_Descriptor.c文件中有描述
// Note: Multi-byte fields are expressed in little-endian (LSB first)

SEGMENT_VARIABLE(DEVICE_DESC, const Device_Descriptor, SEG_CODE) =
{
   18,                  // bLength
   0x01,                // bDescriptorType
   LE_ARRAY(0x0110),    // bcdUSB
   0x00,                // bDeviceClass
   0x00,                // bDeviceSubClass
   0x00,                // bDeviceProtocol
   EP0_PACKET_SIZE,     // bMaxPacketSize0
   LE_ARRAY(0x10C4),    // idVendor,这部分我们就不变了,毕竟用的他的芯片
   LE_ARRAY(0x4EBB),    // idProduct,这个我们就改下,方便区别其他的设备
   LE_ARRAY(0x0000),    // bcdDevice
   0x01,                // iManufacturer
   0x02,                // iProduct
   0x00,                // iSerialNumber
   0x01                 // bNumConfigurations
};
当然提示的信息也要做相应的修改,不然提示的可是牛头马嘴
// Note: sizeof("") returns an additional +1 for the null-terminator,
// which in this case is used in place of the first two bytes
// in the string descriptor
#define STRING1_LEN sizeof ("YeFeng Electronic Studio") * 2

static SEGMENT_VARIABLE(STRING1_DESC[STRING1_LEN], const U8, SEG_CODE) =
{
   STRING1_LEN, 0x03,
   'Y', 0,
   'e', 0,
   'F', 0,
   'e', 0,
   'n', 0,
   'g', 0,
   ' ', 0,
   'E', 0,
   'l', 0,
   'e', 0,
   'c', 0,
   't', 0,
   'r', 0,
   'o', 0,
   'n', 0,
   'i', 0,
   'c', 0,
   ' ', 0,
   'S', 0,
   't', 0,
   'u', 0,
   'd', 0,
   'i', 0,
   'o', 0
};

// Note: sizeof("") returns an additional +1 for the null-terminator,
// which in this case is used in place of the first two bytes
// in the string descriptor
#define STRING2_LEN sizeof("UUProg") * 2

static SEGMENT_VARIABLE(STRING2_DESC[STRING2_LEN], const U8, SEG_CODE) =
{
   STRING2_LEN, 0x03,
   'U', 0,
   'U', 0,
   'P', 0,
   'r', 0,
   'o', 0,
   'g', 0
};
这些都是改好得了,自己找前面的贴下winusb_bulk源代码吧
做完这些还不够,还需要把驱动inf中的相关vid、pid对应起来,不然驱动可不认的
[Version]
Signature = "$Windows NT$"
Class = "USB Universal Programmer" ;我们自定义的类名,方便查找
ClassGuid={46880C11-F934-41CB-A130-B123FFDAC55B}
Provider = %ProviderName%
DriverVer=05/05/2015,1.00.0000 ;驱动的时间改一下,好看点
CatalogFile=UUProg.cat

; ================== Class section ==================

[ClassInstall32]
Addreg=UUProgClassReg

[UUProgClassReg]
HKR,,,0,%ClassName%
HKR,,Icon,,-1

; ========== Manufacturer/Models sections ===========

[Manufacturer]
%ProviderName% = UUProg_WinUSB,NTx86,NTamd64,NTia64

[UUProg_WinUSB.NTx86]
%USB\MyDevice.DeviceDesc% =USB_Install, USB\VID_10C4&PID_4EBB ;驱动的vid,pid,必须和固件的对应起来

[UUProg_WinUSB.NTamd64]
%USB\MyDevice.DeviceDesc% =USB_Install, USB\VID_10C4&PID_4EBB;驱动的vid,pid,必须和固件的对应起来

[UUProg_WinUSB.NTia64]
%USB\MyDevice.DeviceDesc% =USB_Install, USB\VID_10C4&PID_4EBB;驱动的vid,pid,必须和固件的对应起来

; =================== Installation ===================

;[1]
[USB_Install]
Include=winusb.inf
Needs=WINUSB.NT

;[2]
[USB_Install.Services]
Include=winusb.inf
AddService=WinUSB,0x00000002,WinUSB_ServiceInstall

;[3]
[WinUSB_ServiceInstall]
DisplayName     = %WinUSB_SvcDesc%
ServiceType     = 1
StartType       = 3
ErrorControl    = 1
ServiceBinary   = %12%\winusb.sys

;[4]
[USB_Install.Wdf]
KmdfService=WINUSB, WinUsb_Install

[WinUSB_Install]
KmdfLibraryVersion=1.9

;[5]
[USB_Install.HW]
AddReg=Dev_AddReg

[Dev_AddReg]
HKR,,DeviceInterfaceGUIDs,0x10000,"{7BE00EA9-A77D-4B28-AEDD-89F9AA978EEE}"

;[6]
[USB_Install.CoInstallers]
AddReg=CoInstallers_AddReg
CopyFiles=CoInstallers_CopyFiles

[CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,"WdfCoInstaller01009.dll,WdfCoInstaller","WinUSBCoInstaller2.dll"

[CoInstallers_CopyFiles]
WinUSBCoInstaller2.dll
WdfCoInstaller01009.dll

[DestinationDirs]
CoInstallers_CopyFiles=11

; ================= Source Media Section =====================
;[7]

[SourceDisksNames]
1 = %DISK_NAME%,,,\i386
2 = %DISK_NAME%,,,\amd64
3 = %DISK_NAME%,,,\ia64

[SourceDisksFiles.x86]
WinUSBCoInstaller2.dll=1
WdfCoInstaller01009.dll=1

[SourceDisksFiles.amd64]
WinUSBCoInstaller2.dll=2
WdfCoInstaller01009.dll=2

[SourceDisksFiles.ia64]
WinUSBCoInstaller2.dll=3
WdfCoInstaller01009.dll=3
; =================== Strings ===================
;这些就是驱动那里显示的东东了,就不做说明了,自己看字面意思就懂了,要是你还不懂那你得进补下,我就不操心了
[Strings]
ProviderName="叶峰电子工作室"
USB\MyDevice.DeviceDesc="USB Universal Programmer(UUProg)"
WinUSB_SvcDesc="UUProg WinUSB Driver"
DISK_NAME="UUProg Driver Install Disk"
ClassName="USB Universal Programmer"


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏1 分享分享 支持支持 反对反对
沙发
发表于 2015-5-6 17:28:25 | 只看该作者
不错,版主,真的 博学。
板凳
发表于 2015-5-7 12:22:06 | 只看该作者
教程应该系统,打包。
地板
 楼主| 发表于 2015-5-7 12:28:38 | 只看该作者
jy11 发表于 2015-5-7 12:22
教程应该系统,打包。

直接从置顶帖找吧,那里就是目录
5#
发表于 2021-1-24 15:45:02 | 只看该作者
这个不错 支持
6#
发表于 2021-1-24 15:50:09 | 只看该作者
这个教程不错 固件源码没找到
7#
发表于 2021-1-24 15:51:32 | 只看该作者
  LE_ARRAY(0x4EBB),    // idProduct,这个我们就改下,方便区别其他的设备
这个和别家的撞车了咋办 不去usb论坛购买?
8#
发表于 2022-10-16 12:31:48 | 只看该作者
搞到了板子上丝印v1.2b的uuprog, 插进电脑显示找不到驱动,查看vid 104c, pid4e99,不知道用哪个驱动,或者如何更新固件。
9#
发表于 2022-10-16 12:32:44 | 只看该作者
wlecust06 发表于 2021-1-24 15:51
LE_ARRAY(0x4EBB),    // idProduct,这个我们就改下,方便区别其他的设备
这个和别家的撞车了咋办 不 ...

对的,正式的产品应该去usb论坛去申请的吧?
10#
发表于 2022-12-17 18:42:24 | 只看该作者
非常感谢分享,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-26 21:22 , 耗时 0.086389 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表