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.*)

Reply via email to