CMake with Ninja is the preferred build method for TinyUSB development.
cd examples/device/cdc_msc mkdir build && cd build cmake -G Ninja -DBOARD=raspberry_pi_pico .. ninja
cmake -G Ninja -DBOARD=raspberry_pi_pico -DCMAKE_BUILD_TYPE=Debug ..cmake -G Ninja -DBOARD=raspberry_pi_pico -DLOG=2 ..cmake -G Ninja -DBOARD=raspberry_pi_pico -DLOG=2 -DLOGGER=rtt ..ninja cdc_msc-jlinkninja cdc_msc-openocdninja cdc_msc-uf2ninja -t targetscd examples/device/cdc_msc && make BOARD=raspberry_pi_pico allcd examples/{device|host|dual}/{example_name} && make BOARD=raspberry_pi_pico allmake BOARD=raspberry_pi_pico flash-jlinkmake BOARD=raspberry_pi_pico flash-openocdmake BOARD=raspberry_pi_pico DEBUG=1 allmake BOARD=raspberry_pi_pico LOG=2 allmake BOARD=raspberry_pi_pico LOG=2 LOGGER=rtt allmake BOARD=raspberry_pi_pico all uf2RHPORT_DEVICE=1 (make) or -DRHPORT_DEVICE=1 (cmake)RHPORT_DEVICE_SPEED=OPT_MODE_FULL_SPEED (make) or -DRHPORT_DEVICE_SPEED=OPT_MODE_FULL_SPEED (cmake)python tools/get_deps.py rp2040cd examples/device/cdc_msc && make BOARD=raspberry_pi_pico get-depscd test/unit-test && ceedling test:allcd test/unit-test && ceedling test:test_fifoBefore building, it's recommended to run pre-commit to ensure code quality:
pre-commit run --all-filespre-commit runpre-commit installTo prepare a new release:
version variable in tools/make_release.py to the new version numberpython tools/make_release.pysrc/tusb_option.h, repository.yml, and library.jsondocs/info/changelog.rst with release notes