top of page

5 Key Steps to Firmware Architecture and Design in 2019

The ultimate success of an embedded system project depends both on its software and hardware.

Image source:

Let's see software, more specifically firmware architecture and design steps we follows at Inditronics :

1. Identify the requirements -

Before we can begin to architect an embedded system or its firmware, we must have clear requirements. Properly written requirements define the WHAT of a product.

2. Selection of elements -

Select below elements according to identified product requirements.

  • Processor platforms - ARM Cores, Microchip PIC series, Atmel AVR series, Intel 8051, STM8/32 series etc

  • Language - C, C++, Java, Python etc

  • Algorithm selection

  • OS - Linux, Android, Windows etc

  • Hardware device drivers and communication protocols - Serial NOR Flash and Flash File Systems, GPS processing, Bluetooth, GSM / CDMA / LTE cellular communications, I2C, SPI, USART, USB etc.

  • Development tools - Keil C Compiler, Rowley Crossworks, IAR Workbench, Microchip MPLAB, ST Visual Developer etc

  • In-circuit emulation tools - JTAG, ST-Link, Microchip MPLAB ICD etc

3. The Design -

A. Configure firmware components

  • Coding finite length firmware

  • Analyze and expose memory cost

  • Coding FW with memory costs

  • Run time budget

  • Coding cycle accurate FW

  • Relocatable assembly coding


B. Microprocessor design :

  • Design the Datapath

  • Create ISA

  • Instruction set design

  • Build Control Logic

  • Design the Address Path

4. Design for test -

  • System tests

  • Integration tests

  • Unit tests

5. Porting and Testing

Do the interfaces and connections. Generate and verify the machine code. Port the programs into device and test the embedded system.

Do you find this blog useful? Let us know.

To know more get in touch with us at Inditronics.

Get your project develop from experts. Contact Keshav Shinde at email

#microcontrollerprogramming #CPUprogramming #coding #electronicsdesign #technology #firmwaredesign #microprocessorprogramming #electronics #hardwaredesign #firmwarearchitecture

bottom of page