This is an automated email from the ASF dual-hosted git repository.
xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git
The following commit(s) were added to refs/heads/master by this push:
new 0de4bd7938 boards/stm32f0l0g0: unify liker scripts
0de4bd7938 is described below
commit 0de4bd793878bff933c6d13e8a4642e9c577160d
Author: raiden00pl <[email protected]>
AuthorDate: Wed Apr 9 11:18:04 2025 +0200
boards/stm32f0l0g0: unify liker scripts
Unify liker scripts for all stm32f0l0g0.
This fixes crash due to unaligned access to rodata for these boards.
Signed-off-by: raiden00pl <[email protected]>
---
boards/arm/stm32f0l0g0/nucleo-c071rb/scripts/flash.ld | 19 +++++++------------
boards/arm/stm32f0l0g0/nucleo-f072rb/scripts/flash.ld | 19 +++++++------------
boards/arm/stm32f0l0g0/nucleo-f091rc/scripts/flash.ld | 19 +++++++------------
.../stm32f0l0g0/stm32f051-discovery/scripts/flash.ld | 10 +++++-----
.../stm32f0l0g0/stm32f072-discovery/scripts/flash.ld | 14 +++++++-------
5 files changed, 33 insertions(+), 48 deletions(-)
diff --git a/boards/arm/stm32f0l0g0/nucleo-c071rb/scripts/flash.ld
b/boards/arm/stm32f0l0g0/nucleo-c071rb/scripts/flash.ld
index bde6b2946a..8c86e826a6 100644
--- a/boards/arm/stm32f0l0g0/nucleo-c071rb/scripts/flash.ld
+++ b/boards/arm/stm32f0l0g0/nucleo-c071rb/scripts/flash.ld
@@ -57,30 +57,26 @@ SECTIONS
_etext = ABSOLUTE(.);
} > flash
- .init_section :
- {
+ .init_section : ALIGN(4) {
_sinit = ABSOLUTE(.);
KEEP(*(SORT_BY_INIT_PRIORITY(.init_array.*)
SORT_BY_INIT_PRIORITY(.ctors.*)))
KEEP(*(.init_array EXCLUDE_FILE(*crtbegin.o *crtbegin?.o *crtend.o
*crtend?.o) .ctors))
_einit = ABSOLUTE(.);
} > flash
- .ARM.extab :
- {
+ .ARM.extab ALIGN(4): {
*(.ARM.extab*)
} > flash
- __exidx_start = ABSOLUTE(.);
- .ARM.exidx :
- {
+ .ARM.exidx : ALIGN(4) {
+ __exidx_start = ABSOLUTE(.);
*(.ARM.exidx*)
+ __exidx_end = ABSOLUTE(.);
} > flash
- __exidx_end = ABSOLUTE(.);
_eronly = ABSOLUTE(.);
- .data :
- {
+ .data : ALIGN(4) {
_sdata = ABSOLUTE(.);
*(.data .data.*)
*(.gnu.linkonce.d.*)
@@ -89,8 +85,7 @@ SECTIONS
_edata = ABSOLUTE(.);
} > sram AT > flash
- .bss :
- {
+ .bss : ALIGN(4) {
_sbss = ABSOLUTE(.);
*(.bss .bss.*)
*(.gnu.linkonce.b.*)
diff --git a/boards/arm/stm32f0l0g0/nucleo-f072rb/scripts/flash.ld
b/boards/arm/stm32f0l0g0/nucleo-f072rb/scripts/flash.ld
index f988f50c29..daf9005420 100644
--- a/boards/arm/stm32f0l0g0/nucleo-f072rb/scripts/flash.ld
+++ b/boards/arm/stm32f0l0g0/nucleo-f072rb/scripts/flash.ld
@@ -57,30 +57,26 @@ SECTIONS
_etext = ABSOLUTE(.);
} > flash
- .init_section :
- {
+ .init_section : ALIGN(4) {
_sinit = ABSOLUTE(.);
KEEP(*(SORT_BY_INIT_PRIORITY(.init_array.*)
SORT_BY_INIT_PRIORITY(.ctors.*)))
KEEP(*(.init_array EXCLUDE_FILE(*crtbegin.o *crtbegin?.o *crtend.o
*crtend?.o) .ctors))
_einit = ABSOLUTE(.);
} > flash
- .ARM.extab :
- {
+ .ARM.extab ALIGN(4): {
*(.ARM.extab*)
} > flash
- __exidx_start = ABSOLUTE(.);
- .ARM.exidx :
- {
+ .ARM.exidx : ALIGN(4) {
+ __exidx_start = ABSOLUTE(.);
*(.ARM.exidx*)
+ __exidx_end = ABSOLUTE(.);
} > flash
- __exidx_end = ABSOLUTE(.);
_eronly = ABSOLUTE(.);
- .data :
- {
+ .data : ALIGN(4) {
_sdata = ABSOLUTE(.);
*(.data .data.*)
*(.gnu.linkonce.d.*)
@@ -89,8 +85,7 @@ SECTIONS
_edata = ABSOLUTE(.);
} > sram AT > flash
- .bss :
- {
+ .bss : ALIGN(4) {
_sbss = ABSOLUTE(.);
*(.bss .bss.*)
*(.gnu.linkonce.b.*)
diff --git a/boards/arm/stm32f0l0g0/nucleo-f091rc/scripts/flash.ld
b/boards/arm/stm32f0l0g0/nucleo-f091rc/scripts/flash.ld
index eb7ac0c075..a5215fe4b6 100644
--- a/boards/arm/stm32f0l0g0/nucleo-f091rc/scripts/flash.ld
+++ b/boards/arm/stm32f0l0g0/nucleo-f091rc/scripts/flash.ld
@@ -57,30 +57,26 @@ SECTIONS
_etext = ABSOLUTE(.);
} > flash
- .init_section :
- {
+ .init_section : ALIGN(4) {
_sinit = ABSOLUTE(.);
KEEP(*(SORT_BY_INIT_PRIORITY(.init_array.*)
SORT_BY_INIT_PRIORITY(.ctors.*)))
KEEP(*(.init_array EXCLUDE_FILE(*crtbegin.o *crtbegin?.o *crtend.o
*crtend?.o) .ctors))
_einit = ABSOLUTE(.);
} > flash
- .ARM.extab :
- {
+ .ARM.extab ALIGN(4): {
*(.ARM.extab*)
} > flash
- __exidx_start = ABSOLUTE(.);
- .ARM.exidx :
- {
+ .ARM.exidx : ALIGN(4) {
+ __exidx_start = ABSOLUTE(.);
*(.ARM.exidx*)
+ __exidx_end = ABSOLUTE(.);
} > flash
- __exidx_end = ABSOLUTE(.);
_eronly = ABSOLUTE(.);
- .data :
- {
+ .data : ALIGN(4) {
_sdata = ABSOLUTE(.);
*(.data .data.*)
*(.gnu.linkonce.d.*)
@@ -89,8 +85,7 @@ SECTIONS
_edata = ABSOLUTE(.);
} > sram AT > flash
- .bss :
- {
+ .bss : ALIGN(4) {
_sbss = ABSOLUTE(.);
*(.bss .bss.*)
*(.gnu.linkonce.b.*)
diff --git a/boards/arm/stm32f0l0g0/stm32f051-discovery/scripts/flash.ld
b/boards/arm/stm32f0l0g0/stm32f051-discovery/scripts/flash.ld
index 0d0f0efcc9..53e7a78ab7 100644
--- a/boards/arm/stm32f0l0g0/stm32f051-discovery/scripts/flash.ld
+++ b/boards/arm/stm32f0l0g0/stm32f051-discovery/scripts/flash.ld
@@ -63,19 +63,19 @@ SECTIONS
_einit = ABSOLUTE(.);
} > flash
- .ARM.extab : {
+ .ARM.extab ALIGN(4): {
*(.ARM.extab*)
} > flash
- __exidx_start = ABSOLUTE(.);
.ARM.exidx : {
+ __exidx_start = ABSOLUTE(.);
*(.ARM.exidx*)
+ __exidx_end = ABSOLUTE(.);
} > flash
- __exidx_end = ABSOLUTE(.);
_eronly = ABSOLUTE(.);
- .data : {
+ .data : ALIGN(4) {
_sdata = ABSOLUTE(.);
*(.data .data.*)
*(.gnu.linkonce.d.*)
@@ -84,7 +84,7 @@ SECTIONS
_edata = ABSOLUTE(.);
} > sram AT > flash
- .bss : {
+ .bss : ALIGN(4) {
_sbss = ABSOLUTE(.);
*(.bss .bss.*)
*(.gnu.linkonce.b.*)
diff --git a/boards/arm/stm32f0l0g0/stm32f072-discovery/scripts/flash.ld
b/boards/arm/stm32f0l0g0/stm32f072-discovery/scripts/flash.ld
index f36088adc1..bd567ff426 100644
--- a/boards/arm/stm32f0l0g0/stm32f072-discovery/scripts/flash.ld
+++ b/boards/arm/stm32f0l0g0/stm32f072-discovery/scripts/flash.ld
@@ -56,26 +56,26 @@ SECTIONS
_etext = ABSOLUTE(.);
} > flash
- .init_section : {
+ .init_section : ALIGN(4) {
_sinit = ABSOLUTE(.);
KEEP(*(SORT_BY_INIT_PRIORITY(.init_array.*)
SORT_BY_INIT_PRIORITY(.ctors.*)))
KEEP(*(.init_array EXCLUDE_FILE(*crtbegin.o *crtbegin?.o *crtend.o
*crtend?.o) .ctors))
_einit = ABSOLUTE(.);
} > flash
- .ARM.extab : {
+ .ARM.extab ALIGN(4): {
*(.ARM.extab*)
} > flash
- __exidx_start = ABSOLUTE(.);
- .ARM.exidx : {
+ .ARM.exidx : ALIGN(4) {
+ __exidx_start = ABSOLUTE(.);
*(.ARM.exidx*)
+ __exidx_end = ABSOLUTE(.);
} > flash
- __exidx_end = ABSOLUTE(.);
_eronly = ABSOLUTE(.);
- .data : {
+ .data : ALIGN(4) {
_sdata = ABSOLUTE(.);
*(.data .data.*)
*(.gnu.linkonce.d.*)
@@ -84,7 +84,7 @@ SECTIONS
_edata = ABSOLUTE(.);
} > sram AT > flash
- .bss : {
+ .bss : ALIGN(4) {
_sbss = ABSOLUTE(.);
*(.bss .bss.*)
*(.gnu.linkonce.b.*)