int main() { 8000de0: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} 8000de4: b082 sub sp, #8 init_clock(); 8000de6: f7ff ff5d bl 8000ca4 init_io(); 8000dea: f7ff ffad bl 8000d48 // Initialize the timer for 1 ms intervals SysTick_Config(SystemCoreClock/1000); 8000dee: 4b26 ldr r3, [pc, #152] ; (8000e88 ) 8000df0: 681b ldr r3, [r3, #0] 8000df2: 4a26 ldr r2, [pc, #152] ; (8000e8c ) 8000df4: fba2 2303 umull r2, r3, r2, r3 8000df8: 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) 8000dfa: 3b01 subs r3, #1 8000dfc: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000 8000e00: d209 bcs.n 8000e16 { return (1UL); /* Reload value impossible */ } SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ 8000e02: 4a23 ldr r2, [pc, #140] ; (8000e90 ) 8000e04: 6053 str r3, [r2, #4] SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); 8000e06: 4b23 ldr r3, [pc, #140] ; (8000e94 ) 8000e08: 21f0 movs r1, #240 ; 0xf0 8000e0a: 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 */ 8000e0e: 2300 movs r3, #0 8000e10: 6093 str r3, [r2, #8] SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | 8000e12: 2307 movs r3, #7 8000e14: 6013 str r3, [r2, #0] printf("Start\n"); 8000e16: 4820 ldr r0, [pc, #128] ; (8000e98 ) 8000e18: f000 fdae bl 8001978 delay_ms(100); 8000e1c: 2064 movs r0, #100 ; 0x64 8000e1e: f7ff ff23 bl 8000c68 while (1) { // LED an WRITE_REG(GPIOA->BSRR, GPIO_BSRR_BS_5); 8000e22: f04f 4890 mov.w r8, #1207959552 ; 0x48000000 8000e26: f04f 0a20 mov.w sl, #32 uint32_t start=systick_count; 8000e2a: 4d1c ldr r5, [pc, #112] ; (8000e9c ) float f=1.0; for (int i=0; i<10000; i++) { f=f*1.001; 8000e2c: a714 add r7, pc, #80 ; (adr r7, 8000e80 ) 8000e2e: e9d7 6700 ldrd r6, r7, [r7] 8000e32: e012 b.n 8000e5a //if (f>100000.0) //{ // f=1.0; //} } printf("f=%f, duration=%ld ms\n",f, systick_count-start); 8000e34: 682c ldr r4, [r5, #0] 8000e36: f7ff fb8f bl 8000558 <__aeabi_f2d> 8000e3a: eba4 0409 sub.w r4, r4, r9 8000e3e: 9400 str r4, [sp, #0] 8000e40: 4602 mov r2, r0 8000e42: 460b mov r3, r1 8000e44: 4816 ldr r0, [pc, #88] ; (8000ea0 ) 8000e46: f000 fd23 bl 8001890 // LED aus WRITE_REG(GPIOA->BSRR, GPIO_BSRR_BR_5); 8000e4a: f44f 1300 mov.w r3, #2097152 ; 0x200000 8000e4e: f8c8 3018 str.w r3, [r8, #24] delay_ms(500); 8000e52: f44f 70fa mov.w r0, #500 ; 0x1f4 8000e56: f7ff ff07 bl 8000c68 WRITE_REG(GPIOA->BSRR, GPIO_BSRR_BS_5); 8000e5a: f8c8 a018 str.w sl, [r8, #24] uint32_t start=systick_count; 8000e5e: f8d5 9000 ldr.w r9, [r5] 8000e62: f242 7410 movw r4, #10000 ; 0x2710 float f=1.0; 8000e66: f04f 507e mov.w r0, #1065353216 ; 0x3f800000 f=f*1.001; 8000e6a: f7ff fb75 bl 8000558 <__aeabi_f2d> 8000e6e: 4632 mov r2, r6 8000e70: 463b mov r3, r7 8000e72: f7ff fbc9 bl 8000608 <__aeabi_dmul> 8000e76: f7ff fe9f bl 8000bb8 <__aeabi_d2f> for (int i=0; i<10000; i++) 8000e7a: 3c01 subs r4, #1 8000e7c: d1f5 bne.n 8000e6a 8000e7e: e7d9 b.n 8000e34 8000e80: 9374bc6a .word 0x9374bc6a 8000e84: 3ff00418 .word 0x3ff00418 8000e88: 20000000 .word 0x20000000 8000e8c: 10624dd3 .word 0x10624dd3 8000e90: e000e010 .word 0xe000e010 8000e94: e000ed00 .word 0xe000ed00 8000e98: 08003708 .word 0x08003708 8000e9c: 200001f0 .word 0x200001f0 8000ea0: 08003710 .word 0x08003710 08000ea4 <_read>: _kill(status, -1); while (1) {} /* Make sure we hang here */ } __attribute__((weak)) int _read(int file, char *ptr, int len) { 8000ea4: b570 push {r4, r5, r6, lr} int DataIdx; for (DataIdx = 0; DataIdx < len; DataIdx++) 8000ea6: 1e16 subs r6, r2, #0 8000ea8: dd07 ble.n 8000eba <_read+0x16> 8000eaa: 460c mov r4, r1 8000eac: 198d adds r5, r1, r6 { *ptr++ = __io_getchar(); 8000eae: f3af 8000 nop.w 8000eb2: f804 0b01 strb.w r0, [r4], #1 for (DataIdx = 0; DataIdx < len; DataIdx++) 8000eb6: 42a5 cmp r5, r4 8000eb8: d1f9 bne.n 8000eae <_read+0xa> } return len; }