openblt/Target/Demo/ARMCM3_STM32_Nucleo_STM32F1.../Boot/obj/cstart.lst

197 lines
12 KiB
Plaintext

1 .syntax unified
2 .cpu cortex-m3
3 .fpu softvfp
4 .eabi_attribute 20, 1
5 .eabi_attribute 21, 1
6 .eabi_attribute 23, 3
7 .eabi_attribute 24, 1
8 .eabi_attribute 25, 1
9 .eabi_attribute 26, 1
10 .eabi_attribute 30, 1
11 .eabi_attribute 34, 1
12 .eabi_attribute 18, 4
13 .thumb
14 .file "cstart.c"
15 .text
16 .Ltext0:
17 .cfi_sections .debug_frame
18 .section .text.reset_handler,"ax",%progbits
19 .align 2
20 .global reset_handler
21 .thumb
22 .thumb_func
24 reset_handler:
25 .LFB0:
26 .file 1 "../../../Source/ARMCM3_STM32/GCC/cstart.c"
1:../../../Source/ARMCM3_STM32/GCC/cstart.c **** /************************************************************************************//**
2:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * \file Source\ARMCM3_STM32\GCC\cstart.c
3:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * \brief Bootloader C startup source file.
4:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * \ingroup Target_ARMCM3_STM32
5:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * \internal
6:../../../Source/ARMCM3_STM32/GCC/cstart.c **** *----------------------------------------------------------------------------------------
7:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * C O P Y R I G H T
8:../../../Source/ARMCM3_STM32/GCC/cstart.c **** *----------------------------------------------------------------------------------------
9:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
10:../../../Source/ARMCM3_STM32/GCC/cstart.c **** *
11:../../../Source/ARMCM3_STM32/GCC/cstart.c **** *----------------------------------------------------------------------------------------
12:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * L I C E N S E
13:../../../Source/ARMCM3_STM32/GCC/cstart.c **** *----------------------------------------------------------------------------------------
14:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
15:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * modify it under the terms of the GNU General Public License as published by the Free
16:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * Software Foundation, either version 3 of the License, or (at your option) any later
17:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * version.
18:../../../Source/ARMCM3_STM32/GCC/cstart.c **** *
19:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
20:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
21:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * PURPOSE. See the GNU General Public License for more details.
22:../../../Source/ARMCM3_STM32/GCC/cstart.c **** *
23:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * You should have received a copy of the GNU General Public License along with OpenBLT.
24:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * If not, see <http://www.gnu.org/licenses/>.
25:../../../Source/ARMCM3_STM32/GCC/cstart.c **** *
26:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * A special exception to the GPL is included to allow you to distribute a combined work
27:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * that includes OpenBLT without being obliged to provide the source code for any
28:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * proprietary components. The exception text is included at the bottom of the license
29:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * file <license.html>.
30:../../../Source/ARMCM3_STM32/GCC/cstart.c **** *
31:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * \endinternal
32:../../../Source/ARMCM3_STM32/GCC/cstart.c **** ****************************************************************************************/
33:../../../Source/ARMCM3_STM32/GCC/cstart.c ****
34:../../../Source/ARMCM3_STM32/GCC/cstart.c **** /****************************************************************************************
35:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * Include files
36:../../../Source/ARMCM3_STM32/GCC/cstart.c **** ****************************************************************************************/
37:../../../Source/ARMCM3_STM32/GCC/cstart.c **** #include "boot.h" /* bootloader generic header */
38:../../../Source/ARMCM3_STM32/GCC/cstart.c ****
39:../../../Source/ARMCM3_STM32/GCC/cstart.c ****
40:../../../Source/ARMCM3_STM32/GCC/cstart.c **** /****************************************************************************************
41:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * External function protoypes
42:../../../Source/ARMCM3_STM32/GCC/cstart.c **** ****************************************************************************************/
43:../../../Source/ARMCM3_STM32/GCC/cstart.c **** extern int main(void);
44:../../../Source/ARMCM3_STM32/GCC/cstart.c ****
45:../../../Source/ARMCM3_STM32/GCC/cstart.c ****
46:../../../Source/ARMCM3_STM32/GCC/cstart.c **** /****************************************************************************************
47:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * External data declarations
48:../../../Source/ARMCM3_STM32/GCC/cstart.c **** ****************************************************************************************/
49:../../../Source/ARMCM3_STM32/GCC/cstart.c **** /* these externals are declared by the linker */
50:../../../Source/ARMCM3_STM32/GCC/cstart.c **** extern blt_int32u _etext;
51:../../../Source/ARMCM3_STM32/GCC/cstart.c **** extern blt_int32u _data;
52:../../../Source/ARMCM3_STM32/GCC/cstart.c **** extern blt_int32u _edata;
53:../../../Source/ARMCM3_STM32/GCC/cstart.c **** extern blt_int32u _bss;
54:../../../Source/ARMCM3_STM32/GCC/cstart.c **** extern blt_int32u _ebss;
55:../../../Source/ARMCM3_STM32/GCC/cstart.c **** extern blt_int32u _estack;
56:../../../Source/ARMCM3_STM32/GCC/cstart.c ****
57:../../../Source/ARMCM3_STM32/GCC/cstart.c ****
58:../../../Source/ARMCM3_STM32/GCC/cstart.c **** /************************************************************************************//**
59:../../../Source/ARMCM3_STM32/GCC/cstart.c **** ** \brief Reset interrupt service routine. Configures the stack, initializes
60:../../../Source/ARMCM3_STM32/GCC/cstart.c **** ** RAM and jumps to function main.
61:../../../Source/ARMCM3_STM32/GCC/cstart.c **** ** \return none.
62:../../../Source/ARMCM3_STM32/GCC/cstart.c **** **
63:../../../Source/ARMCM3_STM32/GCC/cstart.c **** ****************************************************************************************/
64:../../../Source/ARMCM3_STM32/GCC/cstart.c **** void reset_handler(void)
65:../../../Source/ARMCM3_STM32/GCC/cstart.c **** {
27 .loc 1 65 0
28 .cfi_startproc
29 @ args = 0, pretend = 0, frame = 0
30 @ frame_needed = 0, uses_anonymous_args = 0
31 0000 08B5 push {r3, lr}
32 .cfi_def_cfa_offset 8
33 .cfi_offset 3, -8
34 .cfi_offset 14, -4
66:../../../Source/ARMCM3_STM32/GCC/cstart.c **** blt_int32u *pSrc, *pDest;
67:../../../Source/ARMCM3_STM32/GCC/cstart.c ****
68:../../../Source/ARMCM3_STM32/GCC/cstart.c **** /* disable interrupts first */
69:../../../Source/ARMCM3_STM32/GCC/cstart.c **** __asm(" cpsid i");
35 .loc 1 69 0
36 @ 69 "../../../Source/ARMCM3_STM32/GCC/cstart.c" 1
37 0002 72B6 cpsid i
38 @ 0 "" 2
39 .LVL0:
70:../../../Source/ARMCM3_STM32/GCC/cstart.c **** /* copy the data segment initializers from flash to SRAM */
71:../../../Source/ARMCM3_STM32/GCC/cstart.c **** pSrc = &_etext;
72:../../../Source/ARMCM3_STM32/GCC/cstart.c **** for(pDest = &_data; pDest < &_edata; )
40 .loc 1 72 0
41 .thumb
42 0004 0E4B ldr r3, .L6
43 0006 0F4A ldr r2, .L6+4
44 0008 9A42 cmp r2, r3
45 000a 0DD2 bcs .L2
46 000c 101D adds r0, r2, #4
47 000e 0333 adds r3, r3, #3
48 0010 181A subs r0, r3, r0
49 0012 20F00300 bic r0, r0, #3
50 0016 0430 adds r0, r0, #4
51 0018 0B4B ldr r3, .L6+8
52 001a 1844 add r0, r0, r3
53 .LVL1:
54 .L3:
73:../../../Source/ARMCM3_STM32/GCC/cstart.c **** {
74:../../../Source/ARMCM3_STM32/GCC/cstart.c **** *pDest++ = *pSrc++;
55 .loc 1 74 0
56 001c 53F8041B ldr r1, [r3], #4
57 .LVL2:
58 0020 42F8041B str r1, [r2], #4
59 .LVL3:
72:../../../Source/ARMCM3_STM32/GCC/cstart.c **** {
60 .loc 1 72 0
61 0024 8342 cmp r3, r0
62 0026 F9D1 bne .L3
63 .LVL4:
64 .L2:
75:../../../Source/ARMCM3_STM32/GCC/cstart.c **** }
76:../../../Source/ARMCM3_STM32/GCC/cstart.c **** /* zero fill the bss segment. this is done with inline assembly since this will
77:../../../Source/ARMCM3_STM32/GCC/cstart.c **** * clear the value of pDest if it is not kept in a register.
78:../../../Source/ARMCM3_STM32/GCC/cstart.c **** */
79:../../../Source/ARMCM3_STM32/GCC/cstart.c **** __asm(" ldr r0, =_bss\n"
65 .loc 1 79 0
66 @ 79 "../../../Source/ARMCM3_STM32/GCC/cstart.c" 1
67 0028 0848 ldr r0, =_bss
68 002a 0949 ldr r1, =_ebss
69 002c 4FF00002 mov r2, #0
70 .thumb_func
71 zero_loop:
72 0030 8842 cmp r0, r1
73 0032 B8BF it lt
74 0034 40F8042B strlt r2, [r0], #4
75 0038 FADB blt zero_loop
76 @ 0 "" 2
80:../../../Source/ARMCM3_STM32/GCC/cstart.c **** " ldr r1, =_ebss\n"
81:../../../Source/ARMCM3_STM32/GCC/cstart.c **** " mov r2, #0\n"
82:../../../Source/ARMCM3_STM32/GCC/cstart.c **** " .thumb_func\n"
83:../../../Source/ARMCM3_STM32/GCC/cstart.c **** "zero_loop:\n"
84:../../../Source/ARMCM3_STM32/GCC/cstart.c **** " cmp r0, r1\n"
85:../../../Source/ARMCM3_STM32/GCC/cstart.c **** " it lt\n"
86:../../../Source/ARMCM3_STM32/GCC/cstart.c **** " strlt r2, [r0], #4\n"
87:../../../Source/ARMCM3_STM32/GCC/cstart.c **** " blt zero_loop");
88:../../../Source/ARMCM3_STM32/GCC/cstart.c **** /* start the software application by calling its entry point */
89:../../../Source/ARMCM3_STM32/GCC/cstart.c **** main();
77 .loc 1 89 0
78 .thumb
79 003a FFF7FEFF bl main
80 .LVL5:
81 003e 08BD pop {r3, pc}
82 .L7:
83 .align 2
84 .L6:
85 0040 00000000 .word _edata
86 0044 00000000 .word _data
87 0048 00000000 .word _etext
88 .cfi_endproc
89 .LFE0:
91 .text
92 .Letext0:
93 .file 2 "../../../Source/ARMCM3_STM32/types.h"
DEFINED SYMBOLS
*ABS*:00000000 cstart.c
C:\Users\lwngim1\AppData\Local\Temp\ccu7mGw5.s:19 .text.reset_handler:00000000 $t
C:\Users\lwngim1\AppData\Local\Temp\ccu7mGw5.s:24 .text.reset_handler:00000000 reset_handler
C:\Users\lwngim1\AppData\Local\Temp\ccu7mGw5.s:71 .text.reset_handler:00000030 zero_loop
C:\Users\lwngim1\AppData\Local\Temp\ccu7mGw5.s:85 .text.reset_handler:00000040 $d
.debug_frame:00000010 $d
UNDEFINED SYMBOLS
_bss
_ebss
main
_edata
_data
_etext