mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2025-01-15 07:39:33 +08:00
ea6d73f140
1. Upgrade Cortex driver library (CMSIS -> CMSIS & Device): version 2.3.2 -> 3.0.1 & 3.0.0 - Remove "bsp/efm32/Libraries/CMSIS/Lib/ARM", "bsp/efm32/Libraries/CMSIS/Lib/G++" and "bsp/efm32/Libraries/CMSIS/SVD" to save space 2. Upgrade EFM32 driver libraries (efm32lib -> emlib): version 2.3.2 -> 3.0.0 - Remove "bsp/efm32/Libraries/Device/EnergyMicro/EFM32LG" and "bsp/efm32/Libraries/Device/EnergyMicro/EFM32TG" to save space 3. Upgrade EFM32GG_DK3750 development kit driver library: version 1.2.2 -> 2.0.1 4. Upgrade EFM32_Gxxx_DK development kit driver library: version 1.7.3 -> 2.0.1 5. Add energy management unit driver and test code 6. Modify linker script and related code to compatible with new version of libraries 7. Change EFM32 branch version number to 1.0 8. Add photo frame demo application git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2122 bbd45198-f89e-11dd-88c7-29a3b14d5316
90 lines
3.1 KiB
ArmAsm
90 lines
3.1 KiB
ArmAsm
/***************************************************************************//**
|
|
* @file start_gcc.S
|
|
* @brief Context switch functions
|
|
* COPYRIGHT (C) 2012, RT-Thread Development Team
|
|
* @author onelife
|
|
* @version 1.0
|
|
*******************************************************************************
|
|
* @section License
|
|
* The license and distribution terms for this file may be found in the file
|
|
* LICENSE in this distribution or at http://www.rt-thread.org/license/LICENSE
|
|
*******************************************************************************
|
|
* @section 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
|
|
|
|
/***************************************************************************//**
|
|
* @}
|
|
*******************************************************************************/
|