浏览代码

esp_system: Mark the startup array as 'const' to save RAM

Angus Gratton 4 年之前
父节点
当前提交
d0e0f80bd0
共有 2 个文件被更改,包括 5 次插入4 次删除
  1. 3 2
      components/esp_system/include/esp_private/startup_internal.h
  2. 2 2
      components/esp_system/startup.c

+ 3 - 2
components/esp_system/include/esp_private/startup_internal.h

@@ -31,10 +31,11 @@ extern bool g_spiram_ok; // [refactor-todo] better way to communicate this from
 // array, one per core.
 typedef void (*sys_startup_fn_t)(void);
 
+/* This array of per-CPU system layer startup functions is initialized in the non-port part of esp_system */
 #if !CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE
-extern sys_startup_fn_t g_startup_fn[SOC_CPU_CORES_NUM];
+extern sys_startup_fn_t const g_startup_fn[SOC_CPU_CORES_NUM];
 #else
-extern sys_startup_fn_t g_startup_fn[1];
+extern sys_startup_fn_t const g_startup_fn[1];
 #endif
 
 // Utility to execute `sys_startup_fn_t` for the current core.

+ 2 - 2
components/esp_system/startup.c

@@ -110,7 +110,7 @@ void esp_startup_start_app_other_cores(void) __attribute__((weak, alias("esp_sta
 
 static volatile bool s_system_inited[SOC_CPU_CORES_NUM] = { false };
 
-sys_startup_fn_t g_startup_fn[SOC_CPU_CORES_NUM] = { [0] = start_cpu0,
+const sys_startup_fn_t g_startup_fn[SOC_CPU_CORES_NUM] = { [0] = start_cpu0,
 #if SOC_CPU_CORES_NUM > 1
     [1 ... SOC_CPU_CORES_NUM - 1] = start_cpu_other_cores
 #endif
@@ -118,7 +118,7 @@ sys_startup_fn_t g_startup_fn[SOC_CPU_CORES_NUM] = { [0] = start_cpu0,
 
 static volatile bool s_system_full_inited = false;
 #else
-sys_startup_fn_t g_startup_fn[1] = { start_cpu0 };
+const sys_startup_fn_t g_startup_fn[1] = { start_cpu0 };
 #endif
 
 #ifdef CONFIG_COMPILER_CXX_EXCEPTIONS