You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by pk...@apache.org on 2022/10/05 12:24:54 UTC

[incubator-nuttx] branch master updated: boards: Change the linker generated symbols from uint32_t to uint8_t array

This is an automated email from the ASF dual-hosted git repository.

pkarashchenko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new 92f156c969 boards: Change the linker generated symbols from uint32_t to uint8_t array
92f156c969 is described below

commit 92f156c969f531f45feafb80468a5086facdb8fd
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Wed Oct 5 16:07:10 2022 +0800

    boards: Change the linker generated symbols from uint32_t to uint8_t array
    
    since the symbol generated by linker is always used as an address not a value.
    
    Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
---
 .../arm/gd32f4/gd32f450zk-eval/src/gd32f4xx_romfs.c   | 14 +++++---------
 .../arm/gd32f4/gd32f450zk-eval/src/gd32f4xx_romfs.h   |  2 +-
 .../arm/lpc17xx_40xx/pnev5180b/src/lpc17_40_romfs.c   | 18 +++++++-----------
 .../arm/lpc17xx_40xx/pnev5180b/src/lpc17_40_romfs.h   |  2 +-
 boards/arm/stm32/nucleo-f429zi/src/stm32_romfs.h      |  2 +-
 .../stm32/nucleo-f429zi/src/stm32_romfs_initialize.c  | 16 ++++++----------
 boards/arm/stm32/omnibusf4/src/stm32_romfs.h          |  2 +-
 .../arm/stm32/omnibusf4/src/stm32_romfs_initialize.c  | 18 +++++++-----------
 boards/arm/stm32/stm32f4discovery/src/stm32_romfs.h   |  2 +-
 .../stm32f4discovery/src/stm32_romfs_initialize.c     | 19 +++++++------------
 boards/arm/stm32f7/nucleo-144/src/stm32_romfs.h       |  2 +-
 .../stm32f7/nucleo-144/src/stm32_romfs_initialize.c   | 18 +++++++-----------
 boards/arm/stm32h7/nucleo-h743zi/src/stm32_romfs.h    |  2 +-
 .../nucleo-h743zi/src/stm32_romfs_initialize.c        | 16 ++++++----------
 14 files changed, 52 insertions(+), 81 deletions(-)

diff --git a/boards/arm/gd32f4/gd32f450zk-eval/src/gd32f4xx_romfs.c b/boards/arm/gd32f4/gd32f450zk-eval/src/gd32f4xx_romfs.c
index f035d3c7c5..53853018a9 100644
--- a/boards/arm/gd32f4/gd32f450zk-eval/src/gd32f4xx_romfs.c
+++ b/boards/arm/gd32f4/gd32f450zk-eval/src/gd32f4xx_romfs.c
@@ -75,14 +75,10 @@ __asm__ (
     "   .balign " STR(ROMFS_SECTOR_SIZE)           "\n"
     "   .globl   romfs_data_end                     \n"
     "romfs_data_end:                                \n"
-    "   .globl   romfs_data_size                    \n"
-    "romfs_data_size:                               \n"
-    "   .word romfs_data_end - romfs_data_begin     \n"
     );
 
-extern const char romfs_data_begin;
-extern const char romfs_data_end;
-extern const int  romfs_data_size;
+extern const uint8_t romfs_data_begin[];
+extern const uint8_t romfs_data_end[];
 
 /****************************************************************************
  * Public Functions
@@ -99,7 +95,7 @@ extern const int  romfs_data_size;
  *   Zero (OK) on success, a negated errno value on error.
  *
  * Assumptions/Limitations:
- *   Memory addresses [&romfs_data_begin .. &romfs_data_begin) should contain
+ *   Memory addresses [romfs_data_begin .. romfs_data_end) should contain
  *   ROMFS volume data, as included in the assembly snippet above.
  *
  ****************************************************************************/
@@ -111,9 +107,9 @@ int gd32_romfs_initialize(void)
 
   /* Create a ROM disk for the /etc filesystem */
 
-  romfs_data_len = (uintptr_t)&romfs_data_end - (uintptr_t)&romfs_data_begin;
+  romfs_data_len = romfs_data_end - romfs_data_begin;
 
-  ret = romdisk_register(CONFIG_GD32F4_ROMFS_DEV_MINOR, &romfs_data_begin,
+  ret = romdisk_register(CONFIG_GD32F4_ROMFS_DEV_MINOR, romfs_data_begin,
                          NSECTORS(romfs_data_len), ROMFS_SECTOR_SIZE);
   if (ret < 0)
     {
diff --git a/boards/arm/gd32f4/gd32f450zk-eval/src/gd32f4xx_romfs.h b/boards/arm/gd32f4/gd32f450zk-eval/src/gd32f4xx_romfs.h
index 93277325a1..2f722811c8 100644
--- a/boards/arm/gd32f4/gd32f450zk-eval/src/gd32f4xx_romfs.h
+++ b/boards/arm/gd32f4/gd32f450zk-eval/src/gd32f4xx_romfs.h
@@ -49,7 +49,7 @@
  *   Zero (OK) on success, a negated errno value on error.
  *
  * Assumptions/Limitations:
- *   Memory addresses [&romfs_data_begin .. &romfs_data_begin) should contain
+ *   Memory addresses [romfs_data_begin .. romfs_data_end) should contain
  *   ROMFS volume data, as included in the assembly snippet in
  *   gd32f4xx_romfs.c.
  *
diff --git a/boards/arm/lpc17xx_40xx/pnev5180b/src/lpc17_40_romfs.c b/boards/arm/lpc17xx_40xx/pnev5180b/src/lpc17_40_romfs.c
index 65890ab6b1..c92f3afc00 100644
--- a/boards/arm/lpc17xx_40xx/pnev5180b/src/lpc17_40_romfs.c
+++ b/boards/arm/lpc17xx_40xx/pnev5180b/src/lpc17_40_romfs.c
@@ -75,14 +75,10 @@ __asm__ (
     \
     ".balign " STR(ROMFS_SECTOR_SIZE) "\n"
     ".globl   romfs_data_end\n"
-"romfs_data_end:\n"
-    ".globl   romfs_data_size\n"
-"romfs_data_size:\n"
-    ".word romfs_data_end - romfs_data_begin\n");
+"romfs_data_end:\n");
 
-extern const uint8_t romfs_data_begin;
-extern const uint8_t romfs_data_end;
-extern const int  romfs_data_size;
+extern const uint8_t romfs_data_begin[];
+extern const uint8_t romfs_data_end[];
 
 /****************************************************************************
  * Public Functions
@@ -99,21 +95,21 @@ extern const int  romfs_data_size;
  *   Zero (OK) on success, a negated errno value on error.
  *
  * Assumptions/Limitations:
- *   Memory addresses [&romfs_data_begin .. &romfs_data_en) should contain
+ *   Memory addresses [romfs_data_begin .. romfs_data_en) should contain
  *   ROMFS volume data, as included in the assembly snippet above.
  *
  ****************************************************************************/
 
 int lpc17_40_romfs_initialize(void)
 {
-  uintptr_t romfs_data_len;
+  size_t romfs_data_len;
   int  ret;
 
   /* Create a ROM disk for the /etc filesystem */
 
-  romfs_data_len = (uintptr_t)&romfs_data_end - (uintptr_t)&romfs_data_begin;
+  romfs_data_len = romfs_data_end - romfs_data_begin;
 
-  ret = romdisk_register(CONFIG_LPC17_40_ROMFS_DEV_MINOR, &romfs_data_begin,
+  ret = romdisk_register(CONFIG_LPC17_40_ROMFS_DEV_MINOR, romfs_data_begin,
                          NSECTORS(romfs_data_len), ROMFS_SECTOR_SIZE);
   if (ret < 0)
     {
diff --git a/boards/arm/lpc17xx_40xx/pnev5180b/src/lpc17_40_romfs.h b/boards/arm/lpc17xx_40xx/pnev5180b/src/lpc17_40_romfs.h
index 900c43701f..fabd709313 100644
--- a/boards/arm/lpc17xx_40xx/pnev5180b/src/lpc17_40_romfs.h
+++ b/boards/arm/lpc17xx_40xx/pnev5180b/src/lpc17_40_romfs.h
@@ -49,7 +49,7 @@
  *   Zero (OK) on success, a negated errno value on error.
  *
  * Assumptions/Limitations:
- *   Memory addresses [&romfs_data_begin .. &romfs_data_end) should contain
+ *   Memory addresses [romfs_data_begin .. romfs_data_end) should contain
  *   ROMFS volume data, as included in the assembly snippet in
  *   lpc17_40_romfs_initialize.c.
  *
diff --git a/boards/arm/stm32/nucleo-f429zi/src/stm32_romfs.h b/boards/arm/stm32/nucleo-f429zi/src/stm32_romfs.h
index 8e743a171f..4f045630d7 100644
--- a/boards/arm/stm32/nucleo-f429zi/src/stm32_romfs.h
+++ b/boards/arm/stm32/nucleo-f429zi/src/stm32_romfs.h
@@ -49,7 +49,7 @@
  *   Zero (OK) on success, a negated errno value on error.
  *
  * Assumptions/Limitations:
- *   Memory addresses [&romfs_data_begin .. &romfs_data_begin) should contain
+ *   Memory addresses [romfs_data_begin .. romfs_data_end) should contain
  *   ROMFS volume data, as included in the assembly snippet above (l. 84).
  *
  ****************************************************************************/
diff --git a/boards/arm/stm32/nucleo-f429zi/src/stm32_romfs_initialize.c b/boards/arm/stm32/nucleo-f429zi/src/stm32_romfs_initialize.c
index c4e750c7db..d09dd34c47 100644
--- a/boards/arm/stm32/nucleo-f429zi/src/stm32_romfs_initialize.c
+++ b/boards/arm/stm32/nucleo-f429zi/src/stm32_romfs_initialize.c
@@ -77,14 +77,10 @@ __asm__ (
     "   .balign " STR(ROMFS_SECTOR_SIZE)           "\n"
     "   .globl   romfs_data_end                     \n"
     "romfs_data_end:                                \n"
-    "   .globl   romfs_data_size                    \n"
-    "romfs_data_size:                               \n"
-    "   .word romfs_data_end - romfs_data_begin     \n"
     );
 
-extern const char romfs_data_begin;
-extern const char romfs_data_end;
-extern const int  romfs_data_size;
+extern const uint8_t romfs_data_begin[];
+extern const uint8_t romfs_data_end[];
 
 /****************************************************************************
  * Public Functions
@@ -101,21 +97,21 @@ extern const int  romfs_data_size;
  *   Zero (OK) on success, a negated errno value on error.
  *
  * Assumptions/Limitations:
- *   Memory addresses [&romfs_data_begin .. &romfs_data_begin) should contain
+ *   Memory addresses [romfs_data_begin .. romfs_data_end) should contain
  *   ROMFS volume data, as included in the assembly snippet above (l. 84).
  *
  ****************************************************************************/
 
 int stm32_romfs_initialize(void)
 {
-  uintptr_t romfs_data_len;
+  size_t romfs_data_len;
   int  ret;
 
   /* Create a ROM disk for the /etc filesystem */
 
-  romfs_data_len = (uintptr_t)&romfs_data_end - (uintptr_t)&romfs_data_begin;
+  romfs_data_len = romfs_data_end - romfs_data_begin;
 
-  ret = romdisk_register(CONFIG_STM32_ROMFS_DEV_MINOR, &romfs_data_begin,
+  ret = romdisk_register(CONFIG_STM32_ROMFS_DEV_MINOR, romfs_data_begin,
                          NSECTORS(romfs_data_len), ROMFS_SECTOR_SIZE);
   if (ret < 0)
     {
diff --git a/boards/arm/stm32/omnibusf4/src/stm32_romfs.h b/boards/arm/stm32/omnibusf4/src/stm32_romfs.h
index e0a97ff976..7f8f8861bc 100644
--- a/boards/arm/stm32/omnibusf4/src/stm32_romfs.h
+++ b/boards/arm/stm32/omnibusf4/src/stm32_romfs.h
@@ -64,7 +64,7 @@
  *   Zero (OK) on success, a negated errno value on error.
  *
  * Assumptions/Limitations:
- *   Memory addresses [&romfs_data_begin .. &romfs_data_begin) should contain
+ *   Memory addresses [romfs_data_begin .. romfs_data_end) should contain
  *   ROMFS volume data, as included in the assembly snippet above (l. 84).
  *
  ****************************************************************************/
diff --git a/boards/arm/stm32/omnibusf4/src/stm32_romfs_initialize.c b/boards/arm/stm32/omnibusf4/src/stm32_romfs_initialize.c
index 768702ba92..62f8c5c2cf 100644
--- a/boards/arm/stm32/omnibusf4/src/stm32_romfs_initialize.c
+++ b/boards/arm/stm32/omnibusf4/src/stm32_romfs_initialize.c
@@ -91,14 +91,10 @@ __asm__ (
     \
     ".balign " STR(ROMFS_SECTOR_SIZE) "\n"
     ".globl   romfs_data_end\n"
-"romfs_data_end:\n"
-    ".globl   romfs_data_size\n"
-"romfs_data_size:\n"
-    ".word romfs_data_end - romfs_data_begin\n");
+"romfs_data_end:\n");
 
-extern const char romfs_data_begin;
-extern const char romfs_data_end;
-extern const int  romfs_data_size;
+extern const uint8_t romfs_data_begin[];
+extern const uint8_t romfs_data_end[];
 
 /****************************************************************************
  * Public Functions
@@ -115,21 +111,21 @@ extern const int  romfs_data_size;
  *   Zero (OK) on success, a negated errno value on error.
  *
  * Assumptions/Limitations:
- *   Memory addresses [&romfs_data_begin .. &romfs_data_begin) should contain
+ *   Memory addresses [romfs_data_begin .. romfs_data_end) should contain
  *   ROMFS volume data, as included in the assembly snippet above (l. 84).
  *
  ****************************************************************************/
 
 int stm32_romfs_initialize(void)
 {
-  uintptr_t romfs_data_len
+  size_t romfs_data_len
   int  ret;
 
   /* Create a ROM disk for the /etc filesystem */
 
-  romfs_data_len = (uintptr_t)&romfs_data_end - (uintptr_t)&romfs_data_begin;
+  romfs_data_len = romfs_data_end - romfs_data_begin;
 
-  ret = romdisk_register(CONFIG_STM32_ROMFS_DEV_MINOR, &romfs_data_begin,
+  ret = romdisk_register(CONFIG_STM32_ROMFS_DEV_MINOR, romfs_data_begin,
                          NSECTORS(romfs_data_len), ROMFS_SECTOR_SIZE);
   if (ret < 0)
     {
diff --git a/boards/arm/stm32/stm32f4discovery/src/stm32_romfs.h b/boards/arm/stm32/stm32f4discovery/src/stm32_romfs.h
index 97e041e7dc..7ceb7b8938 100644
--- a/boards/arm/stm32/stm32f4discovery/src/stm32_romfs.h
+++ b/boards/arm/stm32/stm32f4discovery/src/stm32_romfs.h
@@ -64,7 +64,7 @@
  *   Zero (OK) on success, a negated errno value on error.
  *
  * Assumptions/Limitations:
- *   Memory addresses [&romfs_data_begin .. &romfs_data_begin) should contain
+ *   Memory addresses [romfs_data_begin .. romfs_data_end) should contain
  *   ROMFS volume data, as included in the assembly snippet above (l. 84).
  *
  ****************************************************************************/
diff --git a/boards/arm/stm32/stm32f4discovery/src/stm32_romfs_initialize.c b/boards/arm/stm32/stm32f4discovery/src/stm32_romfs_initialize.c
index 0e2c5e46da..67c84c1f1a 100644
--- a/boards/arm/stm32/stm32f4discovery/src/stm32_romfs_initialize.c
+++ b/boards/arm/stm32/stm32f4discovery/src/stm32_romfs_initialize.c
@@ -91,15 +91,10 @@ __asm__ (
     \
     ".balign " STR(ROMFS_SECTOR_SIZE) "\n"
     ".globl   romfs_data_end\n"
-"romfs_data_end:\n"
-    ".globl   romfs_data_size\n"
-"romfs_data_size:\n"
-    ".word romfs_data_end - romfs_data_begin\n"
-    ".previous\n");
+"romfs_data_end:\n");
 
-extern const char romfs_data_begin;
-extern const char romfs_data_end;
-extern const int  romfs_data_size;
+extern const uint8_t romfs_data_begin[];
+extern const uint8_t romfs_data_end[];
 
 /****************************************************************************
  * Public Functions
@@ -116,21 +111,21 @@ extern const int  romfs_data_size;
  *   Zero (OK) on success, a negated errno value on error.
  *
  * Assumptions/Limitations:
- *   Memory addresses [&romfs_data_begin .. &romfs_data_begin) should contain
+ *   Memory addresses [romfs_data_begin .. romfs_data_end) should contain
  *   ROMFS volume data, as included in the assembly snippet above (l. 84).
  *
  ****************************************************************************/
 
 int stm32_romfs_initialize(void)
 {
-  uintptr_t romfs_data_len;
+  size_t romfs_data_len;
   int  ret;
 
   /* Create a ROM disk for the /etc filesystem */
 
-  romfs_data_len = (uintptr_t)&romfs_data_end - (uintptr_t)&romfs_data_begin;
+  romfs_data_len = romfs_data_end - romfs_data_begin;
 
-  ret = romdisk_register(CONFIG_STM32_ROMFS_DEV_MINOR, &romfs_data_begin,
+  ret = romdisk_register(CONFIG_STM32_ROMFS_DEV_MINOR, romfs_data_begin,
                          NSECTORS(romfs_data_len), ROMFS_SECTOR_SIZE);
   if (ret < 0)
     {
diff --git a/boards/arm/stm32f7/nucleo-144/src/stm32_romfs.h b/boards/arm/stm32f7/nucleo-144/src/stm32_romfs.h
index 6b46a66d3d..9ee2bbedb8 100644
--- a/boards/arm/stm32f7/nucleo-144/src/stm32_romfs.h
+++ b/boards/arm/stm32f7/nucleo-144/src/stm32_romfs.h
@@ -64,7 +64,7 @@
  *   Zero (OK) on success, a negated errno value on error.
  *
  * Assumptions/Limitations:
- *   Memory addresses [&romfs_data_begin .. &romfs_data_begin) should contain
+ *   Memory addresses [romfs_data_begin .. romfs_data_end) should contain
  *   ROMFS volume data, as included in the assembly snippet above (l. 84).
  *
  ****************************************************************************/
diff --git a/boards/arm/stm32f7/nucleo-144/src/stm32_romfs_initialize.c b/boards/arm/stm32f7/nucleo-144/src/stm32_romfs_initialize.c
index 9a8302c56a..fb56827400 100644
--- a/boards/arm/stm32f7/nucleo-144/src/stm32_romfs_initialize.c
+++ b/boards/arm/stm32f7/nucleo-144/src/stm32_romfs_initialize.c
@@ -91,14 +91,10 @@ __asm__ (
     \
     ".balign " STR(ROMFS_SECTOR_SIZE) "\n"
     ".globl   romfs_data_end\n"
-"romfs_data_end:\n"
-    ".globl   romfs_data_size\n"
-"romfs_data_size:\n"
-    ".word romfs_data_end - romfs_data_begin\n");
+"romfs_data_end:\n");
 
-extern const char romfs_data_begin;
-extern const char romfs_data_end;
-extern const int  romfs_data_size;
+extern const uint8_t romfs_data_begin[];
+extern const uint8_t romfs_data_end[];
 
 /****************************************************************************
  * Public Functions
@@ -115,21 +111,21 @@ extern const int  romfs_data_size;
  *   Zero (OK) on success, a negated errno value on error.
  *
  * Assumptions/Limitations:
- *   Memory addresses [&romfs_data_begin .. &romfs_data_begin) should contain
+ *   Memory addresses [romfs_data_begin .. romfs_data_end) should contain
  *   ROMFS volume data, as included in the assembly snippet above (l. 84).
  *
  ****************************************************************************/
 
 int stm32_romfs_initialize(void)
 {
-  uintptr_t romfs_data_len;
+  size_t romfs_data_len;
   int  ret;
 
   /* Create a ROM disk for the /etc filesystem */
 
-  romfs_data_len = (uintptr_t)&romfs_data_end - (uintptr_t)&romfs_data_begin;
+  romfs_data_len = romfs_data_end - romfs_data_begin;
 
-  ret = romdisk_register(CONFIG_STM32_ROMFS_DEV_MINOR, &romfs_data_begin,
+  ret = romdisk_register(CONFIG_STM32_ROMFS_DEV_MINOR, romfs_data_begin,
                          NSECTORS(romfs_data_len), ROMFS_SECTOR_SIZE);
   if (ret < 0)
     {
diff --git a/boards/arm/stm32h7/nucleo-h743zi/src/stm32_romfs.h b/boards/arm/stm32h7/nucleo-h743zi/src/stm32_romfs.h
index 7251fa0d5b..a1c9a023aa 100644
--- a/boards/arm/stm32h7/nucleo-h743zi/src/stm32_romfs.h
+++ b/boards/arm/stm32h7/nucleo-h743zi/src/stm32_romfs.h
@@ -49,7 +49,7 @@
  *   Zero (OK) on success, a negated errno value on error.
  *
  * Assumptions/Limitations:
- *   Memory addresses [&romfs_data_begin .. &romfs_data_begin) should contain
+ *   Memory addresses [romfs_data_begin .. romfs_data_end) should contain
  *   ROMFS volume data, as included in the assembly snippet above (l. 84).
  *
  ****************************************************************************/
diff --git a/boards/arm/stm32h7/nucleo-h743zi/src/stm32_romfs_initialize.c b/boards/arm/stm32h7/nucleo-h743zi/src/stm32_romfs_initialize.c
index 5f5135385f..7852697934 100644
--- a/boards/arm/stm32h7/nucleo-h743zi/src/stm32_romfs_initialize.c
+++ b/boards/arm/stm32h7/nucleo-h743zi/src/stm32_romfs_initialize.c
@@ -75,14 +75,10 @@ __asm__ (
     "   .balign " STR(ROMFS_SECTOR_SIZE)           "\n"
     "   .globl   romfs_data_end                     \n"
     "romfs_data_end:                                \n"
-    "   .globl   romfs_data_size                    \n"
-    "romfs_data_size:                               \n"
-    "   .word romfs_data_end - romfs_data_begin     \n"
     );
 
-extern const char romfs_data_begin;
-extern const char romfs_data_end;
-extern const int  romfs_data_size;
+extern const uint8_t romfs_data_begin[];
+extern const uint8_t romfs_data_end[];
 
 /****************************************************************************
  * Public Functions
@@ -99,21 +95,21 @@ extern const int  romfs_data_size;
  *   Zero (OK) on success, a negated errno value on error.
  *
  * Assumptions/Limitations:
- *   Memory addresses [&romfs_data_begin .. &romfs_data_begin) should contain
+ *   Memory addresses [romfs_data_begin .. romfs_data_end) should contain
  *   ROMFS volume data, as included in the assembly snippet above (l. 84).
  *
  ****************************************************************************/
 
 int stm32_romfs_initialize(void)
 {
-  uintptr_t romfs_data_len;
+  size_t romfs_data_len;
   int  ret;
 
   /* Create a ROM disk for the /etc filesystem */
 
-  romfs_data_len = (uintptr_t)&romfs_data_end - (uintptr_t)&romfs_data_begin;
+  romfs_data_len = romfs_data_end - romfs_data_begin;
 
-  ret = romdisk_register(CONFIG_STM32_ROMFS_DEV_MINOR, &romfs_data_begin,
+  ret = romdisk_register(CONFIG_STM32_ROMFS_DEV_MINOR, romfs_data_begin,
                          NSECTORS(romfs_data_len), ROMFS_SECTOR_SIZE);
   if (ret < 0)
     {