diff src/cs/layer1/include/l1_varex.h @ 47:d2074d1102e0

L1 data section placement: support both TMS470 and gcc
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 19 Jul 2018 01:04:05 +0000
parents b6a5e36de839
children
line wrap: on
line diff
--- a/src/cs/layer1/include/l1_varex.h	Thu Jul 19 00:35:33 2018 +0000
+++ b/src/cs/layer1/include/l1_varex.h	Thu Jul 19 01:04:05 2018 +0000
@@ -10,27 +10,36 @@
 #ifdef L1_ASYNC_C
 
 #if (LONG_JUMP == 3)
- #pragma DATA_SECTION(l1s,".l1s_global")
- #pragma DATA_SECTION(l1s_dsp_com,".l1s_global")
- #pragma DATA_SECTION(l1a_l1s_com,".l1s_global")
- #pragma DATA_SECTION(l1s_tpu_com,".l1s_global")
- #pragma DATA_SECTION(l1_config,".l1s_global")
+  #ifdef __GNUC__
+    #define SECTION_ATTR __attribute__ ((section (".l1s_global")))
+  #else
+    #define SECTION_ATTR
+    #pragma DATA_SECTION(l1s,".l1s_global")
+    #pragma DATA_SECTION(l1s_dsp_com,".l1s_global")
+    #pragma DATA_SECTION(l1a_l1s_com,".l1s_global")
+    #pragma DATA_SECTION(l1s_tpu_com,".l1s_global")
+    #pragma DATA_SECTION(l1_config,".l1s_global")
+  #endif
+#else
+  #define SECTION_ATTR
 #endif
 
- T_L1S_GLOBAL   l1s;
+ T_L1S_GLOBAL   l1s SECTION_ATTR;
  T_L1A_GLOBAL   l1a;
 
- T_L1A_L1S_COM  l1a_l1s_com;
- T_L1S_DSP_COM  l1s_dsp_com;
- T_L1S_TPU_COM  l1s_tpu_com;
+ T_L1A_L1S_COM  l1a_l1s_com SECTION_ATTR;
+ T_L1S_DSP_COM  l1s_dsp_com SECTION_ATTR;
+ T_L1S_TPU_COM  l1s_tpu_com SECTION_ATTR;
 
- #if (L1_DYN_DSP_DWNLD == 1)    // equivalent to an API_HISR flag
+#if (L1_DYN_DSP_DWNLD == 1)    // equivalent to an API_HISR flag
  T_L1_API_HISR       l1_apihisr;
  T_L1A_API_HISR_COM l1a_apihisr_com;
 #endif
 
  // variables for L1 configuration
- T_L1_CONFIG    l1_config;
+ T_L1_CONFIG    l1_config SECTION_ATTR;
+
+ #undef SECTION_ATTR
 
 #else  // L1_ASYNC_C