diff options
| author | hathach <[email protected]> | 2025-11-22 18:26:43 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2025-11-26 13:54:04 +0700 |
| commit | 67ba8eab2e346dc13cce3d0813de6370cb3cfa48 (patch) | |
| tree | 5983e65b4c1b0437a15d8abb52138594cc9b6a77 /CLAUDE.md | |
| parent | b98127fba2b198130eb8868defcf117c6b5ea231 (diff) | |
focus on cdc test, write lots more data, each trunk is 64 or less since examples having minimum 64 bytes fifo (fs)
Diffstat (limited to 'CLAUDE.md')
| -rw-r--r-- | CLAUDE.md | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 100644 index 6c6baa246..000000000 --- a/CLAUDE.md +++ /dev/null @@ -1,78 +0,0 @@ -# TinyUSB Development Guide - -## Build Commands - -### CMake Build System (Preferred) -CMake with Ninja is the preferred build method for TinyUSB development. - -- Build example with Ninja: - ```bash - cd examples/device/cdc_msc - mkdir build && cd build - cmake -G Ninja -DBOARD=raspberry_pi_pico .. - ninja - ``` -- Debug build: `cmake -G Ninja -DBOARD=raspberry_pi_pico -DCMAKE_BUILD_TYPE=Debug ..` -- With logging: `cmake -G Ninja -DBOARD=raspberry_pi_pico -DLOG=2 ..` -- With RTT logger: `cmake -G Ninja -DBOARD=raspberry_pi_pico -DLOG=2 -DLOGGER=rtt ..` -- Flash with JLink: `ninja cdc_msc-jlink` -- Flash with OpenOCD: `ninja cdc_msc-openocd` -- Generate UF2: `ninja cdc_msc-uf2` -- List all targets: `ninja -t targets` - -### Make Build System (Alternative) -- Build example: `cd examples/device/cdc_msc && make BOARD=raspberry_pi_pico all` -- For specific example: `cd examples/{device|host|dual}/{example_name} && make BOARD=raspberry_pi_pico all` -- Flash with JLink: `make BOARD=raspberry_pi_pico flash-jlink` -- Flash with OpenOCD: `make BOARD=raspberry_pi_pico flash-openocd` -- Debug build: `make BOARD=raspberry_pi_pico DEBUG=1 all` -- With logging: `make BOARD=raspberry_pi_pico LOG=2 all` -- With RTT logger: `make BOARD=raspberry_pi_pico LOG=2 LOGGER=rtt all` -- Generate UF2: `make BOARD=raspberry_pi_pico all uf2` - -### Additional Options -- Select RootHub port: `RHPORT_DEVICE=1` (make) or `-DRHPORT_DEVICE=1` (cmake) -- Set port speed: `RHPORT_DEVICE_SPEED=OPT_MODE_FULL_SPEED` (make) or `-DRHPORT_DEVICE_SPEED=OPT_MODE_FULL_SPEED` (cmake) - -### Dependencies -- Get dependencies: `python tools/get_deps.py rp2040` -- Or from example: `cd examples/device/cdc_msc && make BOARD=raspberry_pi_pico get-deps` - -### Testing -- Run unit tests: `cd test/unit-test && ceedling test:all` -- Run specific test: `cd test/unit-test && ceedling test:test_fifo` - -### Pre-commit Hooks -Before building, it's recommended to run pre-commit to ensure code quality: -- Run pre-commit on all files: `pre-commit run --all-files` -- Run pre-commit on staged files: `pre-commit run` -- Install pre-commit hook: `pre-commit install` - -## Code Style Guidelines -- Use C99 standard -- Memory-safe: no dynamic allocation -- Thread-safe: defer all interrupt events to non-ISR task functions -- 2-space indentation, no tabs -- Use snake_case for variables/functions -- Use UPPER_CASE for macros and constants -- Follow existing variable naming patterns in files you're modifying -- Include proper header comments with MIT license -- Add descriptive comments for non-obvious functions -- When including headers, group in order: C stdlib, tusb common, drivers, classes -- Always check return values from functions that can fail -- Use TU_ASSERT() for error checking with return statements - -## Project Structure -- src/: Core TinyUSB stack code -- hw/: Board support packages and MCU drivers -- examples/: Reference examples for device/host/dual -- test/: Unit tests and hardware integration tests - -## Release Process -To prepare a new release: -1. Update the `version` variable in `tools/make_release.py` to the new version number -2. Run the release script: `python tools/make_release.py` - - This will update version numbers in `src/tusb_option.h`, `repository.yml`, and `library.json` - - It will also regenerate documentation -3. Update `docs/info/changelog.rst` with release notes -4. Commit changes and create release tag |
