These instructions apply within app_libs/tinyusb-rw612/.
- This is a TinyUSB fork customized for the NXP FRDM-RW612 board.
- MCU: RW612 (
Cortex-M33) - USB controller: ChipIdea High-Speed
- Networking focus: lwIP integration with NCM rather than RNDIS for Windows compatibility
- RW612 BSP support lives in
hw/bsp/rw612/. - The build expects the parent repo layout to provide
drivers/,device/,CMSIS/, andstartup/. - Prefer RW612-focused examples such as
net_lwip_webserver,cdc_msc, andcdc_msc_freertos.
cd examples/device/cdc_msc
mkdir -p build && cd build
cmake -G Ninja -DBOARD=frdm_rw612 ..
ninjacd examples/device/cdc_msc
make BOARD=frdm_rw612 all- Debug:
-DCMAKE_BUILD_TYPE=DebugorDEBUG=1 - Logging:
-DLOG=2orLOG=2 - RTT logging:
-DLOGGER=rttorLOGGER=rtt - Root hub selection:
-DRHPORT_DEVICE=1orRHPORT_DEVICE=1
- Fetch dependencies with
python tools/get_deps.py rw612. - Run unit tests with
cd test/unit-test && ceedling test:all. - Run
pre-commit run --all-filesbefore finishing non-trivial changes when the environment supports it. - Build at least one relevant RW612 example after stack changes.
- C99, 2-space indentation, no tabs.
- No dynamic allocation.
- Defer ISR-originated work to non-ISR task context.
- Use snake_case for functions/variables and UPPER_CASE for macros/constants.
- Follow existing include ordering and style in touched files.
- If touching release automation, versioning, or generated docs, keep changes scoped and leave final release/commit steps for the maintainer unless explicitly asked.