Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Flipper-Zero/STM32CubeWB.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'Projects/P-NUCLEO-WB55.Nucleo/Examples_MIX/UART/UART_HyperTerminal_IT/SW4STM32/startup_stm32wb55xx_cm4.s')
-rw-r--r--Projects/P-NUCLEO-WB55.Nucleo/Examples_MIX/UART/UART_HyperTerminal_IT/SW4STM32/startup_stm32wb55xx_cm4.s64
1 files changed, 41 insertions, 23 deletions
diff --git a/Projects/P-NUCLEO-WB55.Nucleo/Examples_MIX/UART/UART_HyperTerminal_IT/SW4STM32/startup_stm32wb55xx_cm4.s b/Projects/P-NUCLEO-WB55.Nucleo/Examples_MIX/UART/UART_HyperTerminal_IT/SW4STM32/startup_stm32wb55xx_cm4.s
index 023c1b016..f79eec117 100644
--- a/Projects/P-NUCLEO-WB55.Nucleo/Examples_MIX/UART/UART_HyperTerminal_IT/SW4STM32/startup_stm32wb55xx_cm4.s
+++ b/Projects/P-NUCLEO-WB55.Nucleo/Examples_MIX/UART/UART_HyperTerminal_IT/SW4STM32/startup_stm32wb55xx_cm4.s
@@ -44,21 +44,29 @@ defined in linker script */
.word _sbss
/* end address for the .bss section. defined in linker script */
.word _ebss
-
- .section .text.Reset_Handler
- .weak Reset_Handler
- .type Reset_Handler, %function
-Reset_Handler:
- ldr r0, =_estack
- mov sp, r0 /* set stack pointer */
-
-/* Copy the data segment initializers from flash to SRAM */
- ldr r0, =_sdata
- ldr r1, =_edata
- ldr r2, =_sidata
+/* start address for the .MB_MEM2 section. defined in linker script */
+.word _sMB_MEM2
+/* end address for the .MB_MEM2 section. defined in linker script */
+.word _eMB_MEM2
+
+/* INIT_BSS macro is used to fill the specified region [start : end] with zeros */
+.macro INIT_BSS start, end
+ ldr r0, =\start
+ ldr r1, =\end
movs r3, #0
- b LoopCopyDataInit
+ bl LoopFillZerobss
+.endm
+
+/* INIT_DATA macro is used to copy data in the region [start : end] starting from 'src' */
+.macro INIT_DATA start, end, src
+ ldr r0, =\start
+ ldr r1, =\end
+ ldr r2, =\src
+ movs r3, #0
+ bl LoopCopyDataInit
+.endm
+.section .text.data_initializers
CopyDataInit:
ldr r4, [r2, r3]
str r4, [r0, r3]
@@ -67,21 +75,31 @@ CopyDataInit:
LoopCopyDataInit:
adds r4, r0, r3
cmp r4, r1
- bcc CopyDataInit
-
-/* Zero fill the bss segment. */
- ldr r2, =_sbss
- ldr r4, =_ebss
- movs r3, #0
- b LoopFillZerobss
+ bcc CopyDataInit
+ bx lr
FillZerobss:
- str r3, [r2]
- adds r2, r2, #4
+ str r3, [r0]
+ adds r0, r0, #4
LoopFillZerobss:
- cmp r2, r4
+ cmp r0, r1
bcc FillZerobss
+ bx lr
+
+ .section .text.Reset_Handler
+ .weak Reset_Handler
+ .type Reset_Handler, %function
+Reset_Handler:
+ ldr r0, =_estack
+ mov sp, r0 /* set stack pointer */
+
+/* Copy the data segment initializers from flash to SRAM */
+ INIT_DATA _sdata, _edata, _sidata
+
+/* Zero fill the bss segments. */
+ INIT_BSS _sbss, _ebss
+ INIT_BSS _sMB_MEM2, _eMB_MEM2
/* Call the clock system intitialization function.*/
bl SystemInit