Firmware Design Podcast
Here is a podcast on firmware design that I found insightful. A few key points that stood out to me are mentioned below. For the complete discussion check out the full podcast.
Insights
If your firmware is designed poorly, you might be able to compensate for it by running a more expensive hardware, and that will make firmware work. But it will make the electronics cost more. So there's a tradeoff when you make those decisions which impacts the bill of materials (BOM) when you are mass producing something.
Say you might wanna compensate for not having much RAM by adding an external RAM to your design, but then the firmware now has to interface with that external RAM.
Tapping multiple times in the app would queue up the commands, which eventually runs out of memory and may crash the system.
... didn't have a floating point unit (FPU)1, which is something that you would take for granted in higher level software. Since there is no FPU, that actually becomes a performance bottleneck, because it has to fall back to software libraries to do that mathematics. So instead of using a normal floating point number, you might end up using a fixed point number
FPU is a dedicated hardware to do floating point calculations↩