Conversation
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.
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✅ 44 passed · ❌ 0 failed · ⚪ 8 skipped · blank not run
hfp.json✅ 44 passed · ❌ 0 failed · ⚪ 8 skipped · blank not run
tinyusb.json✅ 335 passed · ❌ 3 failed · ⚪ 12 skipped · blank not run
|
|
| target | .text | .rodata | .data | .bss | total | % diff |
|---|---|---|---|---|---|---|
| raspberrypi_cm4/cdc_msc | 57,180 → 57,372 (+192) | 680 → 4,584 (+3,904) | — | — | 57,860 → 61,956 (+4,096) | +7.1% |
| raspberry_pi_pico/cdc_msc | 18,696 → 18,960 (+264) | — | — | — | 19,572 → 19,836 (+264) | +1.3% |
| fomu/cdc_msc | 18,624 → 18,724 (+100) | — | — | — | 26,844 → 26,944 (+100) | +0.4% |
| ea4088_quickstart/msc_file_explorer | 32,568 → 32,668 (+100) | — | — | — | 33,152 → 33,252 (+100) | +0.3% |
| metro_m4_express/msc_file_explorer | 33,216 → 33,316 (+100) | — | — | — | 33,376 → 33,476 (+100) | +0.3% |
| ch32v103c_bluepill/cdc_msc | 14,164 → 14,232 (+68) | — | — | — | 22,724 → 22,792 (+68) | +0.3% |
| xmc4500_relax/cdc_msc | 17,420 → 17,484 (+64) | — | — | — | 43,088 → 43,216 (+128) | +0.3% |
| mm900evxb/cdc_msc | 23,508 → 23,604 (+96) | — | — | — | 32,408 → 32,504 (+96) | +0.3% |
| portenta_c33/msc_file_explorer | 35,685 → 35,789 (+104) | — | — | — | 35,849 → 35,953 (+104) | +0.3% |
| lpcxpresso1769/msc_file_explorer | 32,760 → 32,856 (+96) | — | — | — | 33,288 → 33,384 (+96) | +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 |
No description provided.