In this article, let us learn what the term “Firmware” means and see how that differs from the terms “Embedded Software”. Let us also see how these 2 types of code fit into the world of “Computer Software” with the help of a few examples!
Embedded Software and Firmware are 2 terms you will find often used interchangeably in the industry when we talk about code that is running on a microcontroller.
But is there a difference between these 2 terms? Or are “Firmware” and “Embedded Software” just 2 terms that mean the same thing? This article is about answering this question!
I have written this article keeping beginners in mind, hence I have tried not to use too much “Technical Jargon” in this article. So, let us begin!
For those of you in a hurry, here is the short version of the answer!
The Short Version of the Answer
Both “Embedded Software” and “Firmware” are technically sub-classes of computer software. Other than the fact that both these software run on a microcontroller, firmware has some major differences from his Embedded Software cousin. The table below shows the main differences between Firmware and Embedded Software.
But like I said, we will find these terms used interchangeably in the industry. For example, if you find a job ad saying they need a “Firmware Engineer”, they might need either a “Firmware engineer” or an “Embedded Software Engineer” and same goes for job ads saying they need an “Embedded Software Engineer”. So, consult with the person posting the job ad to learn what their product is and what your job responsibilities will be.
If you did not completely understand the above table, don’t worry as that is just the short version of the answer. Read on for the longer version of the answer below where I try to answer the following questions
What is firmware?
How firmware helps other software layers by abstracting hardware?
What are some examples of firmware?
What is Embedded software?
What are some examples of Embedded software?
How firmware differs from Embedded software?
So let’s continue with more informative version of the answer!
Firmware vs Embedded Software
Typically software is built in the form of layers. Typical layers of software is shown in the figure below.
On a typical computer, in terms of how far the software operates in terms of distance to the hardware, software can be classified into the following 4 types
device drivers and