|
@@ -1,37 +1,24 @@
|
|
|
/**
|
|
|
* define start/end address of ro data.
|
|
|
- * different compiler with different implementation.
|
|
|
*/
|
|
|
|
|
|
#ifndef __COMPILER_H__
|
|
|
#define __COMPILER_H__
|
|
|
|
|
|
-#if defined(__CC_ARM) // armcc
|
|
|
+#if defined(__ESP8266__)
|
|
|
|
|
|
-//#warning "Please check scatter file to ensure rodata is in ER_IROM1 region."
|
|
|
-
|
|
|
-/* symbols reference to the scatter file */
|
|
|
-extern char Image$$ER_IROM1$$Base;
|
|
|
-extern char Image$$ER_IROM1$$Limit;
|
|
|
-
|
|
|
-#define RODATA_START_ADDRESS (&Image$$ER_IROM1$$Base)
|
|
|
-#define RODATA_END_ADDRESS (&Image$$ER_IROM1$$Limit)
|
|
|
-
|
|
|
-#elif defined(__GNUC__) // gcc
|
|
|
-
|
|
|
-//#warning "Please check linker script to ensure rodata is between _stext and _etext."
|
|
|
-
|
|
|
-/* symbols defined in linker script */
|
|
|
-// extern char _rodata_start;
|
|
|
-// extern char _rodata_end;
|
|
|
extern char _irom0_text_start;
|
|
|
extern char _irom0_text_end;
|
|
|
-// modify linker script to ensure rodata and rodata1 is between _rodata_start and _rodata_end.
|
|
|
-// #define RODATA_START_ADDRESS (&_rodata_start)
|
|
|
-// #define RODATA_END_ADDRESS (&_rodata_end)
|
|
|
#define RODATA_START_ADDRESS (&_irom0_text_start)
|
|
|
#define RODATA_END_ADDRESS (&_irom0_text_end)
|
|
|
|
|
|
+#elif defined(__ESP32__)
|
|
|
+
|
|
|
+extern char _drom0_text_start;
|
|
|
+extern char _drom0_text_end;
|
|
|
+#define RODATA_START_ADDRESS (&_drom0_text_start)
|
|
|
+#define RODATA_END_ADDRESS (&_drom0_text_end)
|
|
|
+
|
|
|
#else // other compilers
|
|
|
|
|
|
/* Firstly, modify rodata's start/end address. Then, comment the line below */
|