诸位,在代码里面的extern int SHTINIT_ARRAYLimit;
理论上可以获取代码的大小
而rtt里面的类似的代码,可以获取ram的地址
但是这段代码我单独拿出来,一方面报错,另一方面会出现溢出值,问过很多人都无法解决。
希望在此论坛获得解决办法,毕竟,rtt里面才有这个代码
只能推测是和编译器相关的
附:
#define STM32_FLASH 128
#define MCU_FLASH_SIZE STM32_FLASH*1024
#ifdef __CC_ARM
extern int SHT$$INIT_ARRAY$$Limit;
#define MCU_FLASH_PRG_END ((uint32_t)&SHT$$INIT_ARRAY$$Limit)
#endif
#define MCU_FLASH_BEGIN 0x8000000
#define MCU_FLASH_END (0x8000000+MCU_FLASH_SIZE)
#define MCU_FLASH_USED (MCU_FLASH_PRG_END - MCU_FLASH_BEGIN)
#define MCU_FLASH_REMAIND (MCU_FLASH_END - MCU_FLASH_PRG_END)
报错的部分
Warning: L6330W: Undefined symbol SHT$$INIT_ARRAY$$Limit (referred from main.o). Unused section has been removed.