Embedded software development is not just writing code to work on the off-the-shelf devices which come with readily ported real-time or embedded operating systems. It involves writing code across all layers of software that works closely with low level hardware including initializing, configuring, communicating with them, developing drivers to enable operating systems to interact with them, developing Board support packages, porting operating system and finally embedded application development etc. This requires knowledge, understanding and experience of designing complex systems for different applications, working with various processors – chipset architectures, operating systems, real world devices etc.

Our team can get associated with your design team at any stage of your embedded software development life cycle including Functional / technical requirement capturing / definition, Architecture Design, Partitioning of hardware / software functionality, Coding in assembly language / C / C++, testing on emulators and target platforms, integration services with customer systems, Maintenance support / bug fixing, feature enhancements and porting on different platforms etc

These services include:

  • Board bring-up, monitor programs, boot loaders
  • Power-on initialization routines, POST
  • Board Support Packages (BSP) for various processor family reference designs / boards
  • Linux porting
  • Target board peripheral drivers, operating systems drivers
  • Customized API development for specific customer needs
  • Real time embedded application software in assembly / C / C++
  • Real time embedded controller application
  • Digital PID / Servo loops
  • Machine automation and Machine to Machine communication
  • Communication Protocol gateways
  • Firmware re-engineering for performance improvement, feature enhancement
  • High level language conversion for easy portability (Assembly language to C)