Here’s the steps:
- Every project should solve problem(s). This is the Requirements Phase
- From the requirements, we derive Technical Specifications.
- From there, we define our Hardware Design. Yes we design the hardware first before firmware (you can do prototyping first though).
- From there, we design Firmware Architecture
- After that, we create Firmware Design (yes firmware arch is different to firmware design)
- Finally we create the Firmware/Program Flow (some folks call it business logic)
That’s basically the whole process to develop firmware, note that writing code isn’t even mentioned. Yes, because code is the implementation, not design.
Next thing, we will discuss about testing. Let go to the next section: Making Sure It Runs Correctly