dvhdr/launchpad-pro

"Interrupt" priority not clear - or are events queued?

pikablue opened this issue · 1 comments

Apologies for raising this as an issue, but I couldn't see it in the code. Basically, are the events handled by interrupt, or by queue? I seem to be missing events (midi, keypresses, etc.).

Firstly, can someone explain what the interrupt or queue handling priority is between all the various app_*_events, and app_init?
In particular, do the app_*_events only start being called once app_init has completed, or is there an assumption about how long app_init might take to complete?

Secondly, are events queued or handled by interrupt?

  • If code in app_timer_event takes longer than 1ms to execute, what happens? Does a queue fill up, or are the next 1ms timer events simply not queued?
  • If code in app_timer_event (or app_surface_event, or app_aftertouch_event or app_midi_event) is executing when another event occurs, what happens?
  • How long is the queue?

Thanks,

..pika..

No one will answer this for you, but you can check it for yourself. In newer versions of the repo, the symbols are left out of launchpad_pro.a, but in the older they're compiled in (the file will be 16MB total).

Use that HAL instead and compile your firmware with -g -O0 and inspect the resulting firmware ELF file in IDA Pro or Ghidra, which will have full symbols from the HAL so you can see exactly what's going on for yourself