# HG changeset patch # User Mychaela Falconia # Date 1531962245 0 # Node ID d2074d1102e0cb097bde42ef759385927477448b # Parent 559a8b3ef10b20be79dd647e3b07db6db1d6edcd L1 data section placement: support both TMS470 and gcc diff -r 559a8b3ef10b -r d2074d1102e0 src/cs/layer1/dl1/dl1_com.c --- a/src/cs/layer1/dl1/dl1_com.c Thu Jul 19 00:35:33 2018 +0000 +++ b/src/cs/layer1/dl1/dl1_com.c Thu Jul 19 01:04:05 2018 +0000 @@ -90,8 +90,14 @@ #if ( (L1_MP3 == 1) || (L1_MIDI == 1) || (L1_AAC == 1) || (L1_DYN_DSP_DWNLD == 1) ) // equivalent to an API_HISR flag extern void api_hisr(void); - #pragma DATA_SECTION (API_HISR_stack,"API_HISR_stack"); - char FAR API_HISR_stack[0x400]; + #ifdef __GNUC__ + #define SECTION_ATTR __attribute__ ((section ("API_HISR_stack"))) + #else + #define SECTION_ATTR + #pragma DATA_SECTION (API_HISR_stack,"API_HISR_stack"); + #endif + char FAR API_HISR_stack[0x400] SECTION_ATTR; + #undef SECTION_ATTR NU_HISR apiHISR; #endif // (L1_MP3 == 1) || (L1_MIDI == 1) || (L1_DYN_DSP_DWNLD == 1) diff -r 559a8b3ef10b -r d2074d1102e0 src/cs/layer1/include/l1_varex.h --- 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 diff -r 559a8b3ef10b -r d2074d1102e0 src/cs/layer1/p_include/l1p_vare.h --- a/src/cs/layer1/p_include/l1p_vare.h Thu Jul 19 00:35:33 2018 +0000 +++ b/src/cs/layer1/p_include/l1p_vare.h Thu Jul 19 01:04:05 2018 +0000 @@ -10,26 +10,35 @@ #ifdef L1P_ASYN_C #if (LONG_JUMP == 3) - #pragma DATA_SECTION(l1ps,".l1s_global") - #pragma DATA_SECTION(l1pa_l1ps_com,".l1s_global") - #pragma DATA_SECTION(l1ps_macs_com,".l1s_global") - #pragma DATA_SECTION(l1ps_dsp_com,".l1s_global") + #ifdef __GNUC__ + #define SECTION_ATTR __attribute__ ((section (".l1s_global"))) + #else + #define SECTION_ATTR + #pragma DATA_SECTION(l1ps,".l1s_global") + #pragma DATA_SECTION(l1pa_l1ps_com,".l1s_global") + #pragma DATA_SECTION(l1ps_macs_com,".l1s_global") + #pragma DATA_SECTION(l1ps_dsp_com,".l1s_global") + #endif +#else + #define SECTION_ATTR #endif // Global Packet L1A structure T_L1PA_GLOBAL l1pa; // Global Packet L1S structure - T_L1PS_GLOBAL l1ps; + T_L1PS_GLOBAL l1ps SECTION_ATTR; // Common structure between L1A and L1S in packet mode - T_L1PA_L1PS_COM l1pa_l1ps_com; + T_L1PA_L1PS_COM l1pa_l1ps_com SECTION_ATTR; // Communication between L1S and MAC-S in packet mode - T_L1PS_MACS_COM l1ps_macs_com; + T_L1PS_MACS_COM l1ps_macs_com SECTION_ATTR; // MCU / DSP interface - T_L1PS_DSP_COM l1ps_dsp_com; + T_L1PS_DSP_COM l1ps_dsp_com SECTION_ATTR; + + #undef SECTION_ATTR #else extern T_L1PA_GLOBAL l1pa;