======================================================================== ** ELF Header Information File Name: .\test.axf Machine class: ELFCLASS32 (32-bit) Data encoding: ELFDATA2LSB (Little endian) Header version: EV_CURRENT (Current version) Operating System ABI: none ABI Version: 0 File Type: ET_EXEC (Executable) (2) Machine: EM_ARM (ARM) Image Entry point: 0x080000c1 Flags: EF_ARM_HASENTRY + EF_ARM_ABI_FLOAT_SOFT (0x05000202) ARM ELF revision: 5 (ABI version 2) Conforms to Soft float procedure-call standard Built with Component: ARM Compiler 6.16 Tool: armasm [5dfea300] Component: ARM Compiler 6.16 Tool: armlink [5dfeaa00] Header size: 52 bytes (0x34) Program header entry size: 32 bytes (0x20) Section header entry size: 40 bytes (0x28) Program header entries: 1 Section header entries: 14 Program header offset: 7656 (0x00001de8) Section header offset: 7688 (0x00001e08) Section header string table index: 13 ======================================================================== ** Program header #0 (PT_LOAD) [PF_X + PF_W + PF_R + PF_ARM_ENTRY] Size : 1480 bytes (452 bytes in file) Virtual address: 0x08000000 (Alignment 8) ======================================================================== ** Section #1 'ER_IROM1' (SHT_PROGBITS) [SHF_ALLOC + SHF_EXECINSTR] Size : 452 bytes (alignment 4) Address: 0x08000000 $d.realdata RESET __Vectors 0x08000000: 20000420 .. DCD 536871968 0x08000004: 080000d5 .... DCD 134217941 0x08000008: 080000dd .... DCD 134217949 0x0800000c: 080000df .... DCD 134217951 0x08000010: 00000000 .... DCD 0 0x08000014: 00000000 .... DCD 0 0x08000018: 00000000 .... DCD 0 0x0800001c: 00000000 .... DCD 0 0x08000020: 00000000 .... DCD 0 0x08000024: 00000000 .... DCD 0 0x08000028: 00000000 .... DCD 0 0x0800002c: 080000e1 .... DCD 134217953 0x08000030: 00000000 .... DCD 0 0x08000034: 00000000 .... DCD 0 0x08000038: 080000e3 .... DCD 134217955 0x0800003c: 080000e5 .... DCD 134217957 0x08000040: 080000e7 .... DCD 134217959 0x08000044: 00000000 .... DCD 0 0x08000048: 080000e7 .... DCD 134217959 0x0800004c: 080000e7 .... DCD 134217959 0x08000050: 080000e7 .... DCD 134217959 0x08000054: 080000e7 .... DCD 134217959 0x08000058: 080000e7 .... DCD 134217959 0x0800005c: 080000e7 .... DCD 134217959 0x08000060: 00000000 .... DCD 0 0x08000064: 080000e7 .... DCD 134217959 0x08000068: 080000e7 .... DCD 134217959 0x0800006c: 080000e7 .... DCD 134217959 0x08000070: 080000e7 .... DCD 134217959 0x08000074: 080000e7 .... DCD 134217959 0x08000078: 080000e7 .... DCD 134217959 0x0800007c: 00000000 .... DCD 0 0x08000080: 080000e7 .... DCD 134217959 0x08000084: 00000000 .... DCD 0 0x08000088: 00000000 .... DCD 0 0x0800008c: 080000e7 .... DCD 134217959 0x08000090: 00000000 .... DCD 0 0x08000094: 080000e7 .... DCD 134217959 0x08000098: 080000e7 .... DCD 134217959 0x0800009c: 080000e7 .... DCD 134217959 0x080000a0: 00000000 .... DCD 0 0x080000a4: 080000e7 .... DCD 134217959 0x080000a8: 00000000 .... DCD 0 0x080000ac: 080000e7 .... DCD 134217959 0x080000b0: 080000e7 .... DCD 134217959 0x080000b4: 00000000 .... DCD 0 0x080000b8: 00000000 .... DCD 0 0x080000bc: 00000000 .... DCD 0 $t .ARM.Collect$$$$00000000 .ARM.Collect$$$$00000001 __Vectors_End __main _main_stk 0x080000c0: 4803 .H LDR r0,__lit__00000000 ; [0x80000d0] = 0x20000420 0x080000c2: 4685 .F MOV sp,r0 .ARM.Collect$$$$00000004 _main_scatterload 0x080000c4: f000f814 .... BL __scatterload ; 0x80000f0 .ARM.Collect$$$$00000008 .ARM.Collect$$$$0000000A .ARM.Collect$$$$0000000B __main_after_scatterload _main_clock _main_cpp_init _main_init 0x080000c8: 4800 .H LDR r0,[pc,#0] ; [0x80000cc] = 0x800013d 0x080000ca: 4700 .G BX r0 $d 0x080000cc: 0800013d =... DCD 134218045 .ARM.Collect$$$$00002712 __lit__00000000 .ARM.Collect$$$$0000000D .ARM.Collect$$$$0000000F __rt_final_cpp __rt_final_exit 0x080000d0: 20000420 .. DCD 536871968 $t .text Reset_Handler ;;;122 LDR R0, =SystemInit 0x080000d4: 4804 .H LDR r0,[pc,#16] ; [0x80000e8] = 0x8000115 ;;;123 BLX R0 0x080000d6: 4780 .G BLX r0 ;;;124 LDR R0, =__main 0x080000d8: 4804 .H LDR r0,[pc,#16] ; [0x80000ec] = 0x80000c1 ;;;125 BX R0 0x080000da: 4700 .G BX r0 NMI_Handler ;;;126 ENDP ;;;127 ;;;128 ; Dummy Exception Handlers (infinite loops which can be modified) ;;;129 ;;;130 NMI_Handler PROC ;;;131 EXPORT NMI_Handler [WEAK] ;;;132 B . 0x080000dc: e7fe .. B NMI_Handler ; 0x80000dc HardFault_Handler ;;;133 ENDP ;;;134 HardFault_Handler\ ;;;135 PROC ;;;136 EXPORT HardFault_Handler [WEAK] ;;;137 B . 0x080000de: e7fe .. B HardFault_Handler ; 0x80000de SVC_Handler ;;;138 ENDP ;;;139 SVC_Handler PROC ;;;140 EXPORT SVC_Handler [WEAK] ;;;141 B . 0x080000e0: e7fe .. B SVC_Handler ; 0x80000e0 PendSV_Handler ;;;142 ENDP ;;;143 PendSV_Handler PROC ;;;144 EXPORT PendSV_Handler [WEAK] ;;;145 B . 0x080000e2: e7fe .. B PendSV_Handler ; 0x80000e2 SysTick_Handler ;;;146 ENDP ;;;147 SysTick_Handler PROC ;;;148 EXPORT SysTick_Handler [WEAK] ;;;149 B . 0x080000e4: e7fe .. B SysTick_Handler ; 0x80000e4 ADC1_IRQHandler DMA1_Channel1_IRQHandler DMA1_Channel2_3_IRQHandler DMAMUX1_IRQHandler EXTI0_1_IRQHandler EXTI2_3_IRQHandler EXTI4_15_IRQHandler FLASH_IRQHandler I2C1_IRQHandler RCC_IRQHandler RTC_IRQHandler SPI1_IRQHandler TIM14_IRQHandler TIM16_IRQHandler TIM17_IRQHandler TIM1_BRK_UP_TRG_COM_IRQHandler TIM1_CC_IRQHandler TIM3_IRQHandler USART1_IRQHandler USART2_IRQHandler WWDG_IRQHandler ;;;150 ENDP ;;;151 ;;;152 Default_Handler PROC ;;;153 ;;;154 EXPORT WWDG_IRQHandler [WEAK] ;;;155 EXPORT RTC_IRQHandler [WEAK] ;;;156 EXPORT FLASH_IRQHandler [WEAK] ;;;157 EXPORT RCC_IRQHandler [WEAK] ;;;158 EXPORT EXTI0_1_IRQHandler [WEAK] ;;;159 EXPORT EXTI2_3_IRQHandler [WEAK] ;;;160 EXPORT EXTI4_15_IRQHandler [WEAK] ;;;161 EXPORT DMA1_Channel1_IRQHandler [WEAK] ;;;162 EXPORT DMA1_Channel2_3_IRQHandler [WEAK] ;;;163 EXPORT DMAMUX1_IRQHandler [WEAK] ;;;164 EXPORT ADC1_IRQHandler [WEAK] ;;;165 EXPORT TIM1_BRK_UP_TRG_COM_IRQHandler [WEAK] ;;;166 EXPORT TIM1_CC_IRQHandler [WEAK] ;;;167 EXPORT TIM3_IRQHandler [WEAK] ;;;168 EXPORT TIM14_IRQHandler [WEAK] ;;;169 EXPORT TIM16_IRQHandler [WEAK] ;;;170 EXPORT TIM17_IRQHandler [WEAK] ;;;171 EXPORT I2C1_IRQHandler [WEAK] ;;;172 EXPORT SPI1_IRQHandler [WEAK] ;;;173 EXPORT USART1_IRQHandler [WEAK] ;;;174 EXPORT USART2_IRQHandler [WEAK] ;;;175 ;;;176 WWDG_IRQHandler ;;;177 RTC_IRQHandler ;;;178 FLASH_IRQHandler ;;;179 RCC_IRQHandler ;;;180 EXTI0_1_IRQHandler ;;;181 EXTI2_3_IRQHandler ;;;182 EXTI4_15_IRQHandler ;;;183 DMA1_Channel1_IRQHandler ;;;184 DMA1_Channel2_3_IRQHandler ;;;185 DMAMUX1_IRQHandler ;;;186 ADC1_IRQHandler ;;;187 TIM1_BRK_UP_TRG_COM_IRQHandler ;;;188 TIM1_CC_IRQHandler ;;;189 TIM3_IRQHandler ;;;190 TIM14_IRQHandler ;;;191 TIM16_IRQHandler ;;;192 TIM17_IRQHandler ;;;193 I2C1_IRQHandler ;;;194 SPI1_IRQHandler ;;;195 USART1_IRQHandler ;;;196 USART2_IRQHandler ;;;197 ;;;198 B . 0x080000e6: e7fe .. B ADC1_IRQHandler ; 0x80000e6 $d 0x080000e8: 08000115 .... DCD 134218005 0x080000ec: 080000c1 .... DCD 134217921 $t .text __scatterload __scatterload_rt2 0x080000f0: 4c06 .L LDR r4,[pc,#24] ; [0x800010c] = 0x80001b4 0x080000f2: 2501 .% MOVS r5,#1 0x080000f4: 4e06 .N LDR r6,[pc,#24] ; [0x8000110] = 0x80001c4 0x080000f6: e005 .. B 0x8000104 ; __scatterload + 20 0x080000f8: 68e3 .h LDR r3,[r4,#0xc] 0x080000fa: cc07 .. LDM r4!,{r0-r2} 0x080000fc: 432b +C ORRS r3,r3,r5 0x080000fe: 3c0c .< SUBS r4,r4,#0xc 0x08000100: 4798 .G BLX r3 0x08000102: 3410 .4 ADDS r4,r4,#0x10 0x08000104: 42b4 .B CMP r4,r6 0x08000106: d3f7 .. BCC 0x80000f8 ; __scatterload + 8 0x08000108: f7ffffde .... BL __main_after_scatterload ; 0x80000c8 $d 0x0800010c: 080001b4 .... DCD 134218164 0x08000110: 080001c4 .... DCD 134218180 $t.2 SystemInit ;;; .\main.c ;;;39 { 0x08000114: 4a08 .J LDR r2,[pc,#32] ; [0x8000138] = 0x40021034 ;;;40 // enable GPIOA clock ;;;41 RCC->IOPENR |= RCC_IOPENR_GPIOAEN | RCC_IOPENR_GPIOBEN; 0x08000116: 6811 .h LDR r1,[r2,#0] 0x08000118: 2003 . MOVS r0,#3 0x0800011a: 4301 .C ORRS r1,r1,r0 0x0800011c: 6011 .` STR r1,[r2,#0] 0x0800011e: 2105 .! MOVS r1,#5 0x08000120: 070a .. LSLS r2,r1,#28 ;;;42 ;;;43 // set GPIOA pin5 to output ;;;44 IO_SET_PIN_DIR(GPIOA, MEASURE_PIN, 1); 0x08000122: 6811 .h LDR r1,[r2,#0] 0x08000124: 0280 .. LSLS r0,r0,#10 0x08000126: 4381 .C BICS r1,r1,r0 0x08000128: 2001 . MOVS r0,#1 0x0800012a: 0283 .. LSLS r3,r0,#10 0x0800012c: 18c9 .. ADDS r1,r1,r3 0x0800012e: 6011 .` STR r1,[r2,#0] 0x08000130: 0540 @. LSLS r0,r0,#21 0x08000132: 4910 .I LDR r1,[pc,#64] ; [0x8000174] = 0x50000018 ;;;45 ;;;46 // set GPIOA pin5 to low ;;;47 IO_SET_PIN(GPIOA, MEASURE_PIN, 0); 0x08000134: 6008 .` STR r0,[r1,#0] ;;;48 ;;;49 // Set GPIOB pin7 to input ;;;50 // GPIOB->MODER &= 0xffff3fff; ;;;51 ;;;52 } 0x08000136: 4770 pG BX lr $d.3 __arm_cp.1_0 0x08000138: 40021034 4..@ DCD 1073877044 $t.0 main 0x0800013c: b081 .. SUB sp,sp,#4 0x0800013e: 2000 . MOVS r0,#0 ;;; .\main.c (11) 0x08000140: 9000 .. STR r0,[sp,#0] 0x08000142: 4a0c .J LDR r2,[pc,#48] ; [0x8000174] = 0x50000018 0x08000144: 2120 ! MOVS r1,#0x20 ;;;12 IO_SET_PIN(GPIOA, MEASURE_PIN, 1); 0x08000146: 6011 .` STR r1,[r2,#0] 0x08000148: 4a0b .J LDR r2,[pc,#44] ; [0x8000178] = 0x40003000 0x0800014a: 490c .I LDR r1,[pc,#48] ; [0x800017c] = 0xcccc ;;;13 ;;;14 // Enable IWDG ;;;15 IWDG->KR = 0xCCCC; 0x0800014c: 6011 .` STR r1,[r2,#0] 0x0800014e: 490c .I LDR r1,[pc,#48] ; [0x8000180] = 0x5555 ;;;16 // Enable write access ;;;17 IWDG->KR = 0x5555; 0x08000150: 6011 .` STR r1,[r2,#0] 0x08000152: 490c .I LDR r1,[pc,#48] ; [0x8000184] = 0x40003004 ;;;18 // Set prescaler ;;;19 IWDG->PR = 0; 0x08000154: 6008 .` STR r0,[r1,#0] 0x08000156: 490c .I LDR r1,[pc,#48] ; [0x8000188] = 0x40003008 0x08000158: 2001 . MOVS r0,#1 ;;;20 // Set reload ;;;21 IWDG->RLR = 1; 0x0800015a: 6008 .` STR r0,[r1,#0] ;;;22 ;;;23 // Wait for the registers reload ;;;24 while (IWDG->SR) 0x0800015c: e7ff .. B 0x800015e ; main + 34 0x0800015e: 480b .H LDR r0,[pc,#44] ; [0x800018c] = 0x4000300c 0x08000160: 6800 .h LDR r0,[r0,#0] 0x08000162: 2800 .( CMP r0,#0 0x08000164: d001 .. BEQ 0x800016a ; main + 46 0x08000166: e7ff .. B 0x8000168 ; main + 44 0x08000168: e7f9 .. B 0x800015e ; main + 34 0x0800016a: 4903 .I LDR r1,[pc,#12] ; [0x8000178] = 0x40003000 0x0800016c: 4808 .H LDR r0,[pc,#32] ; [0x8000190] = 0xaaaa ;;;25 { ;;;26 } ;;;27 ;;;28 // refresh the watchdog. ;;;29 IWDG->KR = 0xAAAA; 0x0800016e: 6008 .` STR r0,[r1,#0] ;;;30 ;;;31 while(1); 0x08000170: e7ff .. B 0x8000172 ; main + 54 0x08000172: e7fe .. B 0x8000172 ; main + 54 $d.1 __arm_cp.0_0 0x08000174: 50000018 ...P DCD 1342177304 __arm_cp.0_1 0x08000178: 40003000 .0.@ DCD 1073754112 __arm_cp.0_2 0x0800017c: 0000cccc .... DCD 52428 __arm_cp.0_3 0x08000180: 00005555 UU.. DCD 21845 __arm_cp.0_4 0x08000184: 40003004 .0.@ DCD 1073754116 __arm_cp.0_5 0x08000188: 40003008 .0.@ DCD 1073754120 __arm_cp.0_6 0x0800018c: 4000300c .0.@ DCD 1073754124 __arm_cp.0_7 0x08000190: 0000aaaa .... DCD 43690 $t i.__scatterload_copy __scatterload_copy 0x08000194: e002 .. B 0x800019c ; __scatterload_copy + 8 0x08000196: c808 .. LDM r0!,{r3} 0x08000198: 1f12 .. SUBS r2,r2,#4 0x0800019a: c108 .. STM r1!,{r3} 0x0800019c: 2a00 .* CMP r2,#0 0x0800019e: d1fa .. BNE 0x8000196 ; __scatterload_copy + 2 0x080001a0: 4770 pG BX lr i.__scatterload_null __scatterload_null 0x080001a2: 4770 pG BX lr i.__scatterload_zeroinit __scatterload_zeroinit 0x080001a4: 2000 . MOVS r0,#0 0x080001a6: e001 .. B 0x80001ac ; __scatterload_zeroinit + 8 0x080001a8: c101 .. STM r1!,{r0} 0x080001aa: 1f12 .. SUBS r2,r2,#4 0x080001ac: 2a00 .* CMP r2,#0 0x080001ae: d1fb .. BNE 0x80001a8 ; __scatterload_zeroinit + 4 0x080001b0: 4770 pG BX lr 0x080001b2: 0000 .. MOVS r0,r0 $d.realdata Region$$Table$$Base 0x080001b4: 080001c4 .... DCD 134218180 0x080001b8: 20000020 .. DCD 536870944 0x080001bc: 00000400 .... DCD 1024 0x080001c0: 080001a4 .... DCD 134218148 Region$$Table$$Limit ** Section #2 'RW_IRAM1' (SHT_NOBITS) [SHF_ALLOC + SHF_WRITE] Size : 1024 bytes (alignment 8) Address: 0x20000020 ** Section #3 '.debug_abbrev' (SHT_PROGBITS) Size : 200 bytes ** Section #4 '.debug_frame' (SHT_PROGBITS) Size : 436 bytes ** Section #5 '.debug_info' (SHT_PROGBITS) Size : 1037 bytes ** Section #6 '.debug_line' (SHT_PROGBITS) Size : 410 bytes ** Section #7 '.debug_str' (SHT_PROGBITS) Size : 429 bytes ** Section #8 '.debug_ranges' (SHT_PROGBITS) Size : 24 bytes ** Section #9 '.symtab' (SHT_SYMTAB) Size : 1744 bytes (alignment 4) String table #10 '.strtab' Last local symbol no. 58 ** Section #10 '.strtab' (SHT_STRTAB) Size : 1556 bytes ** Section #11 '.note' (SHT_NOTE) Size : 24 bytes (alignment 4) ** Section #12 '.comment' (SHT_PROGBITS) Size : 1152 bytes ** Section #13 '.shstrtab' (SHT_STRTAB) Size : 136 bytes