Commit Graph

5916 Commits

Author SHA1 Message Date
Jiang Jiang Jian
cb8d1796b8 Merge branch 'fix/xtensa_nmi_v5.3' into 'release/v5.3'
fix(esp_hw_support): make the NMI interrupts available for the main application (backport v5.3)

See merge request espressif/esp-idf!34268
2025-02-28 11:32:47 +08:00
akshat
f8c552b560 bugfix(wifi): Fix header file errors and remove esp_supplicant from check_public_headers_exceptions.txt 2025-02-27 11:09:30 +08:00
Omar Chebib
209cfa313b 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-02-26 10:06:44 +08:00
Martin Vychodil
2c26a7e11e fix(security): Fixed ESP32S2 memory protection check for Peri1 RTCSLOW interrupt
- fixes the issue found in https://github.com/espressif/esp-idf/issues/15359
- extends debug printouts in the related tests
2025-02-21 16:29:04 +08:00
laokaiyao
a137775d11 fix(i2s): fixed i2s_std initializer order for cpp compiler
Closes https://github.com/espressif/esp-idf/issues/15405
2025-02-18 15:06:51 +08:00
Frantisek Hrbata
a60c3c4f29 fix(ldgen): don't emit intermediate placements without sections
When a symbol needs to be placed to a different target than the one
designated for the object file, the object file is expanded, which
includes the following steps:

1. Creating a new placement for the symbol's input section with the
   specified target.
2. Excluding the object placement from the orignal target.
3. Creating a new intermediate placement for the object for the original
   target, where its input sections are expanded, excluding the input
   section for the symbol.

Let's illustrate the object expansion process with the following example:

[sections:rodata]
entries:
    .rodata+
    .sdata2+
    .srodata+

[scheme:default]
entries:
    text -> flash_text
    rodata -> flash_rodata

[scheme:noflash]
entries:
    text -> iram0_text
    rodata -> dram0_data

[mapping:soc_pm]
archive: libsoc.a
entries:
    gpio_periph: GPIO_HOLD_MASK (noflash)

gpio_periph section headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            00000000 000000 000000 00      0   0  0
  [ 1] .text             PROGBITS        00000000 000034 000000 00  AX  0   0  2
  [ 2] .data             PROGBITS        00000000 000034 000000 00  WA  0   0  1
  [ 3] .bss              NOBITS          00000000 000034 000000 00  WA  0   0  1
  [ 4] .rodata.GPIO_HOLD_MASK PROGBITS        00000000 000034 000058 00   A  0   0  4
  [ 5] .rodata.GPIO_PIN_MUX_REG PROGBITS        00000000 00008c 000058 00   A  0   0  4
  [ 6] .debug_info       PROGBITS        00000000 0000e4 0000d8 00      0   0  1
  [ 7] .rela.debug_info  RELA            00000000 0009d4 000108 0c   I 16   6  4
  [ 8] .debug_abbrev     PROGBITS        00000000 0001bc 000070 00      0   0  1
  [ 9] .debug_aranges    PROGBITS        00000000 00022c 000018 00      0   0  1
  [10] .rela.debug_aranges RELA            00000000 000adc 00000c 0c   I 16   9  4
  [11] .debug_line       PROGBITS        00000000 000244 0001ab 00      0   0  1
  [12] .debug_str        PROGBITS        00000000 0003ef 00022d 01  MS  0   0  1
  [13] .comment          PROGBITS        00000000 00061c 000030 01  MS  0   0  1
  [14] .note.GNU-stack   PROGBITS        00000000 00064c 000000 00      0   0  1
  [15] .riscv.attributes RISCV_ATTRIBUTES 00000000 00064c 000044 00      0   0  1
  [16] .symtab           SYMTAB          00000000 000690 000260 10     17  36  4
  [17] .strtab           STRTAB          00000000 0008f0 0000e1 00      0   0  1
  [18] .shstrtab         STRTAB          00000000 000ae8 0000d1 00      0   0  1

1. Creating a new placement
.dram0.data :
{
    *libsoc.a:gpio_periph.*(.rodata.GPIO_HOLD_MASK .sdata2.GPIO_HOLD_MASK .srodata.GPIO_HOLD_MASK)
}

2. Excluding the object placement
.flash.rodata :
{
    *(EXCLUDE_FILE(*libsoc.a:gpio_periph.*) .rodata.* ...)
}

3. Creating a new intermediate placement
.flash.rodata :
{
    *libsoc.a:gpio_periph.*(.rodata.GPIO_PIN_MUX_REG)
}

Now, let's do the same, but also move GPIO_PIN_MUX_REG to noflash with an updated mapping.

[mapping:soc_pm]
archive: libsoc.a
entries:
    gpio_periph: GPIO_HOLD_MASK (noflash)
    gpio_periph: GPIO_PIN_MUX_REG (noflash)

1. Creating a new placement
.dram0.data :
{
    *libsoc.a:gpio_periph.*(.rodata.GPIO_HOLD_MASK .sdata2.GPIO_HOLD_MASK .srodata.GPIO_HOLD_MASK)
    *libsoc.a:gpio_periph.*(.rodata.GPIO_PIN_MUX_REG .sdata2.GPIO_PIN_MUX_REG
                            .srodata.GPIO_PIN_MUX_REG)
}

2. Excluding the object placement
.flash.rodata :
{
    *(EXCLUDE_FILE(*libsoc.a:gpio_periph.*) .rodata.* ...)
}

3. Creating a new intermediate placement
.flash.rodata :
{
    *libsoc.a:gpio_periph.*
}

The *libsoc.a:gpio_periph.* entity in step 3 no longer has input
sections, as there are no remaining .rodata input sections in the object
file. The linker behavior for this mapping is to include all object
input sections that have not yet been placed as described in
https://sourceware.org/binutils/docs/ld.html#Input-Section-Basics
"If you use a file name without a list of sections, then all sections in
the input file will be included in the output section. This is not
commonly done, but it may by useful on occasion."

The map file for such mapping now contains following input sections

 .flash.rodata   0x3c0a0120    0x19b34
     *libsoc.a:gpio_periph.*()
     .debug_info    0x3c0b95bf       0xd8 esp-idf/soc/libsoc.a(gpio_periph.c.obj)
     .debug_abbrev  0x3c0b9697       0x70 esp-idf/soc/libsoc.a(gpio_periph.c.obj)
     .debug_aranges
                    0x3c0b9707       0x18 esp-idf/soc/libsoc.a(gpio_periph.c.obj)
     .debug_line    0x3c0b971f      0x1ab esp-idf/soc/libsoc.a(gpio_periph.c.obj)
     .debug_str     0x3c0b98ca      0x21a esp-idf/soc/libsoc.a(gpio_periph.c.obj)
                                    0x22d (size before relaxing)
     .comment       0x3c0b9ae4       0x30 esp-idf/soc/libsoc.a(gpio_periph.c.obj)
     .note.GNU-stack
                    0x3c0b9ae4        0x0 esp-idf/soc/libsoc.a(gpio_periph.c.obj)
     .riscv.attributes
                    0x3c0b9ae4       0x44 esp-idf/soc/libsoc.a(gpio_periph.c.obj)

This is incorrect, and such intermediate placement should not be
generated. This type of placement can be recognized because it is not
explicitly defined in the mapping and lacks input sections. We can
identify this in the significant function and prevent issuing commands
for such placement.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-02-17 15:33:19 +08:00
Fu Hanxi
11142cffb3 ci: set app_list to empty list when not None 2025-02-14 14:04:18 +01:00
radek.tandler
0f5073ea2c fix(ci): Removed storage related ignore warnings 2025-02-13 20:40:05 +01:00
Erhan Kurubas
e9161c62d0 test(coredump): collect all expected uart data first, then process lazily 2025-02-03 15:11:27 +01:00
Euripedes Rocha
6c83f8a838 fix(mqtt): Regenerate certificates for testing
- Previous fix ommited one of the client certificates by mistaque.
- This regenerates all certificates to clean that up.
2025-01-29 14:04:14 +01:00
David Čermák
f2fe95f31b Merge branch 'ci/iperf_esp32p4_v5.3' into 'release/v5.3'
ci(esp_eth): added ESP32P4 to iperf CI test (v5.3)

See merge request espressif/esp-idf!36390
2025-01-24 19:49:20 +08:00
Fu Hanxi
539971de6c feat: add component_source property to component targets 2025-01-21 16:45:29 +08:00
Ondrej Kosta
17ebbe0924 ci(esp_eth): added ESP32P4 to iperf CI test
Updated (increased) ETH_THROUGHPUT_SPI_ETH limits.
Improved iperf optimization description
2025-01-14 15:45:55 +01:00
Marius Vikhammer
ba92aee8c1 Merge branch 'ci/swap-argument-find-app_v5.3' into 'release/v5.3'
ci(ci_build_apps): swap function args (v5.3)

See merge request espressif/esp-idf!36060
2025-01-08 09:10:48 +08:00
Roland Dobai
bc92458d2a Merge branch 'feature/add_utf_8_decoding_v5.3' into 'release/v5.3'
feat(tools): Enforced utf-8 encoding with Python open() functions (v5.3)

See merge request espressif/esp-idf!36126
2025-01-06 17:10:39 +08:00
Roland Dobai
3652281fb5 Merge branch 'feat/dfu_p4_backport_v5.3' into 'release/v5.3'
feat(dfu): Enable DFU on ESP32-P4 (backport v5.3)

See merge request espressif/esp-idf!35830
2025-01-06 15:41:59 +08:00
Marek Fiala
2b0407eb2a feat(tools): Enforce utf-8 encoding with open() function 2025-01-02 16:48:43 +01:00
Marius Vikhammer
4531d056e9 fix(interrupt): fixed wrongly reserved interrupt for wifi on H2 2025-01-02 16:44:05 +08:00
Jiang Jiang Jian
b5e59fb0af Merge branch 'ci/add_build_test_eco_versions_v5.3' into 'release/v5.3'
ci: add build test for eco versions (v5.3)

See merge request espressif/esp-idf!35819
2025-01-02 15:24:34 +08:00
igor.udot
8abb36267b ci(ci_build_apps): swap function args 2024-12-30 15:03:33 +08:00
Frantisek Hrbata
af605b12d2 fix(hints): improve suggestion for missing header file
Currently, we are only suggesting that the header file is likely not
part of the component's INCLUDE_DIRS. However, the header file may be
missing also because of the configuration settings. For instance, the
component might be disabled in sdkconfig, or the feature that supplies
the header might not be enabled. Enhance the hint message to address
this scenario as well.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-12-29 18:56:46 +01:00
Tomas Rezucha
31c883b3a6 feat(dfu): Enable DFU on ESP32-P4 2024-12-20 11:17:26 +01:00
Chen Yudong
5fd9ee23d3 ci: add build test for eco versions 2024-12-19 21:02:49 +08:00
Roland Dobai
81010cff35 fix(idf_tools.py): Upgrade pip and setuptools separately
This way the setuptools version dependency resolution will be done by
the upgraded pip.
2024-12-18 12:57:20 +01:00
Alexey Gerenkov
a7c987e450 Merge branch 'fix/test_idf_gdb_v5.3' into 'release/v5.3'
test(system): mark gdb test runners properly (v5.3)

See merge request espressif/esp-idf!35587
2024-12-17 21:43:34 +08:00
Island
0b7cbb40ca Merge branch 'bugfix/fix_hid_crash_v5.3' into 'release/v5.3'
fix(ble): Fix crash issue during logging (v5.3)

See merge request espressif/esp-idf!35510
2024-12-12 09:06:15 +08:00
Erhan Kurubas
e29f06bb2b change(cmake): use board configuration file for ftdi interface 2024-12-11 18:50:09 +01:00
Erhan Kurubas
b63cafb1a6 test(system): mark gdb test runners properly 2024-12-11 18:50:09 +01:00
Erhan Kurubas
dfc248d66d change(tools): enhance expect_reg_dump to support any or specific core values 2024-12-09 16:23:39 +01:00
Erhan Kurubas
ef14d7ab64 test(coredump): fix failed core dump tests 2024-12-09 15:52:59 +01:00
Erhan Kurubas
5f3d3f5e92 ci(panic): extend extram_stack tests 2024-12-09 15:52:59 +01:00
Erhan Kurubas
c753271de1 ci(panic): add coredump tcb corrupted test 2024-12-09 15:52:58 +01:00
zhanghaipeng
6718fc73b1 feat(bt): Add support for converting BT HCI logs to btsnoop format 2024-12-09 17:55:37 +08:00
Alexey Lapshin
782e04e2dc fix(tools): fix idf.py gdb execution in case app was not built 2024-12-06 23:34:54 +07:00
Roland Dobai
0a62a9078c Merge branch 'change/sysview_test_config_v5.3' into 'release/v5.3'
change(sysview): run heap_log tracing tests on existing cores (v5.3)

See merge request espressif/esp-idf!35196
2024-12-06 19:56:48 +08:00
Roland Dobai
22162a45e9 Merge branch 'feature/move-gdb-options-to_project_description_json_v5.3' into 'release/v5.3'
feat(debugging): move gdbinit generation to CMake (v5.3)

See merge request espressif/esp-idf!35176
2024-12-06 19:29:12 +08:00
Roland Dobai
3a3396dcc1 Merge branch 'feat/size_unify_sections_v5.3' into 'release/v5.3'
feat(tools): unify sections in idf.py size reports for NG version (v5.3)

See merge request espressif/esp-idf!34856
2024-12-06 17:35:38 +08:00
Roland Dobai
5ce9a7f07d Merge branch 'fix/import_error_msg_v5.3' into 'release/v5.3'
fix(tools): re-raise ImportError without module name (v5.3)

See merge request espressif/esp-idf!35074
2024-12-06 17:35:26 +08:00
Alexey Lapshin
3af39a0ab0 feat(debugging): move gdbinit generation to CMake
This feature is useful for 3rd-party software to run GDB with predefined
options that described in project_description.json file

allow to pass custom options to "idf.py gdb":

  --gdb-commands: command line arguments for gdb. (without changes)
  -ex: pass command to gdb.
  -x: pass gdbinit file to gdb. Alias for old --gdbinit command
2024-12-06 05:07:52 +08:00
Marius Vikhammer
9d7f2d69f5 change(version): Update version to 5.3.2 2024-12-05 15:30:21 +08:00
Erhan Kurubas
e2db600c8c fix(sysview): add prefix to the module desc to avoid stuck in Segger SystemView app
Closes https://github.com/espressif/esp-idf/issues/10483
2024-11-26 10:56:02 +01:00
Frantisek Hrbata
8d768f675b fix(tools): re-raise ImportError without module name
The ImportError or ModuleNotFoundError might be raised without
specifying a module name. In this not so common situation, re-raise the
exception to print all the information that could assist in identifying
the problem.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-11-21 09:37:22 +01:00
Frantisek Hrbata
63c565d95d feat(tools): unify sections in idf.py size reports for NG version
By default, esp-idf-size.ng displays all sections individually. This can
be confusing, especially if CONFIG_SOC_MEM_NON_CONTIGUOUS_SRAM is
enabled, resulting in sections like .dram0.data and .dram1.data being
abbreviated as two .data sections in the size report. To avoid confusion
for idf.py and cmake users, pass the --unify option to the underlying
esp_idf_size.ng by default.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-11-15 21:17:53 +08:00
Jiang Jiang Jian
61c5b1151a Merge branch 'ci/diff_manifest_with_sha' into 'release/v5.3'
CI: Diff manifest (v5.3)

See merge request espressif/esp-idf!34746
2024-11-14 18:59:49 +08:00
Jiang Jiang Jian
004e1b5c24 Merge branch 'ci/fix_macos_ccache_v5.3' into 'release/v5.3'
CI: Fix failing ccache and show ccache statistics for macOS tests (v5.3)

See merge request espressif/esp-idf!33937
2024-11-14 18:55:25 +08:00
Fu Hanxi
773ce3de55 ci: remove gitlab api call while generating pytest target-test child pipeline 2024-11-13 20:46:01 +01:00
Fu Hanxi
91feda824b ci: generate new report if old one failed to be updated 2024-11-13 20:46:01 +01:00
Fu Hanxi
c9971bea59 ci: support diff manifest sha with the base commit 2024-11-07 10:40:23 +01:00
WanqQixiang
20ee7e18f4 fix(tools/esp_prov): Fix hostname resolving for IPv6-only host 2024-11-05 17:44:46 +08:00
Jiang Jiang Jian
e6fcf6632c Merge branch 'fix/gdbstub_runtime_test_requiers_elf_file_v5.3' into 'release/v5.3'
fix(gdbstub_runtime): fix test gdbstub_runtime which requiers elf file (v5.3)

See merge request espressif/esp-idf!33815
2024-10-28 12:12:32 +08:00