If a partition offset is not aligned to 4 kB, erase operations will
fail, even if they are aligned to 4 kB relative to the partition
start. This is because the underlying esp_flash_erase_range function
only works when the address is aligned to 4 kB.
Not making this an error for now, since applications might be using
read-only non-4kB aligned partitions, which still work fine.
Will change this behavior in IDF 5.0, requiring 4 kB alignment for all
partitions.
Closes https://github.com/espressif/esp-idf/issues/7295
Closes https://github.com/espressif/esp-idf/issues/7350
...only. Previously this check was done for both app and data
partitions. While checking that data partition size is aligned is
a _good thing_, the check would only occur when secure boot was on.
These files were added into the component directory back when we
didn't have the documentation directory, and weren't moved once the
documentation directory was created.
The code checked CONFIG_ETH_USE_SPI_ETHERNET (which is usually set),
but CONFIG_EXAMPLE_ETH_SPI_xxx_GPIO options are only defined if
CONFIG_EXAMPLE_USE_SPI_ETHERNET is set. Fix the ifdef accordingly.
Regression from aea901f0.
* fix failing tests: expect s2 binutils to be installed on s3,
expect risc-v toolchain to be installed on s2 and s3.
* improve readability by adding assert_tool_installed and
assert_tool_not_installed functions, instead of using an optional
assertIn argument
* rename "RISC" to "RISCV_ELF" as ULP is arguably very much "R" as in
"RISC"!
CMake sorts result of file(GLOB) command since version 3.6.0:
https://gitlab.kitware.com/cmake/cmake/-/commit/edcccde7d
Since ESP-IDF sets cmake_minimum_required version to 3.5, and version
3.5.1 is used in CI, sort file lists obtained from file(GLOB)
manually.
This helps obtain reproducible order of libraries passed to the linker
and to ldgen.
In practice, calling memcpy with NULL buffer and 0 size works on the
ESP32, but the C standard considers this an undefined behavior.
When building with UBSAN checks enabled, compiler will insert a check
that memcpy argument is non-NULL, regardless of the size argument.
This caused a failure in tools/test_apps/system/panic, which is built
with USBAN enabled for several components.
Before newlib 3.3.0, <dirent.h> bundled in newlib did not include any
function declarations. Instead, the file included the platform-
specific <sys/dirent.h>. This inclusion was inside a C++ guard block.
ESP-IDF provided sys/dirent.h inside newlib component, and this file
contained all the necessary function and structure declarations.
Since https://github.com/espressif/newlib-esp32/commit/da418955f5dca2f8570561c5dd6e79e25ebaeba2,
common function declarations have been added to <dirent.h> in newlib.
However, the inclusion of sys/dirent.h has been moved out of the C++
guard block. However we didn't notice this change and did not update
sys/dirent.h in ESP-IDF newlib component to and the now-required
C++ guards there.
This commit adds the missing C++ guards to the platform-specific
sys/dirent.h.
The declarations of common dirent.h functions are now present both in
<dirent.h> (provided by newlib) and in sys/dirent.h (provided by IDF).
We keep the declarations in sys/dirent.h for compatibility, since some
ESP-IDF files and applications may include <sys/dirent.h> directly,
rather than <dirent.h>.
Closes https://github.com/espressif/esp-idf/issues/7204
FreeRTOS timer tests use quite a lot of stack, close to the limit on
the ESP32. ESP32-S3 has larger coprocessor save area, so there is less
space left for the actual stack, and the tests fail with a stack
overflow. Increase the stack size to make the tests work reliably.
From LX7_ESP32_S3_MP_linux_redist.tgz with SHA256:
63f305a982b2ee94cc78e5c20e3e3eb8bf0edeeaf703af0227a418bc34f7b848
copied from xtensa-elf/arch/include/xtensa/config/ with changes:
1) pre-commit fixes applied
2) re-added CONFIGID0 and CONFIGID1 in specreg.h
esp_partition: add ESP_PARTITION_TYPE_ANY for iterating over all partition types (Github PR)
Closes IDFGH-4783
See merge request espressif/esp-idf!13434
esp_hid: allow setting stack size for the event task, increase stack size in the example (Github PR)
Closes IDFGH-4568 and IDFGH-4563
See merge request espressif/esp-idf!13438
* Extend sdmmc_slot_config_t with GPIO pin numbers for all SD bus
signals. These new fields are available if SOC_SDMMC_USE_GPIO_MATRIX
is set.
* Add shorter "sd" and "wp" aliases for "gpio_sd" and "gpio_wp" field
names in sdmmc_slot_config_t.
* Deprecate sdmmc_host_pullup_en, prefer to enable this feature using
SDMMC_SLOT_FLAG_INTERNAL_PULLUP instead.
* sync the latest struct header file from ESP32
* add soc_caps.h macros to distinguish between IO MUX and GPIO Matrix
support in SDMMC on different chips.
* store GPIO matrix signal numbers in sdmmc_slot_info_t
This option is not enabled by default because many existing tests
use integer assertions to check the pointers:
TEST_ASSERT_EQUAL(NULL, pointer)
This causes a "cast from pointer to integer of different size"
(-Wpointer-to-int-cast) warning to be generated, as Unity converts
every argument to UNITY_UINT first, and with 64-bit support enabled,
UNITY_UINT becomes a 64-bit unsigned type.
The previous location was the return from the first ets_printf call
that prints ROM sign-on message. Since the main function was patched
in ECO3, the new address no longer works — there is no instruction at
0x40007901 in ECO3 ROM. This could be solved by setting two
breakpoints (one would work for ECO <=2, the other for ECO3), but we
would need to remove the unused breakpoint later.
Fix this by setting the breakpoint at ets_printf. This means that when
debugging a loadable ELF the ROM sign-on message will no longer be
shown, but this doesn't seem to be an issue.
Without this, defaults of inverse options (--no-magic-len) were based
on the 'dest' value. In this case, dest='use_magic_len’, and the
default value is True. Which is confusing, because both
—use-magic-len and --no-magic-len show the same default value.
This adds a custom help formatter class which doesn’t add default
to the option help text if the help string already includes it.
1. Implement --aligned-obj-ix-tables which is used by default on the
ESP8266 in NodeMCU and Arduino.
2. Introduce --no-magic and --no-magic-len to allow disabling options
--use-magic-len and --use-magic. As these have been declared with
default=True and action='store_true', they couldn't be disabled
otherwise.
Closes https://github.com/espressif/esp-idf/issues/6717