Conversation
Size Difference ReportBecause TinyUSB code size varies by port and configuration, the metrics below represent the averaged totals across all example builds. Note: If there is no change, only one value is shown. Changes >1% in size
Changes <1% in size
No changes
|
Hardware-in-the-loop (HIL) Test Reporthfp-iar✅ 48 passed · ❌ 0 failed · ⚪ 8 skipped · blank not run
hfp.json✅ 48 passed · ❌ 0 failed · ⚪ 8 skipped · blank not run
tinyusb-esp.json✅ 7 passed · ❌ 1 failed · ⚪ 16 skipped · blank not run
tinyusb.json
✅ 320 passed · ❌ 18 failed · ⚪ 60 skipped · blank not run
|
|
| target | .text | .rodata | .data | .bss | total | % diff |
|---|---|---|---|---|---|---|
| raspberry_pi_pico/cdc_msc | 18,464 → 18,728 (+264) | — | — | — | 19,340 → 19,604 (+264) | +1.4% |
| fomu/cdc_msc | 18,852 → 18,952 (+100) | — | — | — | 27,072 → 27,172 (+100) | +0.4% |
| xmc4500_relax/cdc_msc | 17,612 → 17,676 (+64) | — | — | — | 43,472 → 43,600 (+128) | +0.3% |
| mm900evxb/cdc_msc | 23,772 → 23,868 (+96) | — | — | — | 32,672 → 32,768 (+96) | +0.3% |
| portenta_c33/msc_file_explorer | 35,733 → 35,837 (+104) | — | — | — | 35,897 → 36,001 (+104) | +0.3% |
| lpcxpresso1769/msc_file_explorer | 32,784 → 32,880 (+96) | — | — | — | 33,312 → 33,408 (+96) | +0.3% |
| ch32v203c_r0_1v0/msc_file_explorer | 40,164 → 40,280 (+116) | — | — | — | 40,592 → 40,708 (+116) | +0.3% |
| ea4357/msc_file_explorer | 36,340 → 36,444 (+104) | — | — | — | 36,998 → 37,102 (+104) | +0.3% |
| lpcxpresso18s37/msc_file_explorer | 35,024 → 35,124 (+100) | — | — | — | 35,626 → 35,726 (+100) | +0.3% |
| ch32v103c_bluepill/cdc_msc | 14,304 → 14,368 (+64) | — | — | — | 22,864 → 22,928 (+64) | +0.3% |
|
@claude review |
|
Claude finished @hathach's task in 3m 55s —— View job Code Review: PR #3744 — Merge noOS and FreeRTOS examples
SummaryGood cleanup PR. Merging paired no-OS / FreeRTOS examples into unified directories eliminates ~5300 lines of near-duplicate code with a clean, consistent Issues1. Stale README references to deleted
|
| File | Stale reference |
|---|---|
examples/device/cdc_msc/README.md:53 |
examples/device/cdc_msc_freertos |
examples/device/hid_composite/README.md:50 |
examples/device/hid_composite_freertos |
examples/device/audio_test/README.md:50 |
examples/device/audio_test_freertos |
examples/device/audio_4_channel_mic/README.md:52 |
examples/device/audio_4_channel_mic_freertos |
examples/device/midi_test/README.md:45 |
examples/device/midi_test_freertos |
Each of these should say something like: "Build this example with RTOS=freertos / -DRTOS=freertos for the FreeRTOS variant." — the same language used in cdc_msc_hid/README.md:52, which was updated correctly. Fix this →
2. AGENTS.md / CLAUDE.md reference cdc_msc_freertos (should fix)
Both AGENTS.md:53–56 and .claude-pr/CLAUDE.md:53–56 still use cdc_msc_freertos as the Espressif IDF example. That directory is gone — the example is now cdc_msc (built with idf.py -DBOARD=... build in examples/device/cdc_msc). Fix this →
3. TODO .md files committed to source tree (consider removing)
Three tracking artifacts were committed:
examples/device/freertos_noos_merge_todo.mdexamples/host/freertos_noos_merge_todo.mdexamples/device/uac2_speaker_fb/freertos_merge_todo.md
All their items are checked off. These will rot after merge. If they're there to help reviewers follow the work, that's fine for now — but they should probably be removed before merging to avoid confusion.
4. HIL failures on mimxrt1064_evk — needs triage
Three tests fail: cdc_msc_hid, msc_file_explorer, device_info. These examples were all touched in this PR. It would be worth confirming whether these were already failing on master before this branch, or whether the merges introduced a regression. The device_info failure is notable because that example has nothing to do with the RTOS merge.
Nits
-
msc_disk.c:63:void msc_disk_init(void);is a forward declaration inside the same.cfile where the function is defined below. This is redundant since the only external user (main.c) already hasextern void msc_disk_init(void);. Harmless but unnecessary. -
audio_test/src/main.c:455:USBD_STACK_SIZEis defined as((4 * configMINIMAL_STACK_SIZE / 2) * (CFG_TUSB_DEBUG ? 2 : 1)). The4/2is an unusual way to write2. The result is2×minimal(non-debug) or4×minimal(debug), which is correct — just an odd expression.
What's good
- Consistent pattern: every merged example uses the same
#if CFG_TUSB_OS == OPT_OS_FREERTOSstructure with afreertos_init()+usb_*_task()block. Easy to follow and extend. rtos:prefix in skip.txt is a clean new mechanism for RTOS-conditional build filtering.- Async IO queue in
msc_disk.c: the single-item queue withTUD_MSC_RET_ASYNCreturn is correct — the stack won't issue a new I/O untiltud_msc_async_io_done()is called, so the queue never overflows. - Static allocation (
configSUPPORT_STATIC_ALLOCATION) maintained in all merged examples. - ESP32 platform handled consistently:
app_main()wrapper +#ifdef ESP_PLATFORMguards. - Net reduction: -5344 lines of near-duplicate code.
|
this is lots of changes :D, will review this after the release :D |
Default Espressif builds to FreeRTOS, discover ESP-IDF examples from component metadata, and make skip filtering RTOS-aware.
Merge paired FreeRTOS/no-OS device examples into their base directories.
Merge paired host FreeRTOS/no-OS examples into their base directories.
No description provided.