Commit Graph

5537 Commits

Author SHA1 Message Date
Zhou Xiao adcf6cb75f feat(ble_log_console): add CLI entry point, build scripts, and docs
- Click-based CLI entry point (console.py) with --port, --baudrate,
  --log-dir options and interactive Launch Screen when --port omitted
- Deprecation warning for --output CLI flag
- 'ls' subcommand to list saved capture files
- PyInstaller build scripts (build.sh, build.bat, build_exe.py)
- Convenience run scripts (run.sh, run.bat)
- README rewrite with installation, usage, architecture docs, and
  troubleshooting guide
- User guides in English and Chinese
- Remove old single-file ble_log_console.py
- Register new scripts in executable-list.txt
2026-04-07 11:49:31 +08:00
Zhou Xiao e40fd6753d feat(ble_log_console): add Textual frontend and app wiring
TUI frontend built on Textual with thread-safe backend integration:

- Launch screen with port/baud/log-dir selection and auto-refresh
- Log view with scrollable RichLog and color-coded write methods;
  Rich markup escaped to prevent crash on bracket characters
- Stats screen split into two tables by time base:
  - Firmware Counters (since chip init): Written and Buffer Loss
  - Console Measurements (since console start): Average Throughput
    and Peak Write — each with separate frames and bytes sub-columns
  - Column widths constrained with min_width/max_width for stable layout
  - Division-by-zero guard when peak window is zero
- Shortcut screen overlay
- Status panel with sync state, checksum mode, and transport metrics;
  speed display uses named UART_BITS_PER_BYTE constant
- Main app wiring: UART reader thread with threading.Lock for serial
  access, frame parser pipeline, stats emission via StatsUpdated
  messages (including funnel snapshots via public accessor for
  thread-safe delivery), BackendStopped message for disconnect
- BackendStopped posted on open_serial failure (prevents stuck status)
- Select.BLANK guard for baud rate in launch screen
- Explicit None guards replace asserts in backend worker
- Wall-clock burst tracking for REDIR frames (no chip-side timestamp)
- SN gap alerts (FrameLossDetected) and traffic spike notifications
2026-04-07 11:44:55 +08:00
Zhou Xiao cbbc495825 feat(ble_log_console): add backend with frame parser, stats, and data models
Modular backend for the BLE log console rewrite:

- Frame parser with sync state machine and checksum auto-detection
  (4 modes: XOR/Sum x Full/Header-only); handles incomplete frames
  during re-sync search when previously synced
- Internal frame decoder (INIT_DONE, ENH_STAT, FLUSH, INFO)
- Data models: SourceCode, FrameByteCount, FunnelSnapshot, LossType
- Stats package with composition-root StatsAccumulator orchestrating:
  - TransportMetrics (RX bytes, lifetime-average throughput)
  - FirmwareLossTracker / FirmwareWrittenTracker (ENH_STAT deltas
    with first-report absolute value initialization)
  - SNGapTracker (sliding window reorder-tolerant SN gap detection)
  - PeakBurstTracker (per-source sliding window burst density)
  - TrafficSpikeDetector (wire utilization spike detection)
  - Wall-clock burst tracker for non-timestamped sources (REDIR)
- Torn-read guard on ENH_STAT reports (baudrate-based plausibility)
  with prev-state update on discard to prevent cascading drops
- Console-local metrics (TransportMetrics, PeakBurstTracker) preserved
  across INIT_DONE resets; only ENH_STAT-coupled components reset
- UART transport with port validation and exclusive serial access
- Comprehensive test suite (17 test files, 223 tests)
2026-04-07 11:44:49 +08:00
Erhan Kurubas b0143fe36d feat(tools): update openocd version to v0.12.0-esp32-20260304 2026-03-12 08:56:09 +01:00
Alexey Gerenkov 3e64bdb5eb Merge branch 'fix/coredump_test_tcb_corrupted_v5.2' into 'release/v5.2'
test(espcoredump): fix test for corrupted TCB handling in coredump (v5.2)

See merge request espressif/esp-idf!45330
2026-02-05 18:39:25 +08:00
Erhan Kurubas 8e0bf353bf ci(panic): add retry logic to espcoredump subprocess call 2026-01-21 08:35:12 +03:00
Erhan Kurubas 9fb2b0dc07 test(panic): improve stack dump capture to return full hex content 2026-01-21 08:15:47 +03:00
Ferdinand Bachmann 057016d596 fix(cmake): Fix "IMPORTED_LOCATION not set for imported target" errors
esp-idf uses imported targets as dummy targets that are never linked.
Previous CMake versions would ignore these and not error on unset
IMPORTED_LOCATION if they are never actually linked. CMake 4.2 and newer
errors during codemodel-v2 api queries when imported targets are missing
IMPORTED_LOCATION, so set a dummy location that would error when
actually linked, which fixes the error during api queries.

Closes https://github.com/espressif/esp-idf/pull/18103
2026-01-16 12:12:02 +01:00
Frantisek Hrbata 70eadf41f7 fix(ldgen): correctly place symbols generated by compiler during IPA
As part of inter-procedural optimizations (IPA), the compiler may
perform tasks such as constant propagation for functions. This involves
generating a specialized version of a given function with a new symbol
name that includes a suffix. For example, during constant propagation,
the compiler might create a specialized version named
`spiflash_start_core.constprop.0` for the `spiflash_start_core`
function. Additionally, the compiler may generate multiple clones of a
single function. Currently, when ldgen performs symbol placement, it
does not account for these compiler-generated functions, leading to
their incorrect or unexpected placement in memory (markers).

Consider a linker fragment with:

```
[mapping:spi_flash]
archive: libspi_flash.a
entries:
    esp_flash_api: spiflash_start_core (noflash)
```

The `spiflash_start_core` function should be placed in IRAM. However,
the compiler might generate an optimized version of this function with a
`.constprop.0` suffix, resulting in a
`.text.spiflash_start_core.constprop.0` input section. Currently, ldgen
does not handle this situation, leading to misplaced symbols.

Since `.` is not allowed in C identifiers, it should be safe to consider
all input sections for a symbol with any `.` suffix as representing that
symbol. This means considering the symbol suffixes should not cause any
ambiguity.

This change automatically places all input sections, including those
with possible suffixes for a given symbol, into the specified memory. In
other words, specifying a function name like `spiflash_start_core` in a
linker fragment automatically includes input section names matching
`spiflash_start_core(\..*)?$`.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-01-14 15:50:28 +01:00
Erhan Kurubas 387a5fd36a feat(tools): update openocd version to v0.12.0-esp32-20251215 2025-12-18 00:21:04 +08:00
Jan Beran 4c7bcbaee4 fix: set sufficient buffer limit for idf.py confserver 2025-12-16 10:09:03 +01:00
Chen Yudong 844f5ce69a ci: rename wifi_two_dut to two_duts 2025-12-03 19:00:23 +08:00
Marek Fiala 83fd0e1e2b feat(tools): Updated ccache 4.11.2 -> 4.12.1
Closes https://github.com/espressif/esp-idf/issues/17756
2025-11-20 14:25:42 +01:00
Marek Fiala 21e56767a8 refactor(tools): test_idf_tools.py ruff changes 2025-11-20 14:22:34 +01:00
Marius Vikhammer 8af01ba392 ci(interrupts): fixed NMI intr status in intr dump
Test case was not correctly updated after NMI was made available for users
2025-11-14 14:04:46 +08:00
Island 60698fc172 Merge branch 'feat/ble_log_v2_with_log_compression_v5.2' into 'release/v5.2'
Feat/ble log v2 with log compression (v5.2)

See merge request espressif/esp-idf!42583
2025-10-17 16:21:52 +08:00
Rahul Tank fa6bb99bb0 fix(nimble): Added CS service support 2025-10-14 21:36:11 +05:30
luoxu 02589e8974 feat(ble): add libraries related to ble log compression 2025-10-14 16:49:04 +08:00
Fu Hanxi 7705af4168 ci: use merged result commit in build_docker job
also change to shanghai runners
2025-10-09 13:49:16 +02:00
Jiang Jiang Jian 9599b68578 Merge branch 'feat/uart_dma_support_v5.2' into 'release/v5.2'
feat(uart): uart dma support for internal usage on v5.2

See merge request espressif/esp-idf!41671
2025-10-09 10:53:45 +08:00
Jiang Jiang Jian 12d4b517b6 Merge branch 'feature/update-gdb-to-16.3_20250913_v5.2' into 'release/v5.2'
feat(tools): update gdb version to 16.3_20250913 (v5.2)

See merge request espressif/esp-idf!41971
2025-10-09 10:41:08 +08:00
Marius Vikhammer 9ef24e3e2a change(version): Update version to 5.2.6 2025-09-30 09:15:16 +08:00
C.S.M 7d3447ad48 feat(uhci): Add uhci (uart-dma) support on current chips 2025-09-25 10:48:31 +08:00
Alexey Lapshin 5963fb0a4b feat(tools): update gdb version to 16.3_20250913 2025-09-17 16:25:05 +07:00
Alexey Gerenkov 97c59d7c08 Merge branch 'feature/update-toolchain-to-esp-13.2.0_20250707_5.2' into 'release/v5.2'
feat(tools): update toolchain version to esp-13.2.0_20250707

See merge request espressif/esp-idf!41146
2025-08-15 08:08:26 +08:00
Alexey Lapshin c541513749 feat(tools): update toolchain version to esp-13.2.0_20250707 2025-08-09 12:14:28 +07:00
Alexey Lapshin ee62de1864 feat(tools): update gdb version to 16.2_20250324 2025-08-06 17:13:17 +08:00
Roland Dobai a884d70bc1 Merge branch 'feat/ide_requirements_v5.2' into 'release/v5.2'
feat(tools/requirements): Add IDE requirements files (v5.2)

See merge request espressif/esp-idf!40943
2025-08-01 07:42:13 +02:00
Jiang Jiang Jian b96058c973 Merge branch 'fix/xtensa_nmi_v5.2' into 'release/v5.2'
fix(esp_hw_support): make the NMI interrupts available for the main application (backport v5.2)

See merge request espressif/esp-idf!34387
2025-07-31 21:06:27 +08:00
Peter Dragun 7615b9a252 feat(tools/requirements): Add IDE requirements files 2025-07-31 12:06:33 +02:00
Rahul Tank 92b85fa162 fix(nimble): Minor documentation update in btsnoop script usage 2025-07-29 11:55:44 +05:30
Erhan Kurubas 45c201501c feat(tools): add esp32c3 rev1.1 rom version string 2025-07-24 13:44:51 +02:00
Samuel Obuch f232ce7fa2 ci: use shared OpenOCD class for GDB test app 2025-07-24 13:44:48 +02:00
Rahul Tank 48003d499b fix(nimble): Add support to parser script to parse logs with/without ts
Introduced a new "--has-ts" input parameter to script to detect if logs
has timestamp information or not
2025-07-21 13:02:22 +05:30
Rahul Tank f6c8e69aaa fix(nimble): Enhanced HCI logging by adding timestamp information 2025-07-17 10:19:55 +05:30
Marek Fiala e4bed4692a feat(tools): Enforce pip 'user' option to no, when installing python env
Closes https://github.com/espressif/esp-idf/issues/16189
2025-07-14 13:26:57 +02:00
Erhan Kurubas d4a3d3e760 change(sysview): drop ESP mcore extension 2025-07-09 14:58:01 +08:00
Erhan Kurubas 3c29b8feec feat(sysview): update multicore files for testing 2025-07-09 14:58:01 +08:00
Erhan Kurubas a01bd5070b feat(sysview): Add SEGGER multicore trace file support 2025-07-09 14:58:01 +08:00
Erhan Kurubas eebb363e56 feat(sysview): update to version 3.56 2025-07-09 14:58:01 +08:00
Erhan Kurubas 5d1a3de99d feat(tools): update openocd version to v0.12.0-esp32-20250707 2025-07-09 14:58:01 +08:00
Omar Chebib b6c2d6821e fix(esp_hw_support): make the NMI interrupts available for the main application
Closes https://github.com/espressif/esp-idf/issues/13629

NMI interrupt level has been freed for all the Xtensa targets, making it possible
for the main application to use it. An example has been added to show how to
proceed.
2025-07-03 09:42:04 +08:00
Roland Dobai e2e209c271 Merge branch 'fix/idf_tools_install_tool_version_v5.2' into 'release/v5.2'
fix(tools): fixed command `idf_tools.py install tool@version` (v5.2)

See merge request espressif/esp-idf!40043
2025-06-20 17:11:55 +02:00
Marek Fiala 0765257558 fix(tools): idf_tools.py uninstall decide based on preferred tool version
idf_tools.py uninstall now doesn't take only recommended version, but
makes the decision based on preferred installed versions.
2025-06-20 16:04:10 +02:00
Marek Fiala 5f239a862b test(tools): Added test for installing supported tool version
Added test_export_supported_version_cmake in `test_idf_tools.py`,
that installs and exports supported version of tool - cmake.
2025-06-20 16:04:10 +02:00
Marek Fiala bce8296ec7 fix(tools): idf_tools.py install tool@version 2025-06-20 16:03:59 +02:00
Marek Fiala c08a55b5a3 feat(tools): Update ccache 4.10.2 -> 4.11.2
Closes https://github.com/espressif/idf-installer/issues/305
2025-06-17 04:26:21 +08:00
Marek Fiala e0061808ca fix(tools): Enabled removing requirements.* files 2025-06-11 11:15:44 +02:00
Fu Hanxi de38d22021 ci: disable idf-ci plugin
this plugin will be re-enabled with compatible code in !38755
2025-06-04 13:20:13 +02:00
Alexey Lapshin 5b6ba02773 feat(tools): update esp-rom-elf to version 20240305 2025-05-29 15:44:01 +08:00