Commit Graph

15 Commits

Author SHA1 Message Date
Guillaume Souchere
4d16f46a88 esp_system: fix placement of __stack_chk_fail from flash to RAM
When stack check is enabled, certain functions (sometimes placed in RAM)
are being decorated with stack guards and a call to __stask_chk_fail() in
case ofr stack corruption. For this reason, __stack_chk_fail() must be
placed in RAM too.

Add stack check config in heap tests on all targets to find eventual flash to RAM
calls due to stack checks when running callgraph_check.py
2022-12-07 08:49:12 +01:00
Song Ruo Jing
1575b9e43a ci: Disable all currently failed target tests for esp32c6 2022-11-28 12:09:08 +08:00
Guillaume Souchere
ab1bd08ab9 tools: update list of references to not include symbold used by __assert_func calls
On xtensa architecture, the call to __assert_func uses a reference to __func__ that can
sometimes be placed in flash. Since the __asert_func can be called from functions in IRAM
the check_callgraph script can report an error when checking for invalid calls from IRAM
to flash sections. However, the __asert_func prevents this scenario at runtime so the
check_callgraph script reports a 'flas positive' situation. For this reasson, all references
to __func__$x found prior to a call to __assert_func are droped in the parsing of the rtl files.
2022-11-24 10:31:14 +01:00
Guillaume Souchere
0376e6ec79 heap: add check for usage of flash content from iram
this commits:
- adds build-time test to check that no call to flash regions are done from IRAM functions

- resolves problems related to IRAM function using content in flash memory

- update heap_caps_alloc_failed to use a default function name in DRAM
  when necessary instead of creating a function name variable in DRAM for
  each call of heap_caps_alloc_failed. This allows to save some extra bytes
  in RAM.
2022-11-24 10:31:14 +01:00
Song Ruo Jing
be0fdfa176 soc: Add a soc cap, SOC_CLK_RC_FAST_D256_SUPPORTED, for whether the target has the RC_FAST_D256 clock 2022-11-01 11:23:26 +08:00
Guillaume Souchere
6f11d0f297 heap: Update target and host tests after incorporation of the new TLSF implementation
- update the target and host tests to consider the new TLSF api and the metadata size
  only when the target is not using the rom implementation of the TLSF
2022-10-26 18:15:40 +02:00
Ivan Grokhotkov
7e2f261a58
freertos, app_trace, heap: use esp_cpu_get_cycle_count to get ccount
portGET_RUN_TIME_COUNTER_VALUE should only be used in the kernel.
2022-10-12 11:20:55 +02:00
Guillaume Souchere
cd805a5ab1 heap: Fix memory boundary condition checks when adding new region
Previously, condition_4 was making impossible the valid scenario
start > heap_start && end == heap_end.

Now, the end == heap_end and start == heap_start case is handled
separately allowing the case start > heap_start && ned == heap_end
to be considered a valid scenario
2022-10-07 13:22:30 +02:00
Guillaume Souchere
2b5a844640 heap: fix the boundary checks when adding a new region 2022-10-05 15:08:21 +02:00
Guillaume Souchere
2cce5e98b1 heap: add dynamic poisoning threshold in pytest env to allow test with known memory leak to pass 2022-10-05 15:07:37 +02:00
Guillaume Souchere
a29627f59d heap: fix the size of buffers in ignored tests
the ignored tests are updated with the minimum required buffer size to create
a new heap using the tlsf heap callocator.
2022-10-05 15:07:06 +02:00
Marius Vikhammer
1327a82b65 heap: fix random alloc test timing out in CI 2022-09-27 16:51:54 +08:00
Guillaume Souchere
bf18a05a5f unit-tests: Move the leak related tests from the heap component to test_utils 2022-09-23 09:49:09 +02:00
Guillaume Souchere
82c98c7f48 heap: Add test_apps configs 2022-09-23 09:49:09 +02:00
Guillaume Souchere
405c26da6d heap: migrate unit tests to pytest 2022-09-23 09:49:07 +02:00