Static inline: /* Motorstromabsenkung: 1. Merken, ob a) Antrieb gestoppt und b) ob das so bleiben soll 2. Wenn Hauptschleife abgeschalteten Motor melden, Bewegung verhindern. */ if( vSet || State->vzAct_vu) 80089fc: b925 cbnz r5, 8008a08 80089fe: 4b67 ldr r3, [pc, #412] ; (8008b9c ) 8008a00: f8d3 30a8 ldr.w r3, [r3, #168] ; 0xa8 8008a04: b12b cbz r3, 8008a12 8008a06: 2500 movs r5, #0 /** Weck- und Wachhalteaufruf * Der interne Zähler wird atomar auf die aktuelle Millisekunde gesetzt. */ static_inline void drvX_keepAwake(void) { DrvState_t *State = &DrvXState; State->lastKeepAwake_ms = counter_milliseconds; 8008a08: 4b66 ldr r3, [pc, #408] ; (8008ba4 ) 8008a0a: 681a ldr r2, [r3, #0] 8008a0c: 4b66 ldr r3, [pc, #408] ; (8008ba8 ) 8008a0e: 601a str r2, [r3, #0] 8008a10: e000 b.n 8008a14 8008a12: 2500 movs r5, #0 { drvX_keepAwake(); } Normale Funktion: /* Motorstromabsenkung: 1. Merken, ob a) Antrieb gestoppt und b) ob das so bleiben soll 2. Wenn Hauptschleife abgeschalteten Motor melden, Bewegung verhindern. */ if( vSet || State->vzAct_vu) 8008a24: b925 cbnz r5, 8008a30 8008a26: 4b66 ldr r3, [pc, #408] ; (8008bc0 ) 8008a28: f8d3 30a8 ldr.w r3, [r3, #168] ; 0xa8 8008a2c: b11b cbz r3, 8008a36 8008a2e: 2500 movs r5, #0 { drvX_keepAwake(); 8008a30: f7fe fd56 bl 80074e0 8008a34: e000 b.n 8008a38 8008a36: 2500 movs r5, #0 } 080074e0 : /** Weck- und Wachhalteaufruf * Der interne Zähler wird atomar auf die aktuelle Millisekunde gesetzt. */ void drvX_keepAwake(void) { DrvState_t *State = &DrvXState; State->lastKeepAwake_ms = counter_milliseconds; 80074e0: 4b02 ldr r3, [pc, #8] ; (80074ec ) 80074e2: 681a ldr r2, [r3, #0] 80074e4: 4b02 ldr r3, [pc, #8] ; (80074f0 ) 80074e6: 601a str r2, [r3, #0] 80074e8: 4770 bx lr 80074ea: bf00 nop 80074ec: 20000c20 .word 0x20000c20 80074f0: 200000bc .word 0x200000bc 80074f4: 30767264 .word 0x30767264 80074f8: 696e695f .word 0x696e695f 80074fc: 0074 .short 0x0074 80074fe: bf00 nop 8007500: ff00000c .word 0xff00000c