This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Firmware Development

Hello Experts !!

Can any one tell me exact difference between a firmware development and normal software(source code) development ? 
I checked on the google but not clear with the explanation.

  • I would say that 'firmware' typically has to do with the storage and runtime environment.
    Usually you think of Firmware as being stored in Flash or ROM and it's probably 'bare-metal' in terms of runtime environment.

    Some people may consider 'software' as a program that is loaded dynamically by an OS into it's own memory space for execution, like you would see on Windows or Linux and on a processor like a Cortex A with virtual memory support.

    When you get into the world of microcontrollers though - you probably will just use the two terms interchangeable.
  • Hi Anthony,

    Thanks for your wonderful and easy explanation.
    Can you give me example of firmware development ? like what things comes under firmware development ? I am familiar with the programming which is loaded in program flash. But what all things are included in firmware development ?
  • Ankush,

    I think most anything you do on a microcontroller could be considered firmware although I would use the term 'embedded programming' instead.

    Just means you are working at a lower level of abstraction - much closer to hardware.   You need to know things like how the processor takes interrupts, and how the memory map and peripherals are laid out.   And usually you interact w. peripherals directly or through a very low level driver rather than through an OS.

    -Anthony