my_timer_expiry_handler_float(k_timer*)(struct k_timer *timer);
; arg struct k_timer *timer @ r0
0x000014e8      push    {r4, r5, lr} ; main.cpp:34  ; my_timer_expiry_handler_float(k_timer*)
0x000014ea      sub     sp, 0xc
0x000014ec      mov     r5, r0     ; arg1
0x000014ee      ldr     r3, [ledConfig] ; main.cpp:36 } ; 0x20000060
                                   ; loc.__data_start
0x000014f0      ldrb    r3, [r3]   ; 0x20000060
                                   ; loc.__data_start
0x000014f2      cbz     r3, 0x1536
0x000014f4      movs    r2, 0      ; main.cpp:37  ; int value
0x000014f6      ldr     r3, [ledConfig] ; 0x20000060
                                   ; loc.__data_start
0x000014f8      ldrb.w  r1, [r3, 0x50] ; gpio_pin_t pin
0x000014fc      mov     r4, r3
0x000014fe      ldr     r0, [r3, 0x4c] ; 0x200000ac
                                   ; obj.led_gpio_raw ; const struct device *port
0x00001500      bl      gpio_pin_set ; gpio.h:1721 return gpio_pin_set(spec->port, spec->pin, value); ; sym.gpio_pin_set ; int gpio_pin_set(const struct device *port, gpio_pin_t pin, int value)
0x00001504      ldr     r3, [r4, 0x20] ; main.cpp:38 // works as expected
0x00001506      cbz     r3, 0x156c
0x00001508      vldr    s14, [r4, 0x10] ; main.cpp:39 void my_timer_expiry_handler_raw(k_timer *timer) {
0x0000150c      vldr    s15, [my_timer_expiry_handler_raw(k_timer*)]
0x00001510      vmul.f32 s15, s14, s15
0x00001514      vmov    r0, s15    ; int16_t arg1
0x00001518      bl      dbg.__fixsfdi ; dbg.__fixsfdi ; DItype __fixsfdi(SFtype a)
0x0000151c      mov     r2, r0     ; k_timeout_t period
0x0000151e      mov     r3, r1
0x00001520      movs    r0, 0      ; kernel.h:528 static inline void k_timer_start(struct k_timer * timer, k_timeout_t duration, k_timeout_t period)
0x00001522      movs    r1, 0      ; k_timeout_t duration
0x00001524      strd    r0, r1, [sp]
0x00001528      mov     r0, r5     ; struct k_timer *timer
0x0000152a      bl      dbg.z_impl_k_timer_start ; dbg.z_impl_k_timer_start ;  z_impl_k_timer_start(struct k_timer *timer, k_timeout_t duration, k_timeout_t period)
0x0000152e      ldr     r3, [r4, 0x20] ; main.cpp:40 
0x00001530      subs    r3, 1
0x00001532      str     r3, [r4, 0x20]
0x00001534      b       0x156c
0x00001536      movs    r2, 1      ; main.cpp:43 if (ledConfig.blinks_remain > 0) { ; int value
0x00001538      ldr     r3, [ledConfig] ; 0x20000060
                                   ; loc.__data_start
0x0000153a      ldrb.w  r1, [r3, 0x50] ; gpio_pin_t pin
0x0000153e      mov     r4, r3
0x00001540      ldr     r0, [r3, 0x4c] ; 0x200000ac
                                   ; obj.led_gpio_raw ; const struct device *port
0x00001542      bl      gpio_pin_set ; gpio.h:1721 return gpio_pin_set(spec->port, spec->pin, value); ; sym.gpio_pin_set ; int gpio_pin_set(const struct device *port, gpio_pin_t pin, int value)
0x00001546      vldr    s14, [r4, 4] ; main.cpp:44 k_timer_start(timer, {ledConfig.off_time_raw}, K_NO_WAIT);
0x0000154a      vldr    s15, [my_timer_expiry_handler_raw(k_timer*)]
0x0000154e      vmul.f32 s15, s14, s15
0x00001552      vmov    r0, s15    ; int16_t arg1
0x00001556      bl      dbg.__fixsfdi ; dbg.__fixsfdi ; DItype __fixsfdi(SFtype a)
0x0000155a      mov     r2, r0     ; k_timeout_t period
0x0000155c      mov     r3, r1
0x0000155e      movs    r0, 0      ; kernel.h:528 static inline void k_timer_start(struct k_timer * timer, k_timeout_t duration, k_timeout_t period)
0x00001560      movs    r1, 0      ; k_timeout_t duration
0x00001562      strd    r0, r1, [sp]
0x00001566      mov     r0, r5     ; struct k_timer *timer
0x00001568      bl      dbg.z_impl_k_timer_start ; dbg.z_impl_k_timer_start ;  z_impl_k_timer_start(struct k_timer *timer, k_timeout_t duration, k_timeout_t period)
0x0000156c      ldr     r2, [ledConfig] ; main.cpp:47 } else { ; 0x20000060
                                   ; loc.__data_start
0x0000156e      ldrb    r3, [r2]   ; 0x20000060
                                   ; loc.__data_start
0x00001570      eor     r3, r3, 1
0x00001574      strb    r3, [r2]
0x00001576      add     sp, 0xc    ; main.cpp:48 gpio_pin_set_dt(&led_gpio_raw, 1);
0x00001578      pop     {r4, r5, pc}
0x0000157a      nop
0x0000157c      lsls    r0, r4, 1
0x0000157e      movs    r0, 0
0x00001580      movs    r4, 0
0x00001582      mov     ip, lr