summaryrefslogtreecommitdiff
path: root/.gitignore
AgeCommit message (Collapse)Author
6 daysAdd RTT console/capture tooling (tools/rtt.py), rtt skill, and HIL harness ↵Ha Thach
support (#3853) Promote SEGGER RTT from an inline debugging technique to a standalone skill backed by one stdlib-only implementation in tools/rtt.py: a CLI and importable module for console/capture over J-Link (RTTTelnetPort) and OpenOCD (rtt server) probes, with probe selection by serial or VID:PID, control-block address via --elf or --addr, bidirectional console, post-mortem ring dump, and --reset-before-attach for boot-time capture. The HIL harness reads a board's console over RTT when its probe has no VCOM ("logger": "rtt" plus a LOGGER=rtt variant define), covering device_info, pool-check aliveness, and CI wiring. Validated on 22 boards across both backends; 26 unit tests run in pre-commit.
9 daysREADME sponsor list and triage labels (#3842)Ha Thach
14 dayshil: run every board in one hil_test.py and hand results across as JSONhathach
hil-validate ran one hil-operator per board. That parallelizes at the wrong layer: hil_test.py already schedules boards across host controllers and budgets concurrent flashes and usbtest batteries per controller (FLASH_PARALLEL/USBTEST_PARALLEL), and those permits live in one process - N parallel runs multiply the budget onto the same uPD720201 cards for no wall-clock gain over one run that already parallelizes. The workflow now spawns ONE operator with every board as repeated -b. The operator no longer retypes the report table. Four consecutive max-effort review rounds found ~15 defects in this file and every one was in reconstructing board identity from transcribed prose: report rows are named per VARIANT (nanoch32v203 only ever produces -fsdev/-usbfs rows), a variant need not start with its board's name, lock contention is a `board-locked` cell rather than a phrase, and each fix introduced the next round's bug - including a fake-green test that asserted an invariant with the one input shape that could not break it. The new helper test/hil/helper/hil_summary.py does the join where the roster lives and emits one machine verdict per board ({board, ran, pass, locked, detail}); the operator returns that JSON verbatim plus `wedged`, the only field it authors, and the workflow reads fields, never parses a string. Its cell classifier mirrors hil_test.py's own tally exactly: failures are always marked ('fail' or a ❌ prefix, TestFail's contract), everything unmarked is a pass - a passing test may return a plain metric cell like '13443 KB/s', and the mirrored rule is what keeps a green table from becoming a red verdict. hil_ci.sh kept only the LAST -b, so multi-board remote runs staged one board's binaries and every other board died on the rig after its lock and flash slot were spent. It now parses every -b spelling argparse accepts (with the -bt arms ordered first, longest-match, so the <config>.failed retry form is never read as a board named "t..."), pre-flights roster membership and build dirs for ALL boards before anything is wiped or staged, warns per declared variant with no build dir (which hil_test.py would silently green-skip), forwards HIL_* knobs as export lines in one %q word the remote evals ('; '-joined so it round-trips under dash - an authorized HIL_NO_BOARD_LOCK force must not silently no-op), keeps HIL_REPORT_DIR local because the copy-backs look in REMOTE_DIR, and copies hil_report.json and the .failed re-run spec back beside the markdown, deleting stale local copies first so a green run cannot leave last run's spec looking current. Retries preserve the fleet: the documented path is the <config>.failed spec, which already begins with --accumulate; a fresh scoped re-run would unlink the report and collapse the whole-fleet table to the retried boards alone. The risky logic is executable, not argued about: .claude/workflows/test-hil-validate.mjs pins the lookup/verdict helpers and runs in pre-commit (hil-validate-logic); nine staging tests drive hil_ci.sh through an ssh stub that models the real thing (argv joined into one string the remote re-splits, heredoc on stdin - the naive echo-stub passed while the feature was broken); and deliberate mutations of the verdict logic are all caught. Validated on the rig: a 2-board run (usbtest 30/30 on both; the pre-fix classifier, replayed against that run's real report, fails the fully-green stm32f723disco on its two passing '13443 KB/s' cells), the .failed --accumulate retry (merged report kept every earlier row), and a 10-run soak over random subsets of a 22-board pool - 43 board-slots, every failure signature matched pre-existing CI state or known flake, zero tooling failures, no locks left behind.
2026-07-25Enable APM32F0 dependency fetching and CIJie Feng
2026-07-19add py32f0 supportJie Feng
2026-07-17skill: add usb-target-debug — device-side capture & debug on the HIL righathach
Completes the debugging toolset (usbmon = what the host exchanged, usb-debug = why the host acted, usb-sniffer = what crossed the wire): TU_LOG/RTT capture, per-probe GDB autopsy without reset, RAM ring-buffer event trace, J-Link DWT_PCSR PC-sampling, dual-side capture posture, and board-lock rig discipline. Includes the implementation plan it executes. Hard-won warnings baked in from real bring-up sessions: volatile ring buffers vs -Os dead-store elimination, RTT NO_BLOCK_SKIP post-mortem limits (no overwrite mode exists), DHCSR validity anchors for register snapshots, release-lock-before-hil_test, and that a marginal just-recabled link can fake a deterministic firmware bug. Also ignore .claude/worktrees/.
2026-06-29docs: add build-doc tooling and a README for every examplehathach
Documentation tooling: - Add the `build-doc` skill and `tools/build_doc.py` wrapper for local Sphinx builds (clean / -W / open). - Enable Markdown (MyST) in conf.py and auto-collect examples/{device,host,dual}/*/README.md into a 3-level Examples nav (Examples > Device/Host/Dual > example), noting each page's source location and normalizing headings to a single H1. - Remove the stale `.claude/commands/build-doc.md`; point the AGENTS.md Documentation section at the skill. Example docs: - Add a README.md for every device/host/dual example: what it does, USB interface table, notable tusb_config.h settings, generic CMake + Make build steps, and how to try it. - Fold each *_freertos variant into its base README, noting the FreeRTOS source path and any RTOS-specific behavior. Generated docs/examples/ output is git-ignored. Builds clean with `sphinx-build -W`. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-11Merge pull request #3695 from hathach/claude/adoring-pasteur-kbaFaHa Thach
Add pvs skill to run PVS-Studio analysis for a board
2026-06-11pvs skill: mirror CI --security-related-issues flag and ignore SARIF outputClaude
- Add --security-related-issues to run_pvs.sh and AGENTS.md analyze commands so local runs reproduce the CI SAST classification (static_analysis.yml). - Ignore *.sarif so a successful run leaves the worktree clean. Addresses Codex review on #3695.
2026-06-08test/hil: accumulate HIL report across re-runs; post as sticky PR commenthathach
hil_test.py persists results in a hil_report.json sidecar and regenerates hil_report.md from it. A full run starts fresh; a re-run (--skip-board / -bt, i.e. the .skip file) merges into the existing report so already-passed boards/tests are preserved while only re-run cells update. The report dir is configurable via HIL_REPORT_DIR. build.yml: each HIL rig writes the report to a workspace-sibling dir that survives the per-attempt workspace clean, and uploads it as an artifact. A new hil-report job merges the rigs' reports into one sticky PR comment (marocchino) with one table per rig. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-08test/hil: report board x test results as a markdown matrixhathach
hil_test.py now writes hil_report.md and prints it to stdout: rows are boards, columns are tests (bare example names), cells are pass/fail/skip. test_example returns a per-test status, test_board collects a board x test grid (one row per flags-on variant), and main() renders an aligned table. A missing binary counts as skipped. hil_ci.sh copies the report back from the remote after a run; hil_report.md is gitignored. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-05-03Merge branch 'master' into copilot/upgrade-net-lwip-webserver-descriptorsZixun LI
2026-04-29Add `code-size` skill and integrate `metrics_compare_base.py` toolhathach
- Introduced a `code-size` skill under `.claude/skills` for evaluating TinyUSB code size changes between the base branch and current branch. - Added `metrics_compare_base.py`, automating code size comparison with granular options for examples, boards, and CI-wide runs. - Updated `AGENTS.md` to include quick references and usage guidance for the new feature.
2026-04-23Merge upstream master into net descriptor-based ep_size branchcopilot-swe-agent[bot]
- Resolve .gitignore conflict: incorporate upstream's .worktrees entry and expand dependency path patterns to cover all tools/get_deps.py fetched dirs (lib/, tools/linkermap, tools/uf2, hw/mcu/*) instead of listing only a few - Auto-merged upstream changes: build system cleanups, BSP updates, portability fixes, new boards (nrf54lm20dk, stm32h743_weact), fatfs relocation, and many other upstream improvements - Net driver changes (ecm_rndis_device.c, ncm_device.c, net_device.h, usbd.h, usb_descriptors.c) retain our PR's descriptor-based ep_size approach as our branch takes precedence Co-authored-by: HiFiPhile <[email protected]>
2026-04-17fix some Wconversion warningshathach
2026-03-22remove accidentally committed submodule entriescopilot-swe-agent[bot]
2025-12-10change tu_fifo_clear()/tu_edpt_stream_clear() from return bool to voidhathach
2025-12-01add linkermap to deps and linkermap tagethathach
2025-10-15fix more warningshathach
2025-09-04Create comprehensive GitHub Copilot instructions and fix pre-commit ↵Copilot
configuration for TinyUSB (#3234) * Initial plan * Create comprehensive GitHub Copilot instructions for TinyUSB Co-authored-by: hathach <[email protected]> * Remove accidentally committed dependencies, use tools/get_deps.py instead Co-authored-by: hathach <[email protected]> * Fix .gitignore: ignore vendor/ directory not ceedling script Co-authored-by: hathach <[email protected]> * Revert .gitignore changes and add README_processed.rst Co-authored-by: hathach <[email protected]> * Remove README_processed.rst and revert ceedling file permissions Co-authored-by: hathach <[email protected]> * Changes before error encountered Co-authored-by: hathach <[email protected]> * Remove redundant manual validation step, keep only pre-commit and build validation Co-authored-by: hathach <[email protected]> * fix pre-commit --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: hathach <[email protected]>
2025-03-15Update gitignore.HiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2025-02-09Add CMake presets.HiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2024-11-30Update .gitignoreHiFiPhile
2024-10-15RP2040 Compile Errorspschatzmann
2024-07-10enable full 224KB flash for ch32v203 with flash enhanced read mode in ↵hathach
SystemInit (better with startup). add flash with wlink-rs
2024-05-15add CH32V20x USB OTG/FS driverMatthew Tran
2024-04-27Update .gitignore.HiFiPhile
2023-10-06feat(ch32f20x): add support of ch32f20xdenis.krasutski
2023-06-20add etm trace for mcb1800hathach
clean up other ide setting
2023-04-03skip .ideahathach
2023-03-29adding more cmake supporthathach
2023-03-11Merge branch 'master' into renesas-rahathach
2023-03-10add dependencies repo to git ignorehathach
2022-06-02add .vscode to gitignoreRafael Silva
Signed-off-by: Rafael Silva <[email protected]>
2022-01-05Unify skip and only logic for build scriptsScott Shawcroft
And switch to a single file that can include mcu, family or board.
2021-04-16Added support for Black Magic Probe (#787)Dima Barsky
* Added flash-bmp and debug-bmp targets; added .gdb_history to .gitignore * Added the BMP variable, defaults to /dev/ttyBmpGdb The name of the BMP device is different on different systems. On Linux (after installing the recommended udev rules) it'll be /dev/ttyBmpGdb, but the user should be able to override it. * Update rules.mk
2021-03-23remove ses project since it is all broken and occupies spacehathach
2021-02-09update hid_composite_freertos examplehathach
2020-04-18try build with dockerhathach
2020-04-16house keepinghathach
2019-09-15Covert macros to inline functions.Nathan Conrad
2019-09-09Ignore build artifact files.Nathan Conrad
2019-07-26gitignorehathach
2019-06-10docs clean uphathach
2019-06-10update fifo testhathach
2019-06-10remove unity as submodulehathach
2019-06-06add TU_ prefix to compiler ATTR to prevent name conflict with applicationhathach
2019-05-03reduce travis make thread to 2hathach
2018-11-25Introduce a Makefile for the OS_NONE device exampleScott Shawcroft
It currently supports the SAMD21 and SAMD51 only. More will be added later.
2018-11-22refractor device composite freertos seshathach