Wir entwickeln schwerpunktmäßig Applikationssoftware und Treiber für
prozessorbasierte eingebettete Systeme. Wir sind mit einer Vielzahl
unterschiedlicher Entwicklungsumgebungen und "System on Chips" (SoC)s
vertraut. Dabei werden 8- 16- oder 32-Bit CPUs sowie die
unterschiedlichsten Schnittstellen und Speichertechnologien eingesetzt.
Hier eine Auswahl der Technologien, die wir in vergangenen Projekten
verwendet haben:
- Microprocessoren: ATXmega, MSP430, Pic32,
STM8/32, TCC8300, EFM32, LPC43xx, LPC111x, 8051 (Silicon Labs),
ColdFire-MCF5329, SAM, TMS320, ADAU1445, Blackfin ADSP21488 & ADSP
BF516, AVR AT32AP7000 & AT91SAM, 65C02
- FPGAs: Lattice MachXO2
- Standard-Schnittstellen: I2C, SPI, UART; USB, Ethernet
- Audio/Video Schnittstellen: I2S, TDM, BT656, HDMI, Analog
- Feldbusse: IO-Link, Profinet, Ethercat, CAN, HART
- Drahtlos: Bluetooth, Wireless-M-Bus, IEC 802.15.4, proprietary data transfer systems
- Speichertechnologien: SRAM, SD-RAM, DDR2-RAM, NOR-Flash, NAND-Flash, EEPROM; SD cards
Je nach Projekt erfordert die Entwicklung auch die Einbeziehung von
Betriebssystemen wie, FREERTOS, Linux, Android und ähnliche. Auch
PC-basierte Software, die für die Kommunikation oder die Steuerung der
"embedded systems" Entwicklungen erforderlich ist, wird von uns
entwickelt.
Folgende Entwicklungssysteme sind bei uns im Einsatz:
Keil µVision, IAR, Eclipse, Netbeans, Rhapsody, CodeComposer-Studio, the Gnu Toolchain.
Wir sind mit einer Reihe unterschiedlicher Entwicklungsprozesse
vertraut. Das folgende Diagramm zeigt die bei uns typischerweise
eingesetzten Werkzeuge:
Unser Software-Entwicklungsdienstleistungen umfassen:
- Anforderungsanalyse und Definition von Softwareschnittstellen
- Entwicklung und Simulation von Algorithmen mit Mathematica, Matlab, SciLab, Simulink, ..
- Softwareerstellung unter Verwendung verschiedener Programmiersprachen C, C++, Java, Python, Assembler; VHDL, ...
- Modultests,
- Statische Codeanalyse,
- Integration von Softwareblöcken in Zielplattformen; Integrationstests,
- Softwareentwicklung unter Verwendung von Versionsverwaltung (SVN,CVS),
- Softwaredokumentation mit Hilfe von (Doxygen, Word Dokumenten), Testberichte.