typedef struct {
uint32_t magic_word; /*!< Magic word ESP_APP_DESC_MAGIC_WORD */
uint32_t secure_version; /*!< Secure version */
uint32_t reserv1[2]; /*!< --- */
char version[32]; /*!< Application version */
char project_name[32]; /*!< Project name */
char time[16]; /*!< Compile time */
char date[16]; /*!< Compile date*/
char idf_ver[32]; /*!< Version IDF */
uint8_t app_elf_sha256[32]; /*!< sha256 of elf file */
uint32_t reserv2[20]; /*!< --- */
} sprt_app_desc_t;
/* MDK AC5 */
__attribute__((at(0x08000000))) const uint32_t cnt;
//cnt 0x08000000 Data 4 main.o(.ARM.__AT_0x08000000)
__attribute__((at(0x08000004))) const sprt_app_desc_t sprt_app_desc = {
.version = "version",
.time = __TIME__,
.date = __DATE__,
};
//sprt_app_desc 0x08000004 Data 256 main.o(.ARM.__AT_0x08000004)
__attribute__((at(0x20000000))) sprt_app_desc_t sprt_app_desc = {
.version = "version",
.time = __TIME__,
.date = __DATE__,
};
//sprt_app_desc 0x20000000 Data 256 main.o(.ARM.__AT_0x20000000)
__attribute__((at(0x20001000))) uint32_t cnt;
//cnt 0x20001000 Data 4 main.o(.ARM.__AT_0x20001000)
/* MDK AC6 */
/* section 等价 __section__ */
__attribute__((section(".ARM.__at_0x08000000"))) const uint32_t cnt;
//cnt 0x08000000 Data 4 main.o(.ARM.__at_0x08000000)
__attribute__((__section__(".ARM.__at_0x08000004"))) const sprt_app_desc_t sprt_app_desc = {
.version = "version",
.time = __TIME__,
.date = __DATE__,
};
//sprt_app_desc 0x08000004 Data 256 main.o(.ARM.__at_0x08000004)
__attribute__((section(".ARM.__at_0x20000000"))) uint32_t cnt;
//cnt 0x20000000 Data 4 main.o(.ARM.__at_0x20000000)
__attribute__((section(".ARM.__at_0x20000004"))) sprt_app_desc_t sprt_app_desc = {
.version = "version",
.time = __TIME__,
.date = __DATE__,
};
//sprt_app_desc 0x20000004 Data 256 main.o(.ARM.__at_0x20000004)