59 #if (defined(__ICCARM__))
60 #pragma section = ".data"
61 #pragma section = ".data_init"
62 #pragma section = ".bss"
95 const uint8_t * data_rom, * data_rom_end;
96 const uint8_t * code_rom, * code_rom_end;
97 const uint8_t * bss_end;
100 extern uint32_t __RAM_VECTOR_TABLE_SIZE[];
101 extern uint32_t __VECTOR_TABLE[];
105 #if defined(__ICCARM__)
107 data_ram = __section_begin(
".data");
108 data_rom = __section_begin(
".data_init");
109 data_rom_end = __section_end(
".data_init");
112 #pragma section = "__CODE_ROM"
113 #pragma section = "__CODE_RAM"
114 code_ram = __section_begin(
"__CODE_RAM");
115 code_rom = __section_begin(
"__CODE_ROM");
116 code_rom_end = __section_end(
"__CODE_ROM");
119 bss_start = __section_begin(
".bss");
120 bss_end = __section_end(
".bss");
122 extern uint32_t __DATA_ROM[];
123 extern uint32_t __DATA_RAM[];
124 extern uint32_t __DATA_END[];
126 extern uint32_t __CODE_RAM[];
127 extern uint32_t __CODE_ROM[];
128 extern uint32_t __CODE_END[];
130 extern uint32_t __BSS_START[];
131 extern uint32_t __BSS_END[];
134 data_ram = (uint8_t *)__DATA_RAM;
135 data_rom = (uint8_t *)__DATA_ROM;
136 data_rom_end = (uint8_t *)__DATA_END;
138 code_ram = (uint8_t *)__CODE_RAM;
139 code_rom = (uint8_t *)__CODE_ROM;
140 code_rom_end = (uint8_t *)__CODE_END;
142 bss_start = (uint8_t *)__BSS_START;
143 bss_end = (uint8_t *)__BSS_END;
147 if (__VECTOR_RAM != __VECTOR_TABLE)
150 for (n = 0; n < (((uint32_t)__RAM_VECTOR_TABLE_SIZE)/
sizeof(uint32_t)); n++)
152 __VECTOR_RAM[n] = __VECTOR_TABLE[n];
164 while (data_rom_end != data_rom)
166 *data_ram = *data_rom;
172 while (code_rom_end != code_rom)
174 *code_ram = *code_rom;
180 while(bss_end != bss_start)
uint32_t __VECTOR_RAM[((uint32_t)(FEATURE_INTERRUPT_IRQ_MAX))+16U+1U]
Declaration of vector table. FEATURE_INTERRUPT_IRQ_MAX is the highest interrupt request number...
#define INT_VECTOR_Reg
INT_VECTOR_Reg.
void init_data_bss(void)
Make necessary initializations for RAM.