Centralized Flashing of Heterogeneous System Architectures

In distributed, inhomogeneous systems, it is often tricky to supply the various system components with firmware updates from a common source and to flash them reliably.

For this purpose, we have developed a universal flashing solution with which heterogeneous systems – consisting of FPGAs, SoCs, and microcontrollers – can be safely flashed from a higher-level embedded Linux program.

The technological implementation:
  • Packaging & Handover: The individual firmware components are encapsulated together in a structured XML file and handed over to an embedded Linux program.
  • Intelligent Endpoints: Proprietary software components developed by us run in the microcontrollers; dedicated PicoBlaze/CopyBlaze instances operate in the FPGAs, which have been extended via VHDL modules for interface handling.
  • Direct & JTAG Flashing: While the flashing of microcontrollers as well as NAND/NOR flashes takes place directly via the firmware, flashing via the JTAG interface is resolved via a distributed architecture. An optimized XSVF player, whose logic is split between the Linux program and the PicoBlaze/CopyBlaze instance, plays back recorded XSVF files error-free.

Our services

  • Conception and development of all software and logic components as well as communication protocols

Technologies

Hardware

  • FPGA
  • SPI-NOR-Flash
  • SPI/QSPI-Flash
  • STM32
  • MSP430
  • Xilinx Platform-Flash
  • JTAG

Software / Procedures

  • Softwarearchitecture
  • Communication protocolls
  • XSVF

Programming languages

  • C/C++
  • Assembler
  • VHDL

Tools

Software development

  • KDevelop – C/C++ IDE for firmware development
  • GCC – Gnu C/C++ Compiler
  • ISE - FPGA Development environment
  • IAR Embedded Workbench for MSP430 - C/C++ Development environment
  • AC6 System Workbench for STM32 - C/C++ Development environment

Debugging & Analyse

  • GDB – Debugging and analysis of the embedded software
  • Logic analyzer – Debugging and analysis of the hardware

Project Management & Version Control

  • Git – Source code version control