Migration of Embedded Software for a pressure calibration system from 8051 to ATXMEGA A3U microcontroller from Assembly language to C

A US based company had a legacy calibration system which was designed many years ago using 8051 microcontroller. The embedded software was developed using legacy Assembly language. Since it is programmable Test instrument it had the standard SCPI (Standard Commands for Programmable Instruments) commands implemented to control this instrument. There were nearly 128 SCPI commands implemented to exploit the complete functionality.

The company wanted to enhance the functionality of the instrument by redesigning the hardware with latest ATXMEGA A3U controller and other interface ICs. The challenge was to port the existing embedded software from 8051 assembly language to ANSI C for clear readability and maintainability. The design documents for the 8051 embedded software were not available.

The company approached Funambolo to take up the assignment of porting the legacy software to new hardware. The challenge was to understand the legacy 8051 board hardware architecture, understand the functionality of the old system, go through the assembly language code and document the complete code and generate flow charts and other documents. Document the code related to nearly 128 nos of SCPI commands etc.

The hardware was provided by the US company.

Our scope of work is to

  • understand the functionality of the legacy system
  • Understand the hardware architecture of legacy board
  • go through the assembly language code and document the complete code and generate flow charts and other documents
  • Understand the hardware architecture of legacy board
  • understand the new enhanced functionality of the system
  • Develop the software requirement document and software design document from the previously generated documents by incorporating the enhanced functionality
  • Develop drivers in C for various peripherals available on the board to bring-up the board
  • Interact with engineers in US online, in helping them bring-up the board with the drivers developed by Funambolo
  • Develop the embedded software in C as per the Software requirement document / design document
  • Develop the code in C for 128 SCPI commands
  • Test the software functionality on the board along with various mechanical systems interfaced to the board
  • Handover the complete source code and documentation to the client