Firmware: Not So Well Anymore#

../../../../../../../_images/fsm-bullshit.svg

Problem: ISRs Not Simple#

  • Three ISRs

    • Timer tick

    • Sensor burning

    • Operator button

  • Initially (here), each transition involved at most three GPIO operations

  • Spinlock as bug fix (here)

    • ⟶ Possibly longer execution time but correct

  • CAN notifications (here) hasn’t improved the situation

    • Controller busy sending ⟶ complicated queueing mechanism

    • Again interrupt driven