Services - Embedded Software
FPGAs and CPUs come closer nowadays. Today often CPUs and FPGAs are combined in the same chip, either as a softcore CPU (NIOS II or Microblaze) or as a hard CPU like an ARM (AMD Zynq or Intel CycloneSoC). The trend is that in the future also PC or especially Server CPUs contain an FPGA fabric to accelerate specific tasks. Therefore, more and more interaction between Software and FPGAs is required. With our embedded software services, we focus on software interacting in one or the other way with an FPGA. This can be software running on a softcore CPU or on one of the hard CPUs in an combined chip, protocol stack development, driver development for FPGA IP cores, hardware acceleration of software parts, linking the FPGA based system with a host CPU or data representation GUIs, to just give a couple of examples. But we definitely don't stop there; we do any kind of embedded software, from tiny software parts that runs on a MCU to large and complex software solution running on high-end/high-performance CPUs. With our experience and know how we are able to cope with even the most complex designs. We set the focus in our development on modularity, reusability and testability which in the end often leads to simplicity even if the design is very large and in itself complex. This allows us to use the same development flow for simple and very complex designs. Whenever possible and useful we try to run Embedded Linux on the target systems to have maximum flexibility and reusability of the developed software components.
We use source control, ticketing and automated build systems to keep track of the development and simplify the development flow.
We can help you in every step of embedded software development: from simple modules and drivers to complete solutions:
- Design, Concept and Architecture of your system
- Implementation of units
- Implementation of unit tests
- Operating system porting (Linux)
- Linux driver development
- Server/Client Network applications (TCP/IP, UDP/IP or Raw)
- Low level applications without OS
- Network stacks
- Host applications on Windows and Linux
- Software for hardware test platforms
- GUIs in QT
- Debugging on hardware
- Regression testing
- Deployment and continuous integration
- Maintenance
- Education
- And much more ...
Embedded Software Design Expertise
We have experience in a wide area of embedded software designs, this is just a short summary of the most recent designs we worked on:
- GUI for a PTP and PPS measuring device
- GUI for configuration and status supervision => see also tools tab
- Communication library
- Adaptations for compliance of a PTP stack (PPSi)
- Porting of protocol stacks (PTP4l, PTPd)
- Data aquisition system
- PHC (PTP hardware clock) driver for Linux
- Framebuffer (Display) driver for Linux
- Ethernet (MAC) driver for Linux
- PCIe driver for Linux
- User interface driver for Linux
- Multiple character device drivers (SPI, I2C, etc) for Linux
- Power management driver for Linux
- Linux porting to Xilinx and Altera ARM/FPGA system on chips
- Host to FPGA data exchange solution via Ethernet and UART
- Protocol stack for communication on Windows, Linux and "Bare metal"
- Windows configuration Tool for NetTimeLogic IP cores
- "Bare metal" applications on softcore CPUs and ARM/FPGA system on chips
- Hardware test platform software for stimuli parsing and log generating
- And much more ...
Programming Languages
- Embedded Software:
- C
- C++
- Make
- TCL
- UML
- Driver Development:
- C
- Make
- GUI
- Qt
- C++
- Java
- Network and Host Applications:
- C
- C++
- C#
- Make
- TCL
Development Tools
- Design Concept:
- Microsoft Visio
- Microsoft Word
- Violet UML Editor
- Design entry:
- Notepad ++
- Eclipse
- Microsoft Visual Studio
- Altera/Intel SDK/EDK
- Xilinx SDK
- GUI
- Qt Creator
- Java SE
- Verification:
- CppTest
- Building:
- Gcc
- Make
- Microsft Visual Studio
- Altera/Intel SDK/EDK
- Xilinx SDK
- Debugging
- GDB
- Microsoft Visual Studio
- Altera/Intel SDK/EDK
- Xilinx SDK
- Continuous Integration
- GIT
- Jenkins
Pricing
Contact us for our rates, rates depend on the duration and tasks to be done