We are developing in line with our core competencies software/firmware for different architectures and are specialized in particular in embedded systems. Whether FPGA, CPLD or microcontroller, resources are usually very limited. This raises inevitably different demands on the implementation as for development of software for desktop or PC systems.
Unlike PC software that can be programmed nowadays in more than 10 languages, C , Assembler and VHDL are traditionally used in embedded systems. High-level languages such as Java or C# are for the hardware-related application largely unusable, especially with strict real-time requirements. When using embedded operating systems, you might need to use very rudimentary functionality to not impair the efficiency. Well accepted are FreeRTOS, Embedded Linux, µC Linux.
The firmware is usually stored in the built-in flash memory (ROM) of the microcontroller or in an external NAND memory, whereby special requirements are necessary for updating the firmware - not only during prototyping, but also in the field at the end customer. This is usually implemented by a custom bootloader. Integrity and security are essential for such systems and must be considered in the planning already, so that the system will continue to operate under all circumstances. Through our many years of experience, we can rely on proven concepts and mostly existing source code can be easily ported to a new system, which can reduce the development time and costs drastically.
Based on our experience and our extensive know-how in hardware development, we master these subtleties and requirements. Software development is not just software development, trust only the right partner for embedded.