Embedded software development

Embedded software development

Today let me talk a bit about embedded software development.


Firstly you need to use some language to explain hardware what to do. You can choose between:

  • low-level ones (i.e. Assember/C/Ada) which give you full control — you can do anything and screw everything up
  • general-purpose (like C++) which enables implementation of complex tasks in a systemic approach
  • interpreted ones (i.e. Python/Java) which are great for beginning — you need to know very little about the hardware
    Get familiar with as many as possible- you can never understand one language until you understand at least two!

Secondly, you are as good as the tools you are using. To work on embedded software you need:

  • a place where you can write the code: text editor/IDE/ISE
  • a translator which changes your code into machine language: linker/compiler/interpreter
  • a magnifier that enables looking into hardware and understanding how the code works: debugger/emulator

Last but not least don’t forget about the main challenges in embedded software development:

  • your device need to always work stable so that it will always do the tasks reliably
  • your solution frequently needs to be safe to not hurt anything while working
  • your software sometimes have to be secure to not be modified and used for bad things

Let me end with a metaphor from The Pragmatic Programmer book about coding:

“Rather than construction, the software is more like gardening — it is more organic than concrete.”

So choose the language wisely, use good tools, and remember the challenges!

Informacja o Cookies

This website uses cookies to provide you with the best possible service. Your continued use of the site means that you agree to their use. You must accept this to use the site