Live data from Hacker News

Steps to designing an embedded software architecture, Step 1

embedded.com

21–22 of 22 posts

Re: Steps to designing an embedded software architecture, Step 1

#21
post #4

Is separating the hardware and software layers really a radical notion for embedded programming?

Unfortunately yes. Lots of embedded software development is done by folks without a software background. EE's and electronics technicians dabbling in firmware.

A bit of a generalisation, but I tend to find when a traditional EE writes firmware, they treat the firmware as controlling the hardware and are more direct with their instructions. i.e. if they need to set a gpio they will often do it directly rather than abstract it. So an EE will write gpio23 = 1, whilst a more software background person will create some type of function say, turn_amplifier_on which will then take the appropriate action.

For those tiny projects it doesn't matter too much. However it seems with demands for features/time to market we rely more on vendor supplied SDK's so this direct approach is becoming less common.

I do find the EE's to be great at bitbanging though, especially when timing is critical.

Re: Steps to designing an embedded software architecture, Step 1

#22
post #4

Is separating the hardware and software layers really a radical notion for embedded programming?

Today, probably not.

Historically? Definitely. It wasnt that long ago that bare assembly was still dominant in embedded, long after general computing. Somewhat obviously, assembly programs were closely coupled to the hardware.

Nowadays C is probably still dominant is C++ is starting to get widespread acceptance.

The best way to decouple the HW and SW is still a topic of active discussion from what I can tell. For example, https://embeddedartistry.com/blog/2022/07/11/how-our-approac...

Post reply on HN