]> granicus.if.org Git - esp-idf/commitdiff
app_update: Add EXCLUDE option
authorKonstantin Kondrashov <konstantin@espressif.com>
Thu, 13 Dec 2018 07:45:27 +0000 (15:45 +0800)
committerKonstantin Kondrashov <konstantin@espressif.com>
Tue, 18 Dec 2018 07:58:47 +0000 (15:58 +0800)
Added two options for PROJECT_NAME and PROJECT_VER variables to exclude them from the firmware image.

Closes: https://github.com/espressif/esp-idf/issues/2803
components/app_update/Kconfig.projbuild
components/app_update/esp_app_desc.c
components/esp32/cpu_start.c

index 62f8bdec3bd56688140e03e098ce2dc25a71d3ad..6e2c41b16d4ff9cfbd313b4b6d6099724f87dc4a 100644 (file)
@@ -9,4 +9,18 @@ config APP_COMPILE_TIME_DATE
         This can be useful for getting the same binary image files made from the same source, 
         but at different times.
 
+config APP_EXCLUDE_PROJECT_VER_VAR
+    bool "Exclude PROJECT_VER from firmware image"
+    default n
+       help
+        The PROJECT_VER variable from the build system will not affect the firmware image.
+        This value will not be contained in the esp_app_desc structure.
+
+config APP_EXCLUDE_PROJECT_NAME_VAR
+    bool "Exclude PROJECT_NAME from firmware image"
+    default n
+       help
+        The PROJECT_NAME variable from the build system will not affect the firmware image.
+        This value will not be contained in the esp_app_desc structure.
+
 endmenu # "Application manager"
\ No newline at end of file
index b120d2c34540cbd4883787df6b9b8555e51a72b0..20c487c1c7216da8bf375329f7a1cfbfa822fa75 100644 (file)
 // Application version info
 const __attribute__((section(".rodata_desc"))) esp_app_desc_t esp_app_desc = {
     .magic_word = ESP_APP_DESC_MAGIC_WORD,
+#ifdef CONFIG_APP_EXCLUDE_PROJECT_VER_VAR
+    .version = "",
+#else
     .version = PROJECT_VER,
+#endif
+
+#ifdef CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR
+    .project_name = "",
+#else
     .project_name = PROJECT_NAME,
+#endif
     .idf_ver = IDF_VER,
 
 #ifdef CONFIG_APP_SECURE_VERSION
@@ -39,9 +48,13 @@ const __attribute__((section(".rodata_desc"))) esp_app_desc_t esp_app_desc = {
 };
 
 
+#ifndef CONFIG_APP_EXCLUDE_PROJECT_VER_VAR
 _Static_assert(sizeof(PROJECT_VER) <= sizeof(esp_app_desc.version), "PROJECT_VER is longer than version field in structure");
+#endif
 _Static_assert(sizeof(IDF_VER) <= sizeof(esp_app_desc.idf_ver), "IDF_VER is longer than idf_ver field in structure");
+#ifndef CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR
 _Static_assert(sizeof(PROJECT_NAME) <= sizeof(esp_app_desc.project_name), "PROJECT_NAME is longer than project_name field in structure");
+#endif
 
 const esp_app_desc_t *esp_ota_get_app_description(void)
 {
index 739e4188d8ec66fe0c47bebfda463d0672d8f5e0..7dacf38af173cb1dba52675b9c24da548809d618 100644 (file)
@@ -179,8 +179,12 @@ void IRAM_ATTR call_start_cpu0()
     if (LOG_LOCAL_LEVEL >= ESP_LOG_INFO) {
         const esp_app_desc_t *app_desc = esp_ota_get_app_description();
         ESP_EARLY_LOGI(TAG, "Application information:");
+#ifndef CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR
         ESP_EARLY_LOGI(TAG, "Project name:     %s", app_desc->project_name);
+#endif
+#ifndef CONFIG_APP_EXCLUDE_PROJECT_VER_VAR
         ESP_EARLY_LOGI(TAG, "App version:      %s", app_desc->version);
+#endif
 #ifdef CONFIG_APP_SECURE_VERSION
         ESP_EARLY_LOGI(TAG, "Secure version:   %x", app_desc->secure_version);
 #endif