summaryrefslogtreecommitdiff
path: root/AGENTS.md
diff options
context:
space:
mode:
authorHiFiPhile <[email protected]>2026-03-01 15:36:21 +0100
committerHiFiPhile <[email protected]>2026-03-01 15:36:21 +0100
commit7da7d0725b4b791eaeda6b6a344932ec8c07feb1 (patch)
tree4573f70051e02d1a684e42df36ea533d2c68257c /AGENTS.md
parentbb944729f2ad39f2e497505e4562e0fd1e836f23 (diff)
parentbd1e79bc6cefbbbe981691c3a55e24cf25537301 (diff)
Merge remote-tracking branch 'tinyusb/master' into ncm_restart
Diffstat (limited to 'AGENTS.md')
-rw-r--r--AGENTS.md26
1 files changed, 24 insertions, 2 deletions
diff --git a/AGENTS.md b/AGENTS.md
index 73bf1f599..a5159aa4a 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -91,6 +91,22 @@ make BOARD=raspberry_pi_pico all
- Make: `make BOARD=raspberry_pi_pico all uf2`
- **List all targets** (CMake/Ninja): `ninja -t targets`
+## J-Link GDB Server + RTT Logging
+
+- Build with RTT logging enabled (example):
+ `cd examples/device/cdc_msc && make BOARD=stm32h743eval LOG=2 LOGGER=rtt all`
+- Flash with J-Link:
+ `cd examples/device/cdc_msc && make BOARD=stm32h743eval LOG=2 LOGGER=rtt flash-jlink`
+- Launch GDB server (keep this running in terminal 1):
+ `JLinkGDBServer -device stm32h743xi -if SWD -speed 4000 -port 2331 -swoport 2332 -telnetport 2333 -RTTTelnetPort 19021 -nogui`
+- Read RTT output (terminal 2):
+ `JLinkRTTClient`
+- Capture RTT to file (optional):
+ `JLinkRTTClient | tee rtt.log`
+- For non-interactive capture:
+ `timeout 20s JLinkRTTClient > rtt.log`
+- Use the board-specific `JLINK_DEVICE` from `hw/bsp/*/boards/*/board.mk` if you are not using `stm32h743eval`.
+
## Unit Testing
- Install Ceedling: `sudo gem install ceedling`
@@ -101,9 +117,15 @@ make BOARD=raspberry_pi_pico all
## Hardware-in-the-Loop (HIL) Testing
+- `-B examples` means `examples` is the parent folder that contains multi-board build outputs such as `examples/cmake-build-BOARD_NAME/...`
+- Select config file before running HIL tests:
+ - if GitHub Actions self-hosted runner service is running, use `tinyusb.json`
+ - otherwise use `local.json`
+ - example:
+ `HIL_CONFIG=$( (systemctl list-units --type=service --state=running 2>/dev/null; systemctl --user list-units --type=service --state=running 2>/dev/null) | grep -q 'actions\.runner' && echo tinyusb.json || echo local.json )`
- Run tests on actual hardware, one of following ways:
- - test a specific board `python test/hil/hil_test.py -b BOARD_NAME -B examples local.json`
- - test all boards in config `python test/hil/hil_test.py -B examples local.json`
+ - test a specific board `python test/hil/hil_test.py -b BOARD_NAME -B examples $HIL_CONFIG`
+ - test all boards in config `python test/hil/hil_test.py -B examples $HIL_CONFIG`
- In case of error, enabled verbose mode with `-v` flag for detailed logs. Also try to observe script output, and try to
modify hil_test.py (temporarily) to add more debug prints to pinpoint the issue.
- Requires pre-built (all) examples for target boards (see Build Examples section 2)