mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-13 17:44:38 +02:00
fix rtc attr for esp32c2
This commit is contained in:
@@ -12,6 +12,7 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "sdkconfig.h"
|
#include "sdkconfig.h"
|
||||||
|
#include "soc/soc_caps.h"
|
||||||
|
|
||||||
#define ROMFN_ATTR
|
#define ROMFN_ATTR
|
||||||
|
|
||||||
@@ -61,9 +62,51 @@ extern "C" {
|
|||||||
// Use as esp_rom_printf(DRAM_STR("Hello world!\n"));
|
// Use as esp_rom_printf(DRAM_STR("Hello world!\n"));
|
||||||
#define DRAM_STR(str) (__extension__({static const DRAM_ATTR char __c[] = (str); (const char *)&__c;}))
|
#define DRAM_STR(str) (__extension__({static const DRAM_ATTR char __c[] = (str); (const char *)&__c;}))
|
||||||
|
|
||||||
|
#if SOC_RTC_FAST_MEM_SUPPORTED
|
||||||
// Forces code into RTC fast memory. See "docs/deep-sleep-stub.rst"
|
// Forces code into RTC fast memory. See "docs/deep-sleep-stub.rst"
|
||||||
#define RTC_IRAM_ATTR _SECTION_ATTR_IMPL(".rtc.text", __COUNTER__)
|
#define RTC_IRAM_ATTR _SECTION_ATTR_IMPL(".rtc.text", __COUNTER__)
|
||||||
|
|
||||||
|
// Allows to place data into RTC_FAST memory.
|
||||||
|
#define RTC_FAST_ATTR _SECTION_ATTR_IMPL(".rtc.force_fast", __COUNTER__)
|
||||||
|
|
||||||
|
// Allows to place data into RTC_FAST memory and map it to coredump
|
||||||
|
#define COREDUMP_RTC_FAST_ATTR _SECTION_ATTR_IMPL(".rtc.fast.coredump", __COUNTER__)
|
||||||
|
#else
|
||||||
|
#define RTC_IRAM_ATTR
|
||||||
|
#define RTC_FAST_ATTR
|
||||||
|
#define COREDUMP_RTC_FAST_ATTR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if SOC_RTC_SLOW_MEM_SUPPORTED
|
||||||
|
// Forces data into RTC slow memory. See "docs/deep-sleep-stub.rst"
|
||||||
|
// Any variable marked with this attribute will keep its value
|
||||||
|
// during a deep sleep / wake cycle.
|
||||||
|
#define RTC_DATA_ATTR _SECTION_ATTR_IMPL(".rtc.data", __COUNTER__)
|
||||||
|
|
||||||
|
// Allows to place data into RTC_SLOW memory.
|
||||||
|
#define RTC_SLOW_ATTR _SECTION_ATTR_IMPL(".rtc.force_slow", __COUNTER__)
|
||||||
|
|
||||||
|
// 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 _SECTION_ATTR_IMPL(".rtc_noinit", __COUNTER__)
|
||||||
|
#else
|
||||||
|
#define RTC_DATA_ATTR
|
||||||
|
#define RTC_SLOW_ATTR
|
||||||
|
#define RTC_NOINIT_ATTR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if SOC_RTC_FAST_MEM_SUPPORTED || SOC_RTC_SLOW_MEM_SUPPORTED
|
||||||
|
// Forces read-only data into RTC memory. See "docs/deep-sleep-stub.rst"
|
||||||
|
#define RTC_RODATA_ATTR _SECTION_ATTR_IMPL(".rtc.rodata", __COUNTER__)
|
||||||
|
|
||||||
|
// Forces data into RTC memory and map it to coredump
|
||||||
|
#define COREDUMP_RTC_DATA_ATTR _SECTION_ATTR_IMPL(".rtc.coredump", __COUNTER__)
|
||||||
|
#else
|
||||||
|
#define RTC_RODATA_ATTR
|
||||||
|
#define COREDUMP_RTC_DATA_ATTR
|
||||||
|
#endif
|
||||||
|
|
||||||
#if CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY
|
#if CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY
|
||||||
// Forces bss variable into external memory. "
|
// Forces bss variable into external memory. "
|
||||||
#define EXT_RAM_BSS_ATTR _SECTION_ATTR_IMPL(".ext_ram.bss", __COUNTER__)
|
#define EXT_RAM_BSS_ATTR _SECTION_ATTR_IMPL(".ext_ram.bss", __COUNTER__)
|
||||||
@@ -81,20 +124,6 @@ extern "C" {
|
|||||||
#define EXT_RAM_ATTR _Pragma ("GCC warning \"'EXT_RAM_ATTR' macro is deprecated, please use `EXT_RAM_BSS_ATTR`\"")
|
#define EXT_RAM_ATTR _Pragma ("GCC warning \"'EXT_RAM_ATTR' macro is deprecated, please use `EXT_RAM_BSS_ATTR`\"")
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Forces data into RTC slow memory. See "docs/deep-sleep-stub.rst"
|
|
||||||
// Any variable marked with this attribute will keep its value
|
|
||||||
// during a deep sleep / wake cycle.
|
|
||||||
#define RTC_DATA_ATTR _SECTION_ATTR_IMPL(".rtc.data", __COUNTER__)
|
|
||||||
|
|
||||||
// Forces read-only data into RTC memory. See "docs/deep-sleep-stub.rst"
|
|
||||||
#define RTC_RODATA_ATTR _SECTION_ATTR_IMPL(".rtc.rodata", __COUNTER__)
|
|
||||||
|
|
||||||
// Allows to place data into RTC_SLOW memory.
|
|
||||||
#define RTC_SLOW_ATTR _SECTION_ATTR_IMPL(".rtc.force_slow", __COUNTER__)
|
|
||||||
|
|
||||||
// Allows to place data into RTC_FAST memory.
|
|
||||||
#define RTC_FAST_ATTR _SECTION_ATTR_IMPL(".rtc.force_fast", __COUNTER__)
|
|
||||||
|
|
||||||
// Forces data into noinit section to avoid initialization after restart.
|
// Forces data into noinit section to avoid initialization after restart.
|
||||||
#define __NOINIT_ATTR _SECTION_ATTR_IMPL(".noinit", __COUNTER__)
|
#define __NOINIT_ATTR _SECTION_ATTR_IMPL(".noinit", __COUNTER__)
|
||||||
|
|
||||||
@@ -106,22 +135,11 @@ extern "C" {
|
|||||||
#define EXT_RAM_NOINIT_ATTR __NOINIT_ATTR
|
#define EXT_RAM_NOINIT_ATTR __NOINIT_ATTR
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// 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 _SECTION_ATTR_IMPL(".rtc_noinit", __COUNTER__)
|
|
||||||
|
|
||||||
// Forces code into DRAM instead of flash and map it to coredump
|
// Forces code into DRAM instead of flash and map it to coredump
|
||||||
// Use dram2 instead of dram1 to make sure this section will not be included
|
// Use dram2 instead of dram1 to make sure this section will not be included
|
||||||
// by dram1 section in the linker script
|
// by dram1 section in the linker script
|
||||||
#define COREDUMP_DRAM_ATTR _SECTION_ATTR_IMPL(".dram2.coredump", __COUNTER__)
|
#define COREDUMP_DRAM_ATTR _SECTION_ATTR_IMPL(".dram2.coredump", __COUNTER__)
|
||||||
|
|
||||||
// Forces data into RTC memory and map it to coredump
|
|
||||||
#define COREDUMP_RTC_DATA_ATTR _SECTION_ATTR_IMPL(".rtc.coredump", __COUNTER__)
|
|
||||||
|
|
||||||
// Allows to place data into RTC_FAST memory and map it to coredump
|
|
||||||
#define COREDUMP_RTC_FAST_ATTR _SECTION_ATTR_IMPL(".rtc.fast.coredump", __COUNTER__)
|
|
||||||
|
|
||||||
// Forces to not inline function
|
// Forces to not inline function
|
||||||
#define NOINLINE_ATTR __attribute__((noinline))
|
#define NOINLINE_ATTR __attribute__((noinline))
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user