Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 3b4c179

Browse files
Add linker script patch.
Signed-off-by: Martino Facchin <m.facchin@arduino.cc>
1 parent 6ffb9a3 commit 3b4c179

File tree

1 file changed

+19
-21
lines changed

1 file changed

+19
-21
lines changed

‎mbed-os-to-arduino‎

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -187,31 +187,16 @@ generate_flags () {
187187
echo "Patching '-fno-exceptions' flag for $ARDUINOVARIANT/${fl}flags.txt"
188188
sed -i '/-fno-exceptions/d' "$ARDUINOVARIANT"/${fl}flags.txt
189189
set +e
190-
HAS_OPENAMP_SECTION=`grep openamp_section "$ARDUINOVARIANT"/linker_script.ld`
190+
HAS_PDM_SECTION=`grep pdm_section "$ARDUINOVARIANT"/linker_script.ld`
191191
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 \
200195
*(.pdm_buffer)\n \
201196
} > RAM_D3\n"
202197

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-
213198
if [[ $ARDUINOVARIANT == *PORTENTA*M7* || $ARDUINOVARIANT == *GIGA* || $ARDUINOVARIANT == *OPTA* ]]; then
214-
OPENAMP_SECTION="${OPENAMP_SECTION} \
199+
PDM_SECTION="${PDM_SECTION} \
215200
_dtcm_lma = __etext + SIZEOF(.data);\n \
216201
.dtcm : AT(_dtcm_lma) {\n \
217202
_sdtcm = .;\n \
@@ -220,9 +205,22 @@ generate_flags () {
220205
} > DTCMRAM"
221206
fi
222207

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
224209
OPENAMP_REGIONS="__OPENAMP_region_start__ = 0x38000400;\n__OPENAMP_region_end__ = 0x38000400 + LENGTH(RAM_D3) - 1K;"
225210
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
226224
fi
227225
echo "Patching linker scripts"
228226
sed -i 's/0x8100000/CM4_BINARY_START/g' "$ARDUINOVARIANT"/linker_script.ld

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /