Microcontroller development has traditionally been quite different from modern application development. In many embedded projects, the operating system, firmware, drivers, and application logic are tightly bundled together. If the app needs to change, the firmware often needs to be rebuilt, reflashed, and redeployed.

