Persistent program code and data stored in a non-volatile memory device inside an embedded device or a computer. Changing firmware requires special procedures and is rarely done over a device’s lifetime.