int main() { 8000de0: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 8000de4: ed2d 8b02 vpush {d8} 8000de8: b083 sub sp, #12 init_clock(); 8000dea: f7ff ff5b bl 8000ca4 init_io(); 8000dee: f7ff ffab bl 8000d48 // Initialize the timer for 1 ms intervals SysTick_Config(SystemCoreClock/1000); 8000df2: 4b31 ldr r3, [pc, #196] ; (8000eb8 ) 8000df4: 681b ldr r3, [r3, #0] 8000df6: 4a31 ldr r2, [pc, #196] ; (8000ebc ) 8000df8: fba2 2303 umull r2, r3, r2, r3 8000dfc: 099b lsrs r3, r3, #6 function SysTick_Config is not included. In this case, the file device.h must contain a vendor-specific implementation of this function. */ __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) { if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) 8000dfe: 3b01 subs r3, #1 8000e00: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000 8000e04: d209 bcs.n 8000e1a { return (1UL); /* Reload value impossible */ } SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ 8000e06: 4a2e ldr r2, [pc, #184] ; (8000ec0 ) 8000e08: 6053 str r3, [r2, #4] SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); 8000e0a: 4b2e ldr r3, [pc, #184] ; (8000ec4 ) 8000e0c: 21f0 movs r1, #240 ; 0xf0 8000e0e: f883 1023 strb.w r1, [r3, #35] ; 0x23 NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ 8000e12: 2300 movs r3, #0 8000e14: 6093 str r3, [r2, #8] SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | 8000e16: 2307 movs r3, #7 8000e18: 6013 str r3, [r2, #0] printf("Start\n"); 8000e1a: 482b ldr r0, [pc, #172] ; (8000ec8 ) 8000e1c: f000 fdc8 bl 80019b0 delay_ms(100); 8000e20: 2064 movs r0, #100 ; 0x64 8000e22: f7ff ff21 bl 8000c68 while (1) { // LED an WRITE_REG(GPIOA->BSRR, GPIO_BSRR_BS_5); 8000e26: f04f 4890 mov.w r8, #1207959552 ; 0x48000000 8000e2a: f04f 0b20 mov.w fp, #32 uint32_t start=systick_count; 8000e2e: 4d27 ldr r5, [pc, #156] ; (8000ecc ) float f=1.0; for (int i=0; i<10000; i++) { f=f*1.001; 8000e30: a71f add r7, pc, #124 ; (adr r7, 8000eb0 ) 8000e32: e9d7 6700 ldrd r6, r7, [r7] if (f>100000.0) 8000e36: eddf 8a26 vldr s17, [pc, #152] ; 8000ed0 { f=1.0; } } printf("f=%f, duration=%ld ms\n",f, systick_count-start); 8000e3a: f8df a09c ldr.w sl, [pc, #156] ; 8000ed8 8000e3e: e014 b.n 8000e6a 8000e40: 682c ldr r4, [r5, #0] 8000e42: ee17 0a90 vmov r0, s15 8000e46: f7ff fb87 bl 8000558 <__aeabi_f2d> 8000e4a: eba4 0409 sub.w r4, r4, r9 8000e4e: 9400 str r4, [sp, #0] 8000e50: 4602 mov r2, r0 8000e52: 460b mov r3, r1 8000e54: 4650 mov r0, sl 8000e56: f000 fd37 bl 80018c8 // LED aus WRITE_REG(GPIOA->BSRR, GPIO_BSRR_BR_5); 8000e5a: f44f 1300 mov.w r3, #2097152 ; 0x200000 8000e5e: f8c8 3018 str.w r3, [r8, #24] delay_ms(500); 8000e62: f44f 70fa mov.w r0, #500 ; 0x1f4 8000e66: f7ff feff bl 8000c68 WRITE_REG(GPIOA->BSRR, GPIO_BSRR_BS_5); 8000e6a: f8c8 b018 str.w fp, [r8, #24] uint32_t start=systick_count; 8000e6e: f8d5 9000 ldr.w r9, [r5] 8000e72: f242 7410 movw r4, #10000 ; 0x2710 f=f*1.001; 8000e76: eddf 7a17 vldr s15, [pc, #92] ; 8000ed4 f=1.0; 8000e7a: eeb7 8a00 vmov.f32 s16, #112 ; 0x3f800000 1.0 for (int i=0; i<10000; i++) 8000e7e: 3c01 subs r4, #1 8000e80: d0de beq.n 8000e40 f=f*1.001; 8000e82: ee17 0a90 vmov r0, s15 8000e86: f7ff fb67 bl 8000558 <__aeabi_f2d> 8000e8a: 4632 mov r2, r6 8000e8c: 463b mov r3, r7 8000e8e: f7ff fbbb bl 8000608 <__aeabi_dmul> 8000e92: f7ff fe91 bl 8000bb8 <__aeabi_d2f> 8000e96: ee07 0a90 vmov s15, r0 f=1.0; 8000e9a: eef4 7a68 vcmp.f32 s15, s17 8000e9e: eef1 fa10 vmrs APSR_nzcv, fpscr 8000ea2: bfc8 it gt 8000ea4: eef0 7a48 vmovgt.f32 s15, s16 8000ea8: e7e9 b.n 8000e7e 8000eaa: bf00 nop 8000eac: f3af 8000 nop.w 8000eb0: 9374bc6a .word 0x9374bc6a 8000eb4: 3ff00418 .word 0x3ff00418 8000eb8: 20000000 .word 0x20000000 8000ebc: 10624dd3 .word 0x10624dd3 8000ec0: e000e010 .word 0xe000e010 8000ec4: e000ed00 .word 0xe000ed00 8000ec8: 08003740 .word 0x08003740 8000ecc: 200001f0 .word 0x200001f0 8000ed0: 47c35000 .word 0x47c35000 8000ed4: 3f8020c5 .word 0x3f8020c5 8000ed8: 08003748 .word 0x08003748 08000edc <_read>: _kill(status, -1); while (1) {} /* Make sure we hang here */ }