Instiq

5Embedded software development

Practice questions →Glossary →
  • 5.1Cross-development environment

    Covers the roles of the cross compiler, linker, and locator, which generate executable code on a host such as a PC for a target (embedded board); how to choose among ICE, JTAG, SWD, and emulators for debugging directly on the target hardware; and the judgment needed for real-hardware debugging in practice.

  • 5.2Device drivers & firmware

    Covers the role of device drivers, which abstract hardware register operations and interrupt handling, the bootloader, which brings up the system immediately after power-on, and the failsafe and rollback design needed for OTA (Over-The-Air) updates in the field.

  • 5.3State-transition design & event-driven programming

    Covers state-transition diagrams/tables for organizing embedded-device behavior, the trade-off between the event-driven approach, which reacts to external input, and the polling approach, which checks state at a fixed interval, and designing for exhaustiveness and exception transitions so no undefined transition is left behind.

  • 5.4Interrupt handlers & resource management

    Covers the design principle of keeping an ISR (interrupt service routine) short and deferring follow-up work, designing reentrant functions and using a critical section for mutual exclusion, and addressing memory exhaustion and leaks to protect limited stack/heap resources.