Commit Graph

5543 Commits

Author SHA1 Message Date
Island
d4ce96fa47 Merge branch 'dev/ble-log-202603_v5.2' into 'release/v5.2'
dev: BLE Log 202603 (5.2)

See merge request espressif/esp-idf!47273
2026-04-08 10:32:35 +08:00
Zhou Xiao
da207b1706 fix(ble_log_console): exclude from idf-ci pytest collection to fix CI
idf-ci discovers pyproject.toml pytest config and runs a separate
collection pass with --target all, which finds 0 target tests and
raises RuntimeError. Add to .idf_ci.toml exclude_dirs instead of
deleting tests. Restore all 227 unit tests with lint/mypy fixes.
2026-04-07 11:52:43 +08:00
Zhou Xiao
243d5b82f1 docs(ble_log_console): update user guides for new features and run/build scripts
- Recommend run.sh/run.bat as primary launch method with Launch Screen description
- Add build.sh/build.bat section for standalone executable packaging
- Document buffer utilization screen (m key) and two-table stats layout (d key)
- Update menuconfig path, status panel format, and Kconfig option names
- Remove obsolete textual ModuleNotFoundError troubleshooting
- Simplify manual configuration to single toggle (defaults cover most cases)
- Fix ESP32 -> ESP chip in introduction
2026-04-07 11:50:56 +08:00
Zhou Xiao
3236123cb4 feat(ble_log_console): add buffer utilization tracker and display
Add BufUtilTracker to record per-LBM inflight peak data, wire it
through StatsAccumulator and StatsUpdated message for thread-safe
delivery to the UI. Buffer utilization is displayed in a dedicated
BufUtilScreen accessible via the 'm' keybinding, separate from
the frame stats screen ('d').

Also reject false INIT_DONE frames with version==0 caused by
misaligned data during parser sync, preventing spurious stats resets.
2026-04-07 11:50:15 +08:00
Zhou Xiao
a11bde6fd0 feat(ble_log_console): add BUF_UTIL internal frame decoding
Add BUF_UTIL=5 to InternalSource, BufUtilPool enum, BufUtilResult
TypedDict, BufUtilEntry dataclass, and name resolution helpers.
Add decode branch in internal_decoder with pool/index extraction
from the packed lbm_id field. Tests cover valid decode, pool/index
extraction, and truncated payload handling.
2026-04-07 11:50:09 +08:00
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
luoxu
99c115e259 remove(ble_mesh): deprecate the tinycrypt library within the Bluetooth Mesh component 2026-04-01 00:21:39 +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