MDK開発環境STM 32起動ファイル_main関数解析
18533 ワード
MDK開発環境STM 32起動ファイル_main関数解析
STM32 , 。
========================================================================
** Section #1 'ER_IROM1' (SHT_PROGBITS) [SHF_ALLOC + SHF_EXECINSTR]
Size : 1008 bytes (alignment 4)
Address: 0x08000000
$d.realdata
RESET
__Vectors ;
0x08000000: 20000460 `.. DCD 536872032 ; 0x20000460
0x08000004: 08000369 i... DCD 134218601 ;Reset_Handler
0x08000008: 08000371 q... DCD 134218609
0x0800000c: 08000373 s... DCD 134218611
0x08000010: 08000375 u... DCD 134218613
0x08000014: 08000377 w... DCD 134218615
0x08000018: 08000379 y... DCD 134218617
...
$t
.ARM.Collect$$$$00000000
.ARM.Collect$$$$00000001
__Vectors_End ;
__main
_main_stk
0x08000130: f8dfd00c .... LDR sp,__lit__00000000 ; [0x8000140] = 0x20000460
.ARM.Collect$$$$00000004 ;
_main_scatterload
0x08000134: f000f92a ..*. BL __scatterload ; 0x800038c ; __scatterload
.ARM.Collect$$$$00000008
.ARM.Collect$$$$0000000A
.ARM.Collect$$$$0000000B
__main_after_scatterload
_main_clock
_main_cpp_init
_main_init
0x08000138: 4800 .H LDR r0,[pc,#0] ; [0x800013c] = 0x8000145 ; main , 0x0800013c
0x0800013a: 4700 .G BX r0
$d
0x0800013c: 08000145 E... DCD 134218053
.ARM.Collect$$$$00002712
__lit__00000000
.ARM.Collect$$$$0000000D
.ARM.Collect$$$$0000000F
__rt_final_cpp
__rt_final_exit
0x08000140: 20000460 `.. DCD 536872032
$t
.text
main ;main
0x08000144: bf00 .. NOP
0x08000146: bf00 .. NOP
0x08000148: 2003 . MOVS r0,#3
0x0800014a: 490c .I LDR r1,[pc,#48] ; [0x800017c] = 0x20000000
...
SystemInit ;SystemInit
0x08000266: b510 .. PUSH {r4,lr}
0x08000268: 4836 6H LDR r0,[pc,#216] ;
...
.text
Reset_Handler
0x08000368: 4806 .H LDR r0,[pc,#24] ; [0x8000384] = 0x8000267 ; SystemInit R0,0x08000267
0x0800036a: 4780 .G BLX r0 ; SystemInit
0x0800036c: 4806 .H LDR r0,[pc,#24] ; [0x8000388] = 0x8000131 ; _main R0,0x8000131
0x0800036e: 4700 .G BX r0 ; _main
```
$d
0x08000384: 08000267 g... DCD 134218343
0x08000388: 08000131 1... DCD 134218033
$t
.text
__scatterload
__scatterload_rt2
; RO ,0x80003d0 - 0x80003f0
;RW ZI 、 、 、 RW
;__scatterload_copy、ZI __scatterload_zeroinit
;
0x0800038c: 4c06 .L LDR r4,[pc,#24] ; [0x80003a8] = 0x80003d0 ;R4 = 0x80003d0, Region$$Table
0x0800038e: 4d07 .M LDR r5,[pc,#28] ; [0x80003ac] = 0x80003f0 ;R5 = 0x80003f0, Region$$Table
0x08000390: e006 .. B 0x80003a0 ; __scatterload + 20
0x08000392: 68e0 .h LDR r0,[r4,#0xc] ; R4+0xC R0,RW ZI
0x08000394: f0400301 @... ORR r3,r0,#1 ;R3 = [R0] | 0x1, R0 1, R3
0x08000398: e8940007 .... LDM r4,{r0-r2} ; RW ZI 、 R0 R1 R2
0x0800039c: 4798 .G BLX r3 ; RW ZI
0x0800039e: 3410 .4 ADDS r4,r4,#0x10 ; , ZI , R4 + 0x10
0x080003a0: 42ac .B CMP r4,r5 ; R4, R5
0x080003a2: d3f6 .. BCC 0x8000392 ; __scatterload + 6 ;R4 R5 , 0x8000392
0x080003a4: f7fffec8 .... BL __main_after_scatterload ; 0x8000138 ;RW ZI , main
$d
0x080003a8: 080003d0 .... DCD 134218704
0x080003ac: 080003f0 .... DCD 134218736
$t
i.__scatterload_copy
__scatterload_copy
0x080003b0: e002 .. B 0x80003b8 ; __scatterload_copy + 8
0x080003b2: c808 .. LDM r0!,{r3} ;R0 RW , R3 = [R0], R0 = R0 + 4
0x080003b4: 1f12 .. SUBS r2,r2,#4 ;R2 RW , R2 4
0x080003b6: c108 .. STM r1!,{r3} ;R1 RW , R3 R1
0x080003b8: 2a00 .* CMP r2,#0 ;R2 RW
0x080003ba: d1fa .. BNE 0x80003b2 ; __scatterload_copy + 2 ; ,
0x080003bc: 4770 pG BX lr ; 0x0800039F
i.__scatterload_null
__scatterload_null
0x080003be: 4770 pG BX lr
i.__scatterload_zeroinit
__scatterload_zeroinit
0x080003c0: 2000 . MOVS r0,#0
0x080003c2: e001 .. B 0x80003c8 ; __scatterload_zeroinit + 8
0x080003c4: c101 .. STM r1!,{r0} ;R0 R1 , R1 + 4
0x080003c6: 1f12 .. SUBS r2,r2,#4 ;R2 ZI , R2 4
0x080003c8: 2a00 .* CMP r2,#0 ;R2
0x080003ca: d1fb .. BNE 0x80003c4 ; __scatterload_zeroinit + 4 ; ,
0x080003cc: 4770 pG BX lr ; 0x0800039F
0x080003ce: 0000 .. MOVS r0,r0
$d.realdata
Region$$Table$$Base
0x080003d0: 080003f0 .... DCD 134218736 ; RW
0x080003d4: 20000000 ... DCD 536870912 ; RW
0x080003d8: 0000001c .... DCD 28 ;RW
0x080003dc: 080003b0 .... DCD 134218672 ;__scatterload_copy
0x080003e0: 0800040c .... DCD 134218764 ;
0x080003e4: 2000001c ... DCD 536870940 ; ZI
0x080003e8: 00000444 D... DCD 1092 ;ZI
0x080003ec: 080003c0 .... DCD 134218688 ;__scatterload_zeroinit
Region$$Table$$Limit
Section #2 'RW_IRAM1' (SHT_PROGBITS) [SHF_ALLOC + SHF_WRITE] ;RW 0x20000000, 28 bytes
Size : 28 bytes (alignment 4)
Address: 0x20000000
Section #3 'RW_IRAM1' (SHT_NOBITS) [SHF_ALLOC + SHF_WRITE] ;ZI 0x2000001c, 1092 bytes
Size : 1092 bytes (alignment 8)
Address: 0x2000001c