5 ms·
Ask HN: How to learn Firmware Programming?
Hello, I came across this [1] article about Framework recently. This got me wondering about what firmware programming languages/softwares people use these days. Do we have a widely used language that is used to build firmwares for many/most embedded devices? Where do I learn this language?
[1] https://arstechnica.com/gadgets/2024/04/frameworks-software-and-firmware-have-been-a-mess-but-its-working-on-them/
- RetroTechie 3y agoThis depends entirely on the device. And "firmware" comes in many shapes & sizes: from a few KB binary flashed into a microcontroller, a bitstream configuring an FPGA, to GB+ OS images installed on say, a smartphone or tablet. So please define what you mean by "firmware". And be specific - make, model (+ revision?). > Do we have a widely used language that is used to build firmwares for many/most embedded devices? For smaller devices, yes: assembly (many different ISAs), or C. Just asking that question suggests firmware coding isn't for you. But as you look into more powerful devices, the landscape becomes much more varied. C++, target-specific SDKs, multiple pieces of firmware for different components in a system (and multiple ways to install those), etc etc. Also note that some firmware can't be updated by end users. If at all. Comes in ROM, or one-time programmable, or IC pins were used in factory but not accessible on a circuit board in the final product, chip only takes signed updates (and only manufacturer has the signing key used for that), ...