The definition of firmware varies but most describe a specialist form of software that is by design tightly coupled to hardware behaviour and intrinsically linked to the operation of the hardware. In some systems the definition can be simplified by where it is physically stored or how it is executed by a processor. Development of firmware may require assembly programming (an understanding of the Arm instruction set). As a System on Chip design becomes more complex these simpler definitions are no longer valid as firmware can be compiled from other languages, loaded from any addressable memory, etc. Firmware must usually operate within tight constraints of the hardware and have to perform its operation without error and in specific time periods. Unlike application software, which in general is designed to operate in isolation from hardware concerns, firmware acts on the physical hardware operation for example changing critical system register values. A firmware engineer must have in depth understanding of the hardware operation and behaviour. 

Projects Using This Interest


k-Nearest-Neighbours Classification under Non-Volatile Memory Constraints
Case Study

Efficient Keyword-Spotting on an Arm M7 microcontroller

Experts and Interested People


Research Area
Machine Intelligence for Nano-Electronic Devices and Systems, Secure and Resilient Hardware Implementation of AI Modules
Postgraduate researcher
Research Area
Machine Intelligence for Nano-Electronic Devices and Systems | Reinforcement Learning
Postgraduate Researcher


Interested in this topic? Log-in to Add to Your Profile

Add new comment

To post a comment on this article, please log in to your account. New users can create an account.