1 Star 0 Fork 2.1K

ly4587/rt-thread

forked from RT-Thread/rt-thread 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
start_gcc.S 2.45 KB
一键复制 编辑 原始数据 按行查看 历史
/*
* Copyright (c) 2006-2022, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2010-12-21 onelife Initial creation for EFM32
* 2011-07-06 onelife Modify to make use the start code in libraries
* 2012-05-15 onelife Modified to compatible with CMSIS v3
*/
/***************************************************************************//**
* @addtogroup cortex-m3
* @{
*******************************************************************************/
.syntax unified
.cpu cortex-m3
.fpu softvfp
.thumb
/* start address for the initialization values of the .data section.
defined in linker script */
.word __etext
/* start address for the .data section. defined in linker script */
.word __data_start__
/* end address for the .data section. defined in linker script */
.word __data_end__
/* start address for the .bss section. defined in linker script */
.word __bss_start__
/* end address for the .bss section. defined in linker script */
.word __bss_end__
/***************************************************************************//**
* @brief This is the code that gets called when the processor first
* starts execution following a reset event. Only the absolutely
* necessary set is performed, after which the application
* supplied main() routine is called.
* @param None
* @retval None
*******************************************************************************/
.thumb
.thumb_func
.section .cs3.init,"ax", %progbits
.globl _start
.type _start, %function
_start:
/* Copy the data segment initializers from flash to SRAM */
movs r1, #0
b LoopCopyDataInit
CopyDataInit:
ldr r3, =__etext
ldr r3, [r3, r1]
str r3, [r0, r1]
adds r1, r1, #4
LoopCopyDataInit:
ldr r0, =__data_start__
ldr r3, =__data_end__
adds r2, r0, r1
cmp r2, r3
bcc CopyDataInit
ldr r2, =__bss_start__
b LoopFillZerobss
/* Zero fill the bss segment. */
FillZerobss:
movs r3, #0
str r3, [r2], #4
LoopFillZerobss:
ldr r3, = __bss_end__
cmp r2, r3
bcc FillZerobss
/* Call the application's entry point.*/
bl main
bx lr
.size _start, .-_start
/***************************************************************************//**
* @}
*******************************************************************************/
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/ly4587/rt-thread.git
git@gitee.com:ly4587/rt-thread.git
ly4587
rt-thread
rt-thread
master

搜索帮助

371d5123 14472233 46e8bd33 14472233