summaryrefslogtreecommitdiff
path: root/version.html
blob: 6ff94177c1a3eae72140154de5cb3aec26bfbb85 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493


<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="./">
<head>
  <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />

  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>版本说明 &mdash; CherryUSB 1.6.1 documentation</title>
      <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=80d5e7a1" />
      <link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=9edc463e" />

  
      <script src="_static/jquery.js?v=5d32c60e"></script>
      <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
      <script src="_static/documentation_options.js?v=d6a008b6"></script>
      <script src="_static/doctools.js?v=9a2dae69"></script>
      <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
    <script src="_static/js/theme.js"></script>
    <link rel="index" title="Index" href="genindex.html" />
    <link rel="search" title="Search" href="search.html" />
    <link rel="next" title="性能展示" href="show/index.html" />
    <link rel="prev" title="chryusb_configurator" href="tools/index.html" /> 
</head>

<body class="wy-body-for-nav"> 
  <div class="wy-grid-for-nav">
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search" >

          
          
          <a href="index.html" class="icon icon-home">
            CherryUSB
          </a>
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>
        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
              <p class="caption" role="heading"><span class="caption-text">快速上手</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="quick_start/start.html">入门必看</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick_start/demo.html">基于现有 demo 快速验证</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick_start/transplant.html">芯片通用移植指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick_start/rtthread.html">基于 RT-Thread 软件包开发指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick_start/q%26a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick_start/migration.html">部分改动迁移指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick_start/opensource.html">基于 CherryUSB 的开源项目</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick_start/usb_speed.html">USB 极限速度测试</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">USB 基本知识点</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="usb/usb2.0_basic.html">USB 基本概念(2.0 为主)</a></li>
<li class="toctree-l1"><a class="reference internal" href="usb/usb3.0_basic.html">USB 基本概念(3.0 为主)</a></li>
<li class="toctree-l1"><a class="reference internal" href="usb/usb_desc.html">USB 描述符</a></li>
<li class="toctree-l1"><a class="reference internal" href="usb/usb_request.html">USB 设备请求</a></li>
<li class="toctree-l1"><a class="reference internal" href="usb/usb_enum.html">USB 枚举</a></li>
<li class="toctree-l1"><a class="reference internal" href="usb/usb_ext.html">USB 知识点拓展</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">API 手册</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="api/api_device.html">设备协议栈</a></li>
<li class="toctree-l1"><a class="reference internal" href="api/api_host.html">主机协议栈</a></li>
<li class="toctree-l1"><a class="reference internal" href="api/api_port.html">主从驱动</a></li>
<li class="toctree-l1"><a class="reference internal" href="api/api_config.html">USB CONFIG 说明</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Class 指南</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="class/class_cdc.html">CDC</a></li>
<li class="toctree-l1"><a class="reference internal" href="class/class_hid.html">HID</a></li>
<li class="toctree-l1"><a class="reference internal" href="class/class_msc.html">MSC</a></li>
<li class="toctree-l1"><a class="reference internal" href="class/class_audio.html">UAC</a></li>
<li class="toctree-l1"><a class="reference internal" href="class/class_video.html">UVC</a></li>
<li class="toctree-l1"><a class="reference internal" href="class/winusb.html">WINUSB</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="demo/usbd_cdc_acm.html">CDC ACM Device</a></li>
<li class="toctree-l1"><a class="reference internal" href="demo/usbd_hid.html">HID Device</a></li>
<li class="toctree-l1"><a class="reference internal" href="demo/usbd_msc.html">MSC Device</a></li>
<li class="toctree-l1"><a class="reference internal" href="demo/usbd_audiov1.html">AudioV1 Device</a></li>
<li class="toctree-l1"><a class="reference internal" href="demo/usbd_audiov2.html">AudioV2 Device</a></li>
<li class="toctree-l1"><a class="reference internal" href="demo/usbd_video.html">USB Video Device</a></li>
<li class="toctree-l1"><a class="reference internal" href="demo/usbd_winusb.html">WinUSB Device</a></li>
<li class="toctree-l1"><a class="reference internal" href="demo/usbd_webusb.html">WebUSB Device</a></li>
<li class="toctree-l1"><a class="reference internal" href="demo/usbd_rndis.html">CDC RNDIS Device</a></li>
<li class="toctree-l1"><a class="reference internal" href="demo/usbd_ecm.html">CDC ECM Device</a></li>
<li class="toctree-l1"><a class="reference internal" href="demo/usbd_adb.html">ADB Device</a></li>
<li class="toctree-l1"><a class="reference internal" href="demo/usbd_mtp.html">MTP Device</a></li>
<li class="toctree-l1"><a class="reference internal" href="demo/usbh_serial.html">Serial Host</a></li>
<li class="toctree-l1"><a class="reference internal" href="demo/usbh_hid.html">HID Host</a></li>
<li class="toctree-l1"><a class="reference internal" href="demo/usbh_msc.html">MSC Host</a></li>
<li class="toctree-l1"><a class="reference internal" href="demo/usbh_net.html">Network Host</a></li>
<li class="toctree-l1"><a class="reference internal" href="demo/usbh_bluetooth.html">BTBLE Host</a></li>
<li class="toctree-l1"><a class="reference internal" href="demo/usbh_wifi.html">WIFI Host</a></li>
<li class="toctree-l1"><a class="reference internal" href="demo/usbh_audio.html">Audio Host</a></li>
<li class="toctree-l1"><a class="reference internal" href="demo/usbh_video.html">Video Host</a></li>
<li class="toctree-l1"><a class="reference internal" href="demo/usb_otg.html">USB OTG</a></li>
<li class="toctree-l1"><a class="reference internal" href="demo/usbd_vendor.html">Vendor Device 驱动编写</a></li>
<li class="toctree-l1"><a class="reference internal" href="demo/usbh_vendor.html">Vendor Host 驱动编写</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">USBIP 介绍</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="usbip/ohci.html">OHCI</a></li>
<li class="toctree-l1"><a class="reference internal" href="usbip/ehci.html">EHCI</a></li>
<li class="toctree-l1"><a class="reference internal" href="usbip/xhci.html">XHCI</a></li>
<li class="toctree-l1"><a class="reference internal" href="usbip/chipidea.html">CHIPIDEA</a></li>
<li class="toctree-l1"><a class="reference internal" href="usbip/dwc2.html">DWC2</a></li>
<li class="toctree-l1"><a class="reference internal" href="usbip/musb.html">MUSB</a></li>
<li class="toctree-l1"><a class="reference internal" href="usbip/fotg210.html">FOTG210</a></li>
<li class="toctree-l1"><a class="reference internal" href="usbip/cdns2.html">CDNS2</a></li>
<li class="toctree-l1"><a class="reference internal" href="usbip/cdns3.html">CDNS3</a></li>
<li class="toctree-l1"><a class="reference internal" href="usbip/dwc3.html">DWC3</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">工具使用</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="tools/index.html">chryusb_configurator</a></li>
<li class="toctree-l1"><a class="reference internal" href="tools/index.html#usb-protocol-suite">力科 USB Protocol Suite</a></li>
<li class="toctree-l1"><a class="reference internal" href="tools/index.html#wireshark">Wireshark</a></li>
<li class="toctree-l1"><a class="reference internal" href="tools/index.html#audacity">Audacity</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">版本说明</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#v0-10-2">小于等于 v0.10.2 版本</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v1-0-0">v1.0.0 过度版本</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v1-1-0">v1.1.0 过度版本</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v1-2-0">v1.2.0</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v1-3-0">v1.3.0</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v1-3-1">v1.3.1</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v1-4-0">v1.4.0</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v1-4-1">v1.4.1</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v1-4-2">v1.4.2</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v1-4-3">v1.4.3</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v1-5-0">v1.5.0</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v1-5-1">v1.5.1</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v1-5-2">v1.5.2</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v1-5-3">v1.5.3</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v1-5-3-99">v1.5.3.99</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v1-6-0">v1.6.0</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v1-6-1">v1.6.1</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v1-7-0">v1.7.0</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">性能展示</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="show/index.html">性能展示</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">商业支持</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="support/index.html">商业支持</a></li>
</ul>

        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="index.html">CherryUSB</a>
      </nav>

      <div class="wy-nav-content">
        <div class="rst-content">
          <div role="navigation" aria-label="Page navigation">
  <ul class="wy-breadcrumbs">
      <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
      <li class="breadcrumb-item active">版本说明</li>
      <li class="wy-breadcrumbs-aside">
            <a href="_sources/version.rst.txt" rel="nofollow"> View page source</a>
      </li>
  </ul>
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
             
  <section id="id1">
<h1>版本说明<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<p>如果没有特别情况,请使用最新版本。下面只列举比较重要的更新,详细更新说明请参考 <a class="reference external" href="https://github.com/cherry-embedded/CherryUSB/releases">https://github.com/cherry-embedded/CherryUSB/releases</a>。</p>
<section id="v0-10-2">
<h2>小于等于 v0.10.2 版本<a class="headerlink" href="#v0-10-2" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p><strong>主从机基本框架,API 定型,仅支持单个 USB IP</strong></p></li>
<li><p>host: <strong>USBIP 驱动硬件 pipe 跟随 ep 固定分配,超出则无法使用</strong></p></li>
</ul>
</section>
<section id="v1-0-0">
<h2>v1.0.0 过度版本<a class="headerlink" href="#v1-0-0" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>device: usbd_ep_open 参数改成 struct usb_endpoint_descriptor</p></li>
<li><p>host: <strong>USBIP 驱动重构,硬件 pipe 动态分配</strong></p></li>
<li><p>增加 USB 专用 errorcode</p></li>
</ul>
</section>
<section id="v1-1-0">
<h2>v1.1.0 过度版本<a class="headerlink" href="#v1-1-0" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p><strong>主从机支持多 USB IP 且要相同 IP</strong></p></li>
<li><p>host: <strong>增加 bluetooth, ch340, ftdi, cp210x, asix class 驱动</strong></p></li>
<li><p>device: <strong>msc 支持多 lun</strong>,并且 CONFIG_USBDEV_MSC_BLOCK_SIZE 修改为 CONFIG_USBDEV_MSC_MAX_BUFSIZE</p></li>
</ul>
</section>
<section id="v1-2-0">
<h2>v1.2.0<a class="headerlink" href="#v1-2-0" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>host: <strong>增加 rtl8152,cdc ncm class 驱动</strong></p></li>
<li><p>host: 增加 timer 去控制中断传输(hub修改为 timer 控制)</p></li>
<li><p>port: <strong>增加 esp,aic 主机驱动</strong></p></li>
<li><p>port: <strong>优化 DWC2 代码方便阅读,并增加一些 FIFO 配置宏给用户(因为 dwc2 fifo 大小有限,以及配置方式很多,所以导出给用户配置,方便合理控制性能)</strong></p></li>
<li><p>port: 优化 ehci 驱动(qtd不再使用动态申请,绑定 qh),方便代码运行的更快,intr 传输使用统一的 qh head。</p></li>
</ul>
</section>
<section id="v1-3-0">
<h2>v1.3.0<a class="headerlink" href="#v1-3-0" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>device: <strong>支持多种速度描述符自动选择功能(需开启 CONFIG_USBDEV_ADVANCE_DESC)</strong></p></li>
<li><p>device: 字符串描述符使用 string 形式</p></li>
<li><p>device: core 代码统一 ep0 buffer 的使用,用于美化代码</p></li>
<li><p>host: <strong>增加 pl2303 驱动</strong></p></li>
<li><p>host: <strong>采用 id table 来支持多个 vid,pid;增加 user_data 给用户使用</strong></p></li>
<li><p>host: 网络 class 驱动增加 tx、rx buffer 的宏,增加 LWIP_TCPIP_CORE_LOCKING_INPUT 的使用,以便实现数据的零拷贝</p></li>
<li><p>port: 导入 bouffalo,aic,stm32f723 device驱动</p></li>
<li><p>port: <strong>主机部分 urb-&gt;timeout 清0 的处理有点问题(大数据量传输时会出现 no pipe alloc 异常,主要原因是刚启动传输就完成了,还没判断 timeout就被修改为0了,没有进入 take sem 流程),此版本已修复</strong></p></li>
<li><p>port: ehci enable iaad in usbh_kill_urb,read ehci hcor offset from hccr caplength,enable ohci for ehci</p></li>
<li><p>适配 nuttx os</p></li>
</ul>
</section>
<section id="v1-3-1">
<h2>v1.3.1<a class="headerlink" href="#v1-3-1" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>host: <strong>hub 枚举线程删除,使用 psc 线程,枚举方式更改为队列模式,取消同时枚举多个设备的功能</strong></p></li>
<li><p>host: 扫描驱动信息和 instance 采用递归模式,删除链表扫描</p></li>
<li><p>host: 网络 class 驱动优化,支持接收 16K 以上的数据(cdc ecm 不支持),采用高级 memcpy api</p></li>
<li><p>device: <strong>协议栈中打印删除(中断中不再做打印)</strong></p></li>
<li><p>port: <strong>musb fifo配置修改为从 fifo table 获取(此代码参考 linux),适配 es32,sunxi,beken</strong></p></li>
<li><p>port: fix enter section before alloc pipe</p></li>
</ul>
</section>
<section id="v1-4-0">
<h2>v1.4.0<a class="headerlink" href="#v1-4-0" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>device: <strong>开始支持 remote wakeup 功能, hid request(0x21),完善 GET STATUS 请求(此版本开始可以通过 USB3CV 测试)</strong></p></li>
<li><p>device: <strong>增加 UF2, ADB, WEBUSB 功能</strong>; msc 增加裸机的读写 polling 功能,将读写放在 while1中执行; usbd_cdc 改名为 usbd_cdc_acm</p></li>
<li><p>host: <strong>增加 usbwifi(bl616), xbox驱动</strong></p></li>
<li><p>host: <strong>重构 USB3.0 枚举逻辑</strong></p></li>
<li><p>host: <strong>修复 cdc_acm,hid,msc,serial 传输共享 buffer,如果存在多个相同的设备会有问题,修改为单独的 buffer</strong></p></li>
<li><p>port: <strong>重构 XHCI/PUSB2 驱动,不开源</strong></p></li>
<li><p>port: ehci 和 ohci 文件改名</p></li>
<li><p>port: <strong>增加 remote wakeup api</strong></p></li>
<li><p>port: <strong>chipidea 从机驱动支持,nxp mcx 系列主从支持,esp32p4 支持</strong></p></li>
<li><p>threadx os 支持</p></li>
<li><p>esp 组件库支持</p></li>
</ul>
</section>
<section id="v1-4-1">
<h2>v1.4.1<a class="headerlink" href="#v1-4-1" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>device: <strong>修复device 模式下使用多个 altsetting 时重复关闭端点问题,改成 altsetting 为0时关闭</strong></p></li>
<li><p>device: video 增加 usbd_video_stream_start_write 和 usbd_video_stream_split_transfer API,之前的 API 不再使用(占用太大)</p></li>
<li><p>host: <strong>重构主机 audio 解析描述符,重构 usbh_audio_open api</strong></p></li>
<li><p>host: 主机下 usbh_msc_get_maxlun 请求部分 U 盘不支持,不做错误返回</p></li>
<li><p>host: 主机下 usbh_hid_get_report_descriptor 导出给用户调用</p></li>
<li><p>port: <strong>增加 kinetis usbip</strong></p></li>
<li><p>静态代码检查</p></li>
</ul>
</section>
<section id="v1-4-2">
<h2>v1.4.2<a class="headerlink" href="#v1-4-2" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>device: 实现 USB_REQUEST_GET_INTERFACE 请求</p></li>
<li><p>device: <strong>video 传输继续重构,增加双缓冲功能,实现零 copy 功能</strong></p></li>
<li><p>device: ecm 重构,保持和 rndis 类似底层读写 API</p></li>
<li><p>device: <strong>全面使用 usb_memcpy 替换 memcpy</strong></p></li>
<li><p><strong>device 和 host: audio 音量配置功能重构</strong></p></li>
<li><p>host: <strong>增加 AOA 驱动</strong></p></li>
<li><p>port: <strong>通用 OHCI 代码更新</strong></p></li>
<li><p>兼容 C++ 相关修改</p></li>
</ul>
</section>
<section id="v1-4-3">
<h2>v1.4.3<a class="headerlink" href="#v1-4-3" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>device: <strong>ep0 处理增加线程模式</strong></p></li>
<li><p>device: 增加 audio feedback 宏和demo</p></li>
<li><p>device: rndis 增加透传功能(无LWIP)</p></li>
<li><p>device: <strong>fix current_desc_len += p[DESC_bLength] before p+= p[DESC_bLength]</strong></p></li>
<li><p>host: <strong>msc 将 scsi 初始化从枚举线程中移出,在mount阶段调用,并增加了testunity 多次尝试,兼容一部分 U 盘</strong></p></li>
<li><p>port: <strong>rp2040 主从支持</strong></p></li>
<li><p>port: <strong>dwc2、ehci、ohci 主机 dcache功能支持(v1.5.0 完善)</strong></p></li>
<li><p>port: 新增 t113、MCXA156、CH585、stm32h7r 支持</p></li>
<li><p>port: <strong>修复 v1.4.1 中 altsetting 为0时应该关闭所有端点的问题</strong></p></li>
<li><p><strong>nuttx fs,serial,net 组件支持</strong></p></li>
<li><p>增加 usb_phyaddr2ramaddr 和 usb_ramaddr2phyaddr 宏</p></li>
</ul>
</section>
<section id="v1-5-0">
<h2>v1.5.0<a class="headerlink" href="#v1-5-0" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p><strong>协议栈内部全局 buffer 需要使用 USB_ALIGN_UP 对齐, 用于开启 dcache 并且不使能 nocache ram 时使用</strong></p></li>
<li><p>device: <strong>默认使能 CONFIG_USBDEV_ADVANCE_DESC</strong></p></li>
<li><p>device: <strong>增加 ep0_next_state 状态记录,重构枚举过程 debug log</strong></p></li>
<li><p>device: msc 裸机读写采用变量模式,而不是ringbuffer</p></li>
<li><p>device: msc 支持 SCSI_CMD_SYNCHCACHE10 (0x35)</p></li>
<li><p>device: <strong>重构 device mtp 驱动(收费使用)</strong></p></li>
<li><p>device: <strong>device tmc 驱动(收费使用)</strong></p></li>
<li><p>device: <strong>重构 device video 传输,直接在图像数据中填充 uvc header,达到zero memcpy</strong></p></li>
<li><p>host: <strong>增加 usb_osal_thread_schedule_other api,用于在释放 class 资源之前,先释放所有 class 线程,避免释放 class 资源以后线程还在使用该 class 资源</strong></p></li>
<li><p>host: hid 增加 usbh_hid_get_protocol API</p></li>
<li><p>port: <strong>完善 ehci/ohci dcache 模式下的对齐处理</strong>, add CONFIG_USB_EHCI_DESC_DCACHE_ENABLE for qh&amp;qtd&amp;itd, add CONFIG_USB_OHCI_DESC_DCACHE_ENABLE for ed&amp;td</p></li>
<li><p>port: <strong>device sof callback 支持</strong></p></li>
<li><p>port: <strong>dwc2 、fsdev 下实现底层 API 和中断,STM32 glue 直接调用 HAL_PCD_MSP 和 HAL_HCD_MSP,不再需要用户复制粘贴</strong></p></li>
<li><p>port: <strong>DWC2 实现 SPLIT 功能,高速模式下支持外部高速 hub 对接 FS/LS 设备</strong></p></li>
<li><p>port: ehci qtd 使用 qtd alloc &amp; free,节省内存,目前是 qh 携带 qtd</p></li>
<li><p>port: <strong>dwc2 device 增加 dcache 支持</strong></p></li>
<li><p>port: <strong>bouffalo/hpm/esp/st/nxp dcache api 支持</strong></p></li>
<li><p>port: N32H4/MM32F5 device 支持</p></li>
<li><p>platform: <strong>平台代码更新,平台相关转移到 platform,增加 lvgl 键鼠支持,blackmagic 支持,filex 支持, zephyr disk支持,esp-idf netif支持</strong></p></li>
<li><p><strong>memcpy 全部使用 usb_memcpy 替换,arm 库存在非对其访问问题</strong></p></li>
<li><p>使用 USB_ASSERT_MSG 对部分代码检查,全面性 warning 修复</p></li>
<li><p><strong>增加 usb_osal_thread_schedule_other api,用于在释放 class 资源之前,先释放所有 class 线程,避免释放 class 资源以后线程还在使用该 class 资源</strong></p></li>
<li><p>liteos-m, zephyr os 支持</p></li>
</ul>
</section>
<section id="v1-5-1">
<h2>v1.5.1<a class="headerlink" href="#v1-5-1" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>host: urb interval 单位改成 ms 改成 us</p></li>
<li><p>port: <strong>dwc2 增加多个 usbport 不同参数的配置功能(比如一个全速一个高速,fifo配置和phy配置不同),之前的 get gccfg API 作废,更新 at32,stm32,espressif glue</strong></p></li>
<li><p>port: <strong>ehci 在控制传输中如果没有 nodata 阶段会导致 data qtd 未释放,导致内存泄漏,1.5.0带来的问题</strong></p></li>
<li><p>port: <strong>dwc2 读取 setup 使用 usbd_get_next_ep0_state 去判断,避免 setup 和 ep0 out 在 USB_OTG_DOEPINT_XFRC 状态下冲突</strong></p></li>
<li><p>port: sifli usb device 初步支持</p></li>
<li><p>platform: 支持 rt-thread 下使用 adb shell,host serial/device cdc_acm 对接 rtdevice 框架</p></li>
</ul>
</section>
<section id="v1-5-2">
<h2>v1.5.2<a class="headerlink" href="#v1-5-2" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>host: 主机枚举中,删除描述符溢出相关的 ASSERT 操作,改成返回错误。获取字符串描述符改成支持才获取。2 ms 延时改成 10ms,因为一些 os 使用的是 100hz,会造成延时失效</p></li>
<li><p>host: CONFIG_USBHOST_MAX_INTF_ALTSETTINGS 默认使用 2 减少内存,只有 UVC 和UAC 使用(商业收费),所以不需要开很大</p></li>
<li><p>host: urb interval 从 u8 改 u32,最大支持 2^15 * 125us</p></li>
<li><p>port: <strong>dwc2 ep mult 支持</strong></p></li>
<li><p>port: <strong>dwc2 halt 中不能清除 USB_OTG_HCCHAR_EPDIR,会导致下次使用异常,因为当前传输还未停止</strong></p></li>
<li><p>port: <strong>dwc2 reset port 中使用超时机制,防止在枚举时由于拔出而造成死等</strong></p></li>
<li><p>port: <strong>优化 split 传输中 intr 传输处理和 cache 处理</strong></p></li>
<li><p>port: 更新 kendryte glue 代码,使用新的 dwc2 参数配置函数(v1.5.1 提供)</p></li>
<li><p>port: <strong>musb 对于标准的 IP 结构采用独立 EP 控制寄存器组,不使用 EPIDX 寄存器去控制</strong></p></li>
<li><p>port: esp32p4 fs 支持</p></li>
<li><p>platform: 对 1.5.1 下 rt-thread 组件的一些 bugfix</p></li>
<li><p>删除所有 CONFIG_USBDEV_EP_NUM &amp; CONFIG_USBHOST_PIPE_NUM,不再使用,因为 IP 本身会携带这些信息,或者厂家 SDK 提供了对应的宏</p></li>
<li><p>idf timer osal 替换为 esp timer,freertos timer会有启动失败的可能性;xTaskCreate 使用 xTaskCreatePinnedToCore 替换,方便多核使用</p></li>
</ul>
</section>
<section id="v1-5-3">
<h2>v1.5.3<a class="headerlink" href="#v1-5-3" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>device: <strong>从机支持自定义 ep0 mps,仅支持商业性 IP</strong></p></li>
<li><p>host: <strong>主机增加 UVC bulk支持</strong></p></li>
<li><p>host: 接口号匹配驱动功能</p></li>
<li><p>host: <strong>主机分配地址功能改成循环自增模式</strong></p></li>
<li><p>host: 增加自定义 config index 选择</p></li>
<li><p>host: 重构 lsusb 命令</p></li>
<li><p>host: <strong>主机控制传输增加 retry 机制,部分 device 通信不稳定,retry 次数参考 linux</strong></p></li>
<li><p>host: 主机 rndis 驱动增加非标 02/02/ff 接口驱动匹配规则</p></li>
<li><p>port: <strong>musb IP 关闭 multipoint feature 支持</strong></p></li>
<li><p>port: <strong>hpmicro、chipidea device dcache 支持</strong></p></li>
<li><p>port: 更新 hc32 glue 代码,使用新的 dwc2 参数配置函数(v1.5.1 提供)</p></li>
<li><p>port: <strong>musb pipe 使用动态分配</strong></p></li>
<li><p>platform: <strong>idf host msc 支持</strong></p></li>
<li><p><strong>otg: otg 框架重构,当前 port 仅支持 hpmicro</strong></p></li>
<li><p>CI 编译功能,支持 hpmicro,espressif,bouffalolab</p></li>
<li><p>增加 mongoose demo</p></li>
</ul>
</section>
<section id="v1-5-3-99">
<h2>v1.5.3.99<a class="headerlink" href="#v1-5-3-99" title="Link to this heading"></a></h2>
<p>bugfix for v1.5.3。</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>从这个版本开始,可以全面使用 dcache ram 取代 nocache ram,需要打开 <strong>CONFIG_USB_DCACHE_ENABLE</strong> 并配置 <strong>CONFIG_USB_ALIGN_SIZE</strong></p>
</div>
</section>
<section id="v1-6-0">
<h2>v1.6.0<a class="headerlink" href="#v1-6-0" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>device: <strong>支持 gamepad device</strong></p></li>
<li><p>host: <strong>增加 serial 框架,统一所有类串口驱动</strong></p></li>
<li><p>host: <strong>增加 hid 报告描述符解析功能</strong></p></li>
<li><p>host: <strong>usbh_initialize 增加 event callback,用于通知用户主机事件变化,通常不需要使用,设置为 NULL 即可</strong></p></li>
<li><p>port: <strong>增加 ti xmc,infineon edge e8x port 支持</strong></p></li>
<li><p>port: dwc2 增加 usbd_dwc2_get_system_clock 替换 SystemCoreClock;删除 __UNALIGNED_UINT32_READ 和 __UNALIGNED_UINT32_WRITE 宏;读取 setup 个数设置为 1个;第一次读取 setup 移动到 USB_OTG_GINTSTS_ENUMDNE 中断中</p></li>
<li><p>port: dwc2/ehci 增加 roothub 速度设置</p></li>
</ul>
</section>
<section id="v1-6-1">
<h2>v1.6.1<a class="headerlink" href="#v1-6-1" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>device: <strong>新增 USB 副屏驱动</strong></p></li>
<li><p>device: <strong>重构 DFU device 驱动</strong></p></li>
<li><p>host: <strong>重构 hid 报告描述符解析功能</strong></p></li>
<li><p>host: <strong>主机 hub 线程释放改成使用 mq 退出,替代互斥锁</strong></p></li>
<li><p>host: <strong>fix desc length parse</strong></p></li>
<li><p>port: <strong>hpmicro: using sutw semaphore by isr handler for setup</strong></p></li>
<li><p>port: dwc2: add critical section for hc frame setting, make it more safely</p></li>
<li><p>platform: rtthread 文件添加 rt 前缀</p></li>
<li><p><strong>cherryrb 和 cherrymp 组件内置</strong></p></li>
<li><p>部分 bugfix 和安全性代码检查</p></li>
</ul>
</section>
<section id="v1-7-0">
<h2>v1.7.0<a class="headerlink" href="#v1-7-0" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p><strong>新增注册驱动 API,从这个版本开始可以同时使用多个不同的 USBIP</strong></p></li>
<li><p>device: <strong>新增 cdc ncm class 驱动</strong></p></li>
<li><p>device: <strong>新增 tmc class 驱动</strong></p></li>
<li><p>device: <strong>新增 usb3.0 request 和配置</strong></p></li>
<li><p>device: <strong>重构 adb 驱动,添加 shell 和 sync 支持,并且不再支持裸机,os only</strong></p></li>
<li><p>device: <strong>audio 新增 usbd_audio_get_volume_range,volume 读写改成 float 类型</strong></p></li>
<li><p>device: 新增获取 speed 和 ep info api</p></li>
<li><p>device: <strong>新增 usb_vfs api, posix 标准接口</strong></p></li>
<li><p>device: msc 支持 SCSI_readCapacity16 命令</p></li>
<li><p>host: <strong>重构 audio 驱动和 API,volume 配置范围改成 0~ 100,audio sample rate 最大支持 8个默认</strong></p></li>
<li><p>host: <strong>serial 增加 RX 流控</strong></p></li>
<li><p>host: <strong>简化 net class rx 接收,最大不再超过 16K</strong></p></li>
<li><p>host: <strong>rndis msg resp 处理统一到 usbh_rndis_parse_resp</strong></p></li>
<li><p>host: rndis 驱动增加 Android RNDIS class code (0xEF/0x04/0x01) 匹配规则</p></li>
<li><p>host: 修复 hid API 漏掉的 <strong>hport-&gt;intf</strong></p></li>
<li><p>host: only release hport in disconnect</p></li>
<li><p>port: <strong>renesas 从机支持</strong></p></li>
<li><p>port: <strong>esp32s31 支持</strong></p></li>
<li><p>port: <strong>N32H49X和N32H7XX USBHS 支持</strong></p></li>
<li><p>port: <strong>N32H4x (N32H47x_48x / N32H49x) FSDEV 支持</strong></p></li>
<li><p>port: <strong>删除旧版本 wch 驱动,重构 usbfs,usbhs 主从驱动支持</strong></p></li>
<li><p>port: 统一 cache 处理到 usbh_submit_urb</p></li>
<li><p>port: 将部分 glue 文件放到厂家文件夹中</p></li>
<li><p>port: 修复 ehci setup cache 和 qh,qtd cache 处理</p></li>
<li><p>port: <strong>fix usbd_ep_close for out ep, set global nak first then can disable ep</strong></p></li>
<li><p>port: <strong>musb 增加 sifli 自定义 pipe 申请规则,修复 usbh_kill_urb 时错误关闭 ep0 中断和 flush 错误问题</strong></p></li>
<li><p>port: low level api from weak to extern, 防止用户没有实现而使用 weak api</p></li>
<li><p>platform: <strong>zmk 支持</strong></p></li>
<li><p>platform: <strong>zephyr 主机多 msc 设备支持</strong></p></li>
<li><p>platform: fix idf fatfs 旧版本兼容</p></li>
<li><p>platform: 修复 rtthread 驱动旧版本支持</p></li>
<li><p>platform: <strong>rtthread adb shell 和 sync 支持</strong></p></li>
<li><p><strong>demo 删除 CONFIG_USB_HS,新增 config fs,hs 和 other speed 支持</strong></p></li>
<li><p><strong>video 宏中的 frame interval 改成只支持一个</strong></p></li>
<li><p>新增 AUDIO_FEEDBACK_TO_BUF_HS_INTERVAL/AUDIO_FEEDBACK_TO_BUF_FS_INTERVAL 宏</p></li>
<li><p>更新 usb 测速工具</p></li>
<li><p>CI 功能新增 wch,sifli,phytium 支持</p></li>
<li><p>osal 的部分修复</p></li>
<li><p>安全性代码检查</p></li>
</ul>
</section>
</section>


           </div>
          </div>
          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
        <a href="tools/index.html" class="btn btn-neutral float-left" title="chryusb_configurator" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
        <a href="show/index.html" class="btn btn-neutral float-right" title="性能展示" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
    </div>

  <hr/>

  <div role="contentinfo">
    <p>&#169; Copyright 2022 ~ 2026, sakumisu.</p>
  </div>

  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
    provided by <a href="https://readthedocs.org">Read the Docs</a>.
   

</footer>
        </div>
      </div>
    </section>
  </div>
  <script>
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script> 

</body>
</html>