mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-09 20:41:14 +00:00
esp32: Add .noinit and .rtc_noinit sections to the linker script
Added .rtc_noinit and .noinit section definitions into linker file /esp32/ld/esp32.common.ld. The macro __NOINIT_ATTR, RTC_NOINIT_ATTR declared in esp32/esp_attr.h file. Added unit test file to test added behavior for noinit variables and its attributes. Added documentation changes for new added attributes. Make some corrections after code review: The linker file has been corrected to place noinit section before bss_start to make it safer. Documentation file has been modified to clarify reset behavior of allocated data . Corrected typos in test_noinit.c and removed assertion of noinit variable to avoid possible issues with ROM boot loader memory allocation. The linker file has been corrected to place noinit section before bss_start to make it safer. Documentation file has been modified to clarify reset behavior of allocated data . Corrected typos in test_noinit.c and removed assertion of noinit variable to avoid possible issues with ROM boot loader memory allocation. Update test_noinit.c file to address RTCWDT_RTC_RESET reset reason instead of POWERON_RESET. Test optimized to pass automated unit testing. esp32: Add .noinit and .rtc_noinit sections to the linker script Update of general-notes.rst documentation to fomat examples as code and attributes as identifiers. Test test_noinit.c corrected to pass automated testing (support ofTEST_CASE_MULTIPLE_STAGES()) https://ezredmine.espressif.cn:8765/issues/15878
This commit is contained in:
@@ -47,4 +47,12 @@
|
||||
// Forces read-only data into RTC slow memory. See "docs/deep-sleep-stub.rst"
|
||||
#define RTC_RODATA_ATTR __attribute__((section(".rtc.rodata")))
|
||||
|
||||
// Forces data into noinit section to avoid initialization after restart.
|
||||
#define __NOINIT_ATTR __attribute__((section(".noinit")))
|
||||
|
||||
// Forces data into RTC slow memory of .noinit section.
|
||||
// Any variable marked with this attribute will keep its value
|
||||
// after restart or during a deep sleep / wake cycle.
|
||||
#define RTC_NOINIT_ATTR __attribute__((section(".rtc_noinit")))
|
||||
|
||||
#endif /* __ESP_ATTR_H__ */
|
||||
|
Reference in New Issue
Block a user