@@ -187,31 +187,16 @@ generate_flags () {
187
187
echo " Patching '-fno-exceptions' flag for $ARDUINOVARIANT /${fl} flags.txt"
188
188
sed -i ' /-fno-exceptions/d' " $ARDUINOVARIANT " /${fl} flags.txt
189
189
set +e
190
- HAS_OPENAMP_SECTION =` grep openamp_section " $ARDUINOVARIANT " /linker_script.ld`
190
+ HAS_PDM_SECTION =` grep pdm_section " $ARDUINOVARIANT " /linker_script.ld`
191
191
set -e
192
- if [ x" $HAS_OPENAMP_SECTION " == x ]; then
193
- echo " Adding OpenAMP section to $ARDUINOVARIANT /linker_script.ld"
194
- OPENAMP_SECTION=" .openamp_section (NOLOAD) : {\n \
195
- . = ABSOLUTE(0x38000000);\n \
196
- *(.resource_table)\n \
197
- } >RAM_D3 AT > FLASH\n \
198
- .pdm_section (NOLOAD) : {\n \
199
- . = ABSOLUTE(0x3800FC00);\n \
192
+ if [ x" $HAS_PDM_SECTION " == x ]; then
193
+ echo " Adding PDM section to $ARDUINOVARIANT /linker_script.ld"
194
+ PDM_SECTION=" .pdm_section 0x3800FC00 (NOLOAD): {\n \
200
195
*(.pdm_buffer)\n \
201
196
} > RAM_D3\n"
202
197
203
- if [[ $ARDUINOVARIANT == * GENERIC* M4 ]]; then
204
- echo " Fixing VTOR base in $ARDUINOVARIANT /linker_script.ld"
205
- VTOR_SECTION=" #if (CM4_BINARY_START == 0x60000000)\n \
206
- REGION_ALIAS(\" RAM\" , FLASH);\n \
207
- #else\n \
208
- REGION_ALIAS(\" RAM\" , RAM_D2);\n \
209
- #endif\n"
210
- sed -i " s?REGION_ALIAS.*?${VTOR_SECTION} ?g" $ARDUINOVARIANT /linker_script.ld
211
- fi
212
-
213
198
if [[ $ARDUINOVARIANT == * PORTENTA* M7* || $ARDUINOVARIANT == * GIGA* || $ARDUINOVARIANT == * OPTA* ]]; then
214
- OPENAMP_SECTION =" ${OPENAMP_SECTION } \
199
+ PDM_SECTION =" ${PDM_SECTION } \
215
200
_dtcm_lma = __etext + SIZEOF(.data);\n \
216
201
.dtcm : AT(_dtcm_lma) {\n \
217
202
_sdtcm = .;\n \
@@ -220,9 +205,22 @@ generate_flags () {
220
205
} > DTCMRAM"
221
206
fi
222
207
223
- sed -i " s?.heap (COPY):?${OPENAMP_SECTION } \n .heap (COPY):?g" $ARDUINOVARIANT /linker_script.ld
208
+ sed -i " s?.heap (COPY):?${PDM_SECTION } \n .heap (COPY):?g" $ARDUINOVARIANT /linker_script.ld
224
209
OPENAMP_REGIONS=" __OPENAMP_region_start__ = 0x38000400;\n__OPENAMP_region_end__ = 0x38000400 + LENGTH(RAM_D3) - 1K;"
225
210
sed -i " s?ENTRY(Reset_Handler)?${OPENAMP_REGIONS} \nENTRY(Reset_Handler)?g" $ARDUINOVARIANT /linker_script.ld
211
+
212
+ if [[ $ARDUINOVARIANT == * GENERIC* M4 ]]; then
213
+ echo " Fixing VTOR base in $ARDUINOVARIANT /linker_script.ld"
214
+ VTOR_SECTION=" #if (CM4_BINARY_START == 0x60000000)\n \
215
+ REGION_ALIAS(\" RAM\" , FLASH);\n \
216
+ #else\n \
217
+ REGION_ALIAS(\" RAM\" , RAM_D2);\n \
218
+ #endif\n"
219
+ sed -i " s?REGION_ALIAS.*?${VTOR_SECTION} ?g" $ARDUINOVARIANT /linker_script.ld
220
+ echo " Fixing shared memory attributes in $ARDUINOVARIANT /linker_script.ld"
221
+ sed -i " s?.heap (COPY)?.heap (NOLOAD)?g" $ARDUINOVARIANT /linker_script.ld
222
+ sed -i " s?.stack_dummy (COPY)?.stack_dummy (NOLOAD)?g" $ARDUINOVARIANT /linker_script.ld
223
+ fi
226
224
fi
227
225
echo " Patching linker scripts"
228
226
sed -i ' s/0x8100000/CM4_BINARY_START/g' " $ARDUINOVARIANT " /linker_script.ld
0 commit comments