<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tinyusb.git/examples, branch claude/adoring-pasteur-kbaFa</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/tinyusb.git/atom/examples?h=claude%2Fadoring-pasteur-kbaFa</id>
<link rel='self' href='http://cgit.235523.xyz/tinyusb.git/atom/examples?h=claude%2Fadoring-pasteur-kbaFa'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/'/>
<updated>2026-06-12T09:15:43Z</updated>
<entry>
<title>bare_api: cast config-descriptor buffer via uintptr_t instead of suppressing V641</title>
<updated>2026-06-12T09:15:43Z</updated>
<author>
<name>Claude</name>
<email>noreply@anthropic.com</email>
</author>
<published>2026-06-12T09:15:43Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=881abf881c964108e6329326aa32c677c7f7291b'/>
<id>urn:sha1:881abf881c964108e6329326aa32c677c7f7291b</id>
<content type='text'>
temp_buf is a uint16_t[128] reused to hold the GET_DESCRIPTOR(Configuration)
wire-format blob; casting it to tusb_desc_configuration_t* to read the 9-byte
header tripped PVS V641 (buffer size not a multiple of the element size).
Route the cast through uintptr_t so the (correct) header read no longer trips
the size-ratio heuristic, dropping the inline //-V641 suppression.

Verified: pico examples rebuild; single-TU PVS re-run on bare_api/main.c is
clean (no V641, no MISRA pointer/integer-cast finding).
</content>
</entry>
<entry>
<title>clean up PVS-Studio static-analysis findings for raspberry_pi_pico</title>
<updated>2026-06-11T23:34:30Z</updated>
<author>
<name>Claude</name>
<email>noreply@anthropic.com</email>
</author>
<published>2026-06-11T23:34:30Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=72f4d52aafaf582a29428863a72c454a9ae5e916'/>
<id>urn:sha1:72f4d52aafaf582a29428863a72c454a9ae5e916</id>
<content type='text'>
Resolves all TinyUSB-owned alerts reported by the CI PVS-Studio job
(static_analysis.yml, run with --security-related-issues) on the
raspberry_pi_pico board: 0 remaining in src/ and examples/.

Genuine fixes:
- ncm_device: validate wNdpIndex against sizeof(nth16_t), not the pointer
  size sizeof(nth16) (4 bytes) — the latter under-checks the NTB header
  (V568).
- tusb: drop the redundant `ff_buf != NULL &amp;&amp; ff_bufsize &gt; 0` guard in
  tu_edpt_stream_init(); the early return already guarantees it (V560).
- midi_host: bounds-check idx in tuh_midi_itf_get_info() instead of the
  always-true `&amp;_midi_host[idx]` pointer (V560).
- examples: fully initialize resolutions_per_format / frame_num /
  interval_ms arrays instead of leaving trailing elements implicitly zero
  (V1009).

False positives suppressed at the cause:
- usbd/usbh: hide the weak dcd_deinit()/hcd_deinit() stubs from the
  analyzer with #ifndef PVS_STUDIO. PVS analyzes one TU at a time and
  binds the call to the always-false weak stub (it cannot model the
  linker selecting the port's strong definition), then reports the
  cleanup loop after TU_ASSERT(...deinit()) as unreachable (V779).

False positives suppressed locally (inline //-V or .pvsconfig):
- .pvsconfig: V501 (HID descriptor macros), V763 (rhport override),
  V785 (audio function-index switch), V1044 (hardware poll loops).
- inline //-V for config-dependent or intentional constructs: V512,
  V514-style contiguous clears, V547, V557, V560, V614, V619, V641,
  V1008, V1037, V1048, V1086.

Verified: all examples build for raspberry_pi_pico; ceedling test:all
passes (60/60); re-run of the CI-exact PVS invocation reports zero
TinyUSB-owned findings.
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'origin/master' into stm32c5</title>
<updated>2026-06-11T10:20:15Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-11T10:20:15Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=5145b67f7946763ca04954f5494bfa88eec2acad'/>
<id>urn:sha1:5145b67f7946763ca04954f5494bfa88eec2acad</id>
<content type='text'>
# Conflicts:
#	README.rst
</content>
</entry>
<entry>
<title>HIL: replace build.flags_on with named build variants (#3687)</title>
<updated>2026-06-11T01:16:43Z</updated>
<author>
<name>Ha Thach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-11T01:16:43Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=6f35e76667f4015ef429ace5730e20cc0037e042'/>
<id>urn:sha1:6f35e76667f4015ef429ace5730e20cc0037e042</id>
<content type='text'>
* test/hil: replace build.flags_on with named variant schema

Boards declare build variants as `variant: [{name, flags}]` instead of
`build.flags_on`. The variant `name` is the build dir (cmake-build-&lt;name&gt;) and
the HIL report row; `flags` is the raw CFLAGS string (-D...=1) injected via
CFLAGS_CLI. No `variant` =&gt; a single build named after the board.

- build.py: --build-name &lt;name&gt; (dir) + --cflag=&lt;token&gt; (raw CFLAGS, repeatable,
  =form survives the matrix's shell word-splitting); drop -f1/CFLAGS wrapping.
- hil_ci_set_matrix.py: emit one build arg per variant.
- hil_test.py: iterate variants; report row + build dir = variant name.
- hil_ci.sh: copy all cmake-build-&lt;board&gt;* dirs for -b runs.
- get_deps.py: accept (ignore) --build-name/--cflag from matrix args.
- tinyusb.json: migrate all 6 flags_on boards to variant.

* board_test: park CI build with busy spin instead of wfe</content>
</entry>
<entry>
<title>Merge pull request #3690 from hathach/claude/board-test-idle-park</title>
<updated>2026-06-10T11:04:54Z</updated>
<author>
<name>Ha Thach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-10T11:04:54Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=575a8fbcd0e5880791ea5f834649149a8f787d95'/>
<id>urn:sha1:575a8fbcd0e5880791ea5f834649149a8f787d95</id>
<content type='text'>
hil: park boards with idle board_test instead of erasing flash</content>
</entry>
<entry>
<title>Merge pull request #3657 from hathach/usbh-add-control-queue</title>
<updated>2026-06-01T05:42:03Z</updated>
<author>
<name>Ha Thach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-01T05:42:03Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=bbdb41995de6510b837ad239933e1823ca175314'/>
<id>urn:sha1:bbdb41995de6510b837ad239933e1823ca175314</id>
<content type='text'>
Add control transfer fifo for host stack</content>
</entry>
<entry>
<title>ultrareview nits: keep xfer_result table in sync, hoist blinky loop</title>
<updated>2026-06-01T03:05:17Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-01T03:05:17Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=7e0fcaa41ee9330274808d88e5211bdbe37511a4'/>
<id>urn:sha1:7e0fcaa41ee9330274808d88e5211bdbe37511a4</id>
<content type='text'>
- src/tusb.c: extend tu_str_xfer_result[] with "ABORTED" and "INVALID"
  to match the new enum size. Not reachable today (no HCD posts those
  values through hcd_event_xfer_complete), but keeps the enum/table
  invariant intact so future HCDs that surface ABORTED don't index OOB.

- examples/dual/dynamic_switch/src/main.c: apply the same while(1)
  hoist already done for cdc_task / print_devinfo_task to
  led_blinking_task. On OS_NONE the loop returned mid-iteration, which
  on first call could fire multiple back-to-back toggles while
  start_ms (initially 0) caught up to uptime.

Co-Authored-By: Claude Opus 4.7 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>esp32 build fixes</title>
<updated>2026-05-30T09:46:18Z</updated>
<author>
<name>HiFiPhile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-05-30T09:46:18Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=08381d44214135cc9ff9423de837cb466b6ad701'/>
<id>urn:sha1:08381d44214135cc9ff9423de837cb466b6ad701</id>
<content type='text'>
Signed-off-by: HiFiPhile &lt;admin@hifiphile.com&gt;
</content>
</entry>
<entry>
<title>dynamic_switch: hoist while(1) out for OS_NONE</title>
<updated>2026-05-29T17:52:22Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-05-29T17:52:22Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=a64eb336c4a8d3f9c160aa30b81033e3ad7227d8'/>
<id>urn:sha1:a64eb336c4a8d3f9c160aa30b81033e3ad7227d8</id>
<content type='text'>
Sonar flagged the loop body as executing only once on OS_NONE because
the OS_NONE branch returns inside the first iteration (main() drives
the task again). Make the while(1) conditional on RTOS so the OS_NONE
build is a straight-line function with no misleading loop.

Co-Authored-By: Claude Opus 4.7 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>midi2_host: silence IAR Pe550 for midi2_idx</title>
<updated>2026-05-29T17:46:16Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-05-29T17:46:16Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=fc933e341df29e2ab6fa62508d45a92c65a621fb'/>
<id>urn:sha1:fc933e341df29e2ab6fa62508d45a92c65a621fb</id>
<content type='text'>
The variable is set in mount/umount callbacks but not read elsewhere
in the example (rx_cb already receives idx as a parameter). IAR
treats Pe550 as an error under --warnings_are_errors. Tag it
TU_ATTR_UNUSED so the example still shows the pattern of tracking
the device index without erroring on unused-set.

Co-Authored-By: Claude Opus 4.7 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
