Răsfoiți Sursa

[BSP/stm32f427-robomaster-a] Correct RAM configuration information

a1012112796 5 ani în urmă
părinte
comite
15ceaad6e4

+ 1 - 1
bsp/stm32/stm32f427-robomaster-a/README.md

@@ -22,7 +22,7 @@ RoboMaster开发板套件是一款面向机器人DIY的开源主控套件。开
 
 该开发板常用 **板载资源** 如下:
 
-- MCU:STM32f427IIH6,主频 180MHz,2048KB FLASH ,128KB RAM
+- MCU:STM32f427IIH6,主频 180MHz,2048KB FLASH ,256KB RAM(含64KB CCM RAM未使用)
 - 常用外设
   - LED:2个,D10(红色,PE11),D9(绿色,PE14)
   - 按键:1个,KEY(PB2)

+ 1 - 1
bsp/stm32/stm32f427-robomaster-a/board/board.h

@@ -25,7 +25,7 @@ extern "C" {
 #define STM32_FLASH_SIZE               (2048 * 1024)
 #define STM32_FLASH_END_ADDRESS        ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE))
 
-#define STM32_SRAM1_SIZE               (128)
+#define STM32_SRAM1_SIZE               (192)
 #define STM32_SRAM1_START              (0x20000000)
 #define STM32_SRAM1_END                (STM32_SRAM1_START + STM32_SRAM1_SIZE * 1024)
 

+ 4 - 2
bsp/stm32/stm32f427-robomaster-a/board/linker_scripts/link.icf

@@ -6,8 +6,10 @@ define symbol __ICFEDIT_intvec_start__ = 0x08000000;
 /*-Memory Regions-*/
 define symbol __ICFEDIT_region_ROM_start__    = 0x08000000;
 define symbol __ICFEDIT_region_ROM_end__      = 0x081FFFFF;
-define symbol __ICFEDIT_region_RAM_start__    = 0x20000000;
-define symbol __ICFEDIT_region_RAM_end__      = 0x2001FFFF;
+define symbol __ICFEDIT_region_RAM1_start__   = 0x20000000;
+define symbol __ICFEDIT_region_RAM1_end__     = 0x2002FFFF;
+define symbol __ICFEDIT_region_RAM2_start__   = 0x10000000;
+define symbol __ICFEDIT_region_RAM2_end__     = 0x1000FFFF;
 
 /*-Sizes-*/
 define symbol __ICFEDIT_size_cstack__ = 0x0400;

+ 5 - 4
bsp/stm32/stm32f427-robomaster-a/board/linker_scripts/link.lds

@@ -6,7 +6,8 @@
 MEMORY
 {
     ROM (rx) : ORIGIN = 0x08000000, LENGTH = 2048k /* 2048KB flash */
-    RAM (rw) : ORIGIN = 0x20000000, LENGTH =  128k  /* 128KB sram */
+    RAM1 (rw) : ORIGIN = 0x20000000, LENGTH =  192k /* 192K sram */
+    RAM2 (rw) : ORIGIN = 0x10000000, LENGTH =   64k /* 64K sram */
 }
 ENTRY(Reset_Handler)
 _system_stack_size = 0x200;
@@ -88,7 +89,7 @@ SECTIONS
         . = ALIGN(4);
         /* This is used by the startup in order to initialize the .data secion */
         _edata = . ;
-    } > RAM
+    } > RAM1
 
     .stack : 
     {
@@ -97,7 +98,7 @@ SECTIONS
         . = . + _system_stack_size;
         . = ALIGN(4);
         _estack = .;
-    } > RAM
+    } > RAM1
 
     __bss_start = .;
     .bss :
@@ -115,7 +116,7 @@ SECTIONS
         _ebss = . ;
         
         *(.bss.init)
-    } > RAM
+    } > RAM1
     __bss_end = .;
 
     _end = .;

+ 4 - 2
bsp/stm32/stm32f427-robomaster-a/board/linker_scripts/link.sct

@@ -8,8 +8,10 @@ LR_IROM1 0x08000000 0x00200000  {    ; load region size_region
    *(InRoot$$Sections)
    .ANY (+RO)
   }
-  RW_IRAM1 0x20000000 0x00020000  {  ; RW data
+  RW_IRAM1 0x20000000 0x00030000  {  ; RW data
+   .ANY (+RW +ZI)
+  }
+  RW_IRAM2 0x10000000 0x00010000  {  ; RW data
    .ANY (+RW +ZI)
   }
 }
-