C/C++, Assembler, Embedded, Linux, Raspberry Pi, Microcontroller, Shell Scripts, Python, Java, Smartcard, C#,.NET, Hardware.
Aktualisiert am 14.12.2023
Profil
Referenzen (1)
Freiberufler / Selbstständiger
Verfügbar ab: 01.04.2024
Verfügbar zu: 0%
davon vor Ort: 50%
STM32
C/C++ Embedded
Embedded Linux
C#
Raspberry-Pi
Eclipse CDT ARM
CAN, UART, SPI
Embedded Java
Shell Scripts
TCP/IP
MFC
Keil uVision
Python
Deutsch
Muttersprache
Englisch
fließend in Wort und Schrift
Schwedisch
fließend in Wort, gut in Schrift

Einsatzorte

Einsatzorte

Tübingen (+100km) Titisee-Neustadt (+75km) München (+100km) Mindelheim (+100km) Erlangen (+100km) Deggendorf (+75km)

Deutschland: Bevorzugt arbeite ich in Bayern, Landkreis Dachau, München oder Augsburg.

nicht möglich

Projekte

Projekte

5 Jahre 9 Monate
2018-07 - heute

C++/MFC Software Simulator für ?SMT PCB Conveyor? Hardware

Softwareentwickler und Berater (selbständig) Windows MFC GUI Programmierung C++/C14 Templates mit STL und Boost XML Database ...
Softwareentwickler und Berater (selbständig)

Zur Simulation von SMT PCB Conveyor Hardware benutzte der Kunde eine in C++/MFC programmierte Software mit GUI, welche die mechanische Hardware und das Control-Board für das Embedded-OS (C++ Firmware auf XC167 oder ARM MCU) simulierte. Als MCU Simulator wurde Keil uVision verwendet, welches per AGSI Schnittstelle mit der Conveyor-Simulation verbunden war. Meine Aufgaben waren das Erstellen von neuen Software Conveyor-Typen und die Abstraktion der Keil AGSI Schnittstelle, um den Embedded-OS Code mit dem Conveyor-Simulator ohne uVision direkt auf PC zu testen. 

  • Refactoring für den vorhandenen Code zur Verbesserung der Codestruktur und Wartbarkeit.
  • Erweiterung des Simulator Logik und der GUI Dialoge.
  • Abstraktion der Keil AGSI Schnittstellen zur Implementierung einer AGSI kompatiblen virtuellen Register Struktur zur Simulation von Microcontroller Hardware Ports 
  • Implementierung virtueller CAN-Bus Register für den Simulator zur Simulation einer virtuellen CAN-Bus PC-Verbindung per Kvasar CAN-Treiber.
Visual Studio 2015 und 2017 C++ Keil C++ für XC167 XmlLite Parser Cygwin gcc/g++ Eclipse CDT/PyDev/Remote System/TFS cygwin Putty WinSCP
Windows MFC GUI Programmierung C++/C14 Templates mit STL und Boost XML Database Kvasar CAN-Treiber für Windows XC167 Microcontroller bash und Windows cmd shell TFS Source Control Scrum
ASM Assembly Systems GmbH
München
7 Monate
2017-12 - 2018-06

Portierung des Abstandsmesssystems für Roboter von Raspberry Pi auf Zielhardware Shiratech Spark100 SOM.

Softwareentwickler und Berater (selbständig) C/C++ (C14) Echtzeit Programmierung U-Boot Shell Linux GPIO ...
Softwareentwickler und Berater (selbständig)

Zur Aufgabe gehörte die Inbetriebnahme der Embedded Linux Zielhardware (Spark100 SOM mit Angström Linux) sowie die Implementierung von UART- und GPIO-Ports im FGPA, welches vom SoC Spezialisten „El Camino GmbH“ nach meinen Vorgaben geleistet wurde. Die Portierung der C++ Cluster-Controller Software von Raspberry Pi 3 auf Spark100 konnte ich bereits Ende April, sogar 1 Monat vor dem geplanten Termin, inklusive Laufzeit Optimierungen erfolgreich abschließen. 

  • Spezifizierung einer UART/DMA Hardware sowie des GPIO Routings für die FPGA Implementierung in Zusammenarbeit mit der El Camino GmbH. Erstellung des FPGA Images sowie der Binaries zur Linux Anbindung durch El Camino.
  • Hardware-Prüfadapter zum Testen der FPGA Implementierung von UART- und GPIO-Ports. Testsoftware zur Performance Evaluierung und Verifikation der Hardwarelogik.
  • Serial I/O C++ Class-Lib für den Application-Layer Zugriff auf die FPGA UART/DMA Hardware.
  • Plattform optimierte GPIO C++ Klassen per Linux Sysfs Interface (On/Off-Time < 5us bei 900MHz CPU-Clock).
  • Ersetzen der boost::asio::serial_port Lib durch eigene Serial-Dispatching-Thread C++ Klassen für ein optimiertes Realtime-Processing (Verbesserung der Messzykluszeit von über 50% bei 17 Radarsensoren).
  • TFTP-Boot Server auf Linux PC sowie U-Boot IP Network-Setup für das Spark100 SOM zum Klonen der konfigurierten Board Firmware von eMMC via Ethernet. Außerdem MAC-Address Konfiguration der Spark100 SOMs via U-Boot.
  • ssh Remote-Logging zum Aufzeichnen der Cluster-Controller Logs auf einem Client-PC zur Reduzierung des eMMC Verschleißes durch On-Board Schreibzugriffe. Python Skripte zum Aufbereiten und Visualisieren von Log-Daten.
  • Erstellung der Entwickler Dokumentation des Cluster-Controller Systems zur Übergabe an ABB, sowie Einarbeitung der internen Mitarbeiter.
Altera Cyclone V SoC Board Angström Linux gcc/g++ gcc-linaro-arm-linux-gnueabihf-4.8 Windows Cross-Compiler Eclipse CDT/PyDev/Remote System/TFS cygwin Putty WinSCP. Radarsensoren
C/C++ (C14) Echtzeit Programmierung U-Boot Shell Linux GPIO UART/DMA Treiber IP Netzwerk/Router Konfiguration UDP Multicast TFTP Boot-Server ssh Remote-Commands Shell-Script Python 3.4 Prüfadapter Hardwareentwicklung DOS Batch TFS Source Control Scrum. Radarsensorik Linux Sysfs
ABB Robotics
Seefeld am Pilsensee
9 Monate
2017-03 - 2017-11

Prototyp für ein Abstandsmesssystem zur Personenerkennung für Kollaborative Roboter (C++ Embedded Linux Realtime-Applikation)

Softwareentwickler und Berater (selbständig) C/C++ (C14) Echtzeit Programmierung Boost Asio USB-UART ...
Softwareentwickler und Berater (selbständig)

Die Aufgabe war die Prototypen Entwicklung eines Radarmesssystem bestehend aus einem Cluster von Radarsensoren für Kollaborative Roboter zur Erkennung von Personen. Da die Linux Zielhardware, das Shiratech Spark100 SOM (Altera Cyclone V SoC Module), bei Projektstart von Shiratech nicht funktionsfähig konfiguriert werden konnte, entschied ich mich wegen der engen Terminvorgabe für eine Embedded Linux Entwicklung auf Raspberry Pi 3. Dadurch konnten wir pünktlich im November 2017 eine voll funktionsfähige Roboter Live-Demo bei ABB in Ladenburg vorführen. 

  • Evaluierung der Hardwareschnittstellen sowie der Performance zur Datenübertragung für die Radarsensoren des Herstellers Silicon Radar. Dokumentation für Analyse und Design. Erstellen von Laufzeitdiagrammen für ein Sensor Trigger-Management zum gewährleisten eines störungsfreien parallelen Betriebs mehrerer Radarsensoren.
  • Entwicklung einer SMARC-Module UART Adapter-Platine zur Anpassung der Raspberry Pi 3 USB-UART Schnittstellen an das SOM Mainboard der Spark100 Zielhardware.
  • Evaluierung und Installation der ARM Cross-Compiler Toolchain für Linux Raspbian Jessie unter Windows. Integration für Eclipse.
  • ssh-cygwin und WinSCP DOS-Batch Scripting für den Headless Zugriff von Windows PC auf die Linux Zielhardware.
  • C++ (C14) Multithread Messtechniksoftware auf Linux Raspbian Jessie (R-Pi3) zum synchronisierten Ansteuern sowie der Echtzeit-Signalverarbeitung (< 80ms) von 10 Radarsensoren per USB-UART (Baudrate 230.400 bit/s). Die Ausgabedaten wurden per Ethernet UDP/IP an den Robotics-Controller übertragen.
  • High-Speed GPIO User-Space Lib als C++ Klasse mit direktem Zugriff auf die R-Pi3 GPIO Register des BCM2837 SoC via Memory-Mapped IO. Überprüfen der GPIO Performance und des OS-Jitter via Messung mit Oszilloskop.
  • Python Konvertierungs-Skripte zum Aufbereiten und visualisieren von Messdaten.
  • Shell-Skript zum Registrieren von USB-UART Devices per Udev Rules, zur persistenten Fixierung der zugeordneten Device-Nodes auf R-Pi3 via USB Geräte-ID.
  • Definieren/Spezifizieren der elektrischen Baugruppen zur Stromversorgung und Datenübertragung für das Cluster-Controller Messsystem.
  • Beraten und Unterstützen von Mitarbeitern zu den Themen: C++ C11/C14 Standards, C++ Object Lifetime, STL Thread Synchronisierung (mutex, lock_guard, condition_variable etc.), Embedded C++ Programmierung, Eclipse C/C++ Compiler Integration, UART Schnittstellen, Linux Shell Scripting, Python ctypes.
Raspberry Pi 3 mit Raspbian Jessie OS Raspbian Jessie gcc/g++ arm-linux-gnueabihf-4.9.2 Windows Cross-Compiler cygwin Eclipse CDT/PyDev/Remote System/TFS WinSCP Altium Designer Oracle VirtualBox Linux C++ Visual Studio 2017 für Raspberry Pi Remote-Compile Radarsensoren
C/C++ (C14) Echtzeit Programmierung Boost Asio USB-UART Linux GPIO UDP/TCP/IP Programmierung Shell-Script Python 2.7 Makefile DOS Batch Schaltplan/Layout Hardwaredesign TFS Source Control Scrum. Radarsensorik
ABB gomtec Robotics
Seefeld am Pilsensee
3 Monate
2016-12 - 2017-02

C# WPF und C++ Messtechnik-Applikation zum Einmessen von Audi Infotainmentsystemen auf die Akustik von Fahrzeugen

Softwareentwickler und Berater (selbständig) C# WPF C C++ ...
Softwareentwickler und Berater (selbständig)
  • Konzeption und C# Prototypen-Applikation zum asymmetrischen Verschlüsseln/Entschlüsseln von Text-Dateien und binären Dateien in einer XML Datei als gemeinsamer Daten-Container. Die Verschlüsselung erfolgte mittels RSA Public/Private Key als "hybride" Verschlüsselung nach den w3.org Standards [URLs auf Anfrage]
  • Schulung zu C/C++ Compilern (gcc/g++) für die Entwickler von Ferchau und Audi. Entwickeln einer C/C++ Container-Architektur für BPlus Infotainment-Soundmodule, welche als C++ Klassen programmiert sind.
  • Konzeption und DLL Entwicklung eines C# WPF File-Transfer Clients für den automatisierten Upload/Download von versionierten Dateien auf einen File-Server. Implementierung eines XML-Parsers zur Ermittlung der aktuellen File-Versionen und Repository-Pfade aus einer XML-Datei. Anwender Daten wurden als .NET „User Settings“ gespeichert.
Visual Studio 2015 für C# und C++ gcc g++ Tortoise Svn
C# WPF C C++ w3.org XML-Kryptographie XML HTTP DOS Batch Scrum
Ferchau Engineering
Ingolstadt
2 Jahre 8 Monate
2014-04 - 2016-11

Firmware-Entwicklung TMP Chips und SmartCards auf AMR Cortex 3 und C251

Softwareentwickler und Berater C C++ Assembler ...
Softwareentwickler und Berater
  • C/C++ und Assembler Entwicklung von Treiber-Libraries, NVM Memory Management und Kunden Application-Notes für das Ansteuern der MCU-Hardware von Infineon ARM Cortex3 und C251 SmartCard Derivaten. Codeentwicklung mittels Keil uVision 4/5 und Eclipse- CDT. Debugging auf C und Assembler Level mit Keil uVision Simulator, Hitop Hitex Emulator und Simulationsumgebung unter MS Visual Studio

  • Entwickeln von Systemtests/Unittests in C und Java/JavaScript für das HSL TestOS zum Verifizieren der neu entwickelten hochsicheren HSL (HSL = Hardware-Support-Library für Infineon Security Chips). Integration eines Chip Flash-Loader Modules für das automatisierte Testen auf Chip Hardware. Integration einer automatischen Code-Coverage Messung für Simulator und Emulator. Refactoring von Test-Framework Komponenten. Der Test-Framework basiert auf SmartCardManager5, einer JavaScript Testumgebung mit Rhino-Engine und integriertem SmartCard Interface von Infineon.
  • Entwicklung von Test-Tools in Python, z.B. ein Remote-Controller für die Keil-uVision IDE zur Steuerung des Debuggers, Abfragen von Debugger-Daten für CPU-Status und Code-Coverage, Erstellen von IDE Projekten etc.. Das Python Skript nutzt die ctypes Library als DLL-Wrapper für die UVSC.dll von Keil, welche per Socket-API mit der IDE kommuniziert.
  • Make-Build Administration und Skript Programmierung für gnu make, bash shell, Perl etc. für das Projekte HSL zur Erstellung der HSL-Library und der Test-OS Applikation, der automatischen PC-lint Codeanalyse, des Build-Deployments für die unterstützten Chip-Derivate und der Erzeugung der Doxygen Dokumentation.
  • Entwickeln von Developer-Tools:
    • SFR-Parser (SFR = Mikrocontroller Special Function Register)in Perl zum automatisierten Parsen von SFR-Referenzen in C-Funktionen und zur Erzeugung von Doxygen-Pages.
    • Shell Skripte für syntaktisches „Symbol-Grepping“ von JavaScript, Make-Skripte, C/C++ und Assembler Code. 
    • Cross Windows/Cygwin Wrapper zum Starten von Windows Applikationen aus Cygwin und umgekehrt.
    • Shell Aliases (short cuts) für die Projektumgebung.
    • WinSCP Wrapper für den SFTP Transfer von Dateien über das Netzwerk.
  • Überarbeiten und Erweitern der Doxygen basierten HSL API Dokumentation sowie der Low Level Dokumentation für die EAL (Evaluation Assurance Level) Zertifizierung.
  • Erstellen und Administrieren eines „Common-Project-Tools“ Repositories in Eigeninitiative um eine homogene Entwicklungsumgebung für das Firmware-Team sicherzustellen. Die Realisierung des personalisierten Installationsprozesses für die Entwickler PCs erfolgte per Skript Programmierung in Cygwin bash shell, DOS-Batch und Python.
ARM3 C251 Keil UV5 Keil Simulator HiTOP Emulator cygwin Eclipse CDT Eclipse PyDev gcc g++ Moritz for Doxygen SmartCardManager 5 mit Rhino Engine 1.7R4 WinSCP VMware Player Visual Studio 2012 Tortoise svn
C C++ Assembler Python Perl JavaScript Java Shell-Script GNU make Doxygen Keil Tools UML DOS Batch Scrum
Infineon Technologies AG
Augsburg
4 Jahre
2010-04 - 2014-03

Hardware nahe C++ Programmierung auf Linux RedHat 64 Bit von SoC Halbleiter Testsystemen für RF- und Analog ICs

Softwareentwickler und Berater C++ C STL ...
Softwareentwickler und Berater
  • Entwicklung einer Maintenance-Database basierend auf PostgreSQL sowie eines ATML (Automatic Test Markup Language) kompatiblen generischen Testframeworks zum Archivieren von serialisierten Test- und Calibrations-Messdaten. Evaluierung von „Google Protocol Buffers“ zur binären Serialisierung von C++ Objekten. Implementieren einer Laufzeit optimierten binären Datenserialisierung per C++ Metaprogrammierung mittels STL/Boost Templates. Entwicklung von UNO (Universal Network Objects, openoffice.org) Interfaces und Komponenten per UML Design und C++ Template-Klassen zum Exportieren von binären Schnittstellen nach Java und Ruby. Programmierung von SQL-Queries mit Cursor-Control und Foreign-Keys zur generischen Abfrage von Messdatensätzen. Build Konfiguration mit make und Python SCons.
  • Integration eines Unified-Logging-Framework (ULF) für den Analog- und RF-Messtechnik Framework mittels UNO-Interfaces und C++ Template-Klassen. Entwicklung eines ULF basierten Call-Stack Tracings für C/C++ Funktionen. C++ Integration eines Apache XML-Parsers zur Anbindung von ULF an eine Java GUI.
  • In Eigeninitiative entwickeln eines statischen C++ Instanziierungs-Patterns zum zuverlässigen, der Link-Reihenfolge unabhängigen Instanziieren von C++ Objekten aus verschiedener Code Modulen. Das von mir entwickelte Pattern wurde für eine Patenteingabe vorgeschlagen.
  • Entwicklung einer C++ Template-Klasse zur einfachen Implementierung von Worker-Threads für X/Motif GUIs.
  • Threaded Motif GUI mit Fortschrittsanzeige und Interprozesskommunikation zum Messtechnik-Framework zur Kalibrierung analoger Messtechnik. Code Refactoring bestehender X/Motif GUIs zur Trennung von GUI- und Application-Threads.
  • Konvertierung eines kompletten „Performance Verification“ Test-Frameworks von C nach C++, integrieren von Exception-Handling und überarbeiten des gesamten make Builds.
  • Shell Script Entwicklung zur TDR-Kalibrierung (Time Domain Reflectometry) und Skew-Kalibrierung von Digital/Analog Messkanälen.
  • Coverity C++ statische Codeanalysen und Bugfixing an Messtechnik Code.
Eclipse CDT g++ gcc gdb TotalView Debugger make Enterprise Architect ssh ksh bash vnc Clear-Case gvim Doxygen Valgrind Linux Red Head 64 Bit
C++ C STL Boost Ruby Shell-Script UML PostgreSQL Java XML makefile Python SCons UNO
Verigy Advantest GmbH
Böblingen
6 Jahre 2 Monate
2006-07 - 2012-08

C# .NET2.0 Entwicklung eines Wettkampfpunktwertesystem

Softwareentwickler und Berater
Softwareentwickler und Berater

C# Weiterentwicklung eines GUI basierten Punktwertesystems, welches ich in C++/MFC entwickelt hatte, siehe Zeitraum 12.2003 – 07.2004:

  • Portierung von C++/MFC auf C# .NET 1.1 mit neuer MDI Architektur zum Verwalten mehrerer geöffneter Formulare unterschiedlicher Wettkampfklassen.
  • HTML-Parsers mit IExplorer ActiveX Control (COM-Interop), zum Einlesen der Datensätze der Wettkämpfer aus HTML-Dokumenten.
  • Relationale Datenbank mit Fremdschlüsseln, basierend auf den .NET Klassen DataSet, DataTable, DataView etc..
  • RS232 Einbindung per MSComm ActiveX Control.
  • Entwicklung eines "Auto-Resize" DataGrid Controls für .NET 1.1.
  • Migration von .NET 1.1 auf .NET 2.0.
  • Bugfixing, Erweitern und Portieren nach C# einer VB .NET Klasse (DataGridPrinter) zum Ausdrucken von DataGrid Tabellen.
  • Drag&Drop für Dialog Formulare, um die Datensätze der Wettkämpfer per Maus zu platzieren.
  • Entwicklung einer TreeView Klasse mit Drag&Drop und komplexen ToolTips für TreeNodes.
  • P-Invoke Calls für erweiterte Win32 Graphik.
  • Source-Code Dokumentation in Englisch.
Source Insight Visual Studio C# 2003/2005 Sharp Develop 2.2 Keil IDE UVW2 für CC1010-Mikrocontroller (8051 Funk-Chip).
Taek-Won-Do Sportverband
6 Monate
2009-10 - 2010-03

CVC-Loader für Schweizer Gesundheitskarte (Smartcardterminal Web-Client mit Update-Server)

Softwareentwickler und Berater
Softwareentwickler und Berater

Java Entwickelung eines CVC-Loaders (CVC = Card Verifiable Certificate) für eine HPC Smartcard mit HTTP/SSL Web-Interface über PKCS#11 sowie aufsetzen eines Update-Servers unter Linux. Der CVC-Loader verbindet sich über HTTPS mit dem Update-Server zum Beantragen der Authentisierung für den Smartcard Zugriff und zum Ermitteln der aktuellsten CVC-Versionen. Neu zu ladende CVCs werden mittels DER codierter Certificate-Requests per HTTPS von einem CA-Server beantragt und auf Smartcard gespeichert. Die CVC-Loader Entwicklung erfolgte für Windows, Linux und Mac-OS.

  • OOA/OOD gestützte Entwicklung
  • Entwicklung eines HTTP/SSL Web-Clients mit Mutual Client-Authentication über PKCS#11 Card-API in Java.
  • Java-Entwicklung eines Zertifikat-Konverters zum Konvertieren von X.509 Zertifikaten in das Java JKS Format.
  • Smartcard PC-Anbindung per javax.smartcardio.
  • ASN.1 Encoder sowie base64 Encoder/Decoder zum Erzeugen DER codierter CVC CA-Requests.
  • Thread-Safe JFC/Swing GUI Implementierung.
  • XML-Schema basierter XML-Parser mit Apache XMLBeans API.
  • Update-Server Implementierung mit PHP auf Apache2/Linux sowie Generieren PEM codierter Server-Keys und Zertifikate per Bash-Skript Automatisierung und openSSL.
  • Entwicklung eines Performance Test-Tools für den Update-Server als JFC/Swing GUI-Applikation mit Test-Logfile Generierung im CSV-Format für Excel.
  • Beratung u. C++ Design-Support für das Fremdprojekt: PKCS#12 Cardreader-API für QT.
NetBeans 1.6.7 IDE JDK 1.6 PHP Apache2-Server Wireshark (Network Protocol Analyzer) XML-Spy Apache XMLBeans GVim Suberversion für NetBeans-IDE und TortoiseSVN-Client Visual Studio 2008 mit QT Framework Javadoc Doxygen.
Albis-Technologies AG
Zürich
5 Monate
2009-05 - 2009-09

Linux Entwickler-Selbstschulung auf KDE und GNOME Desktop

C/C++ Entwicklung von Applikationen und Kernel-Treibern.

gcc g++ make gdb Vim-Editor mit CTags. C# Entwicklung mit MonoDevelop-IDE auf Mono (.NET kompatible CLI-Laufzeitumgebung für Unix basierte Systeme). Shell Skript Programmierung sowie Skripten für KDE und GNOME Desktop Plugins.
5 Monate
2008-12 - 2009-04

Trusted-Base-OS Simulator für Multi-Tasking-Kernel

freiberuflicher Testsoftwareentwickler und Berater
freiberuflicher Testsoftwareentwickler und Berater

Multitasking-OS Simulator zum Simulieren des hoch sicheren Trusted-Base Kernels (MC4), um die Eignung des zu verwendenden Pistachio L4-Kernels auf einer ARM11 CPU zu verifizieren.

 

Anmerkung:

Das 2 jährige Projekt wurde mangels Budget bereits nach 4 Monaten eingestellt. Dennoch gelang mir die erfolgreiche Fertigstellung der Phase 1 (Perfomance Evaluierung) auf Grund von Eigeninitiative und meiner guten Embedded Kenntnisse (laut Referenzschreiben vom 15.05.05):

  • Abstraction-Layer Entwicklung in C/C++ zum Betrieb des Simulators auf dem Target-MTK (ARM11) und auf PC unter Linux und Windows (mit Cygwin). Threading für PC mittels POSIX Thread-API. Simulation der MTK IPC-Calls auf PC mit UDP/IP Sockets.
  • Kernel-Code Debugging in C/Assembler auf ARM11 mit RealView ICE.
  • Entwicklung Test-Build Toolchain mit make für Linux und Windows (mit Cygwin).
  • Entwickeln von für Unit- und Integration Tests.
  • Mitarbeiter Coaching und Übernehmen von Fremdarbeitspakten.
  • Analyse- und Design-Dokumentation in Englisch.
Cygwin (Windows Unix-Emulation) g++ gcc make gdb bash vim Source Insight ARM1176 RealView Toolchain und Emulator Eclipse mit CDT Plugin Clear Case mit UCM Clear Quest.
Giesecke & Devrient
München
2 Jahre
2007-01 - 2008-12

Neue Betriebssystemgeneration für 3G USIM Java Smartcard

freiberuflicher Senior Softwareentwickler u. Berater
freiberuflicher Senior Softwareentwickler u. Berater

Entwicklung einer neuen, hochperformanten 3G Javacard Architektur auf ARM7. Die Entwicklung erfolgte auf PC-Simulator mit Visual Studio für C und Eclipse für Java, VM Remote-Debugging zwischen C- und Java-Code mittels Visual Studio und Eclipse, Target Debugging auf Emulator. Für dieses Projekt wurde ein 7 Personen Eliteteam aus Embedded Entwicklern zusammengestellt. Produktspezifikation nach ISO7816,  ETSI, 3GPP, Javacard 2.2.1 und Global Platform:

  • Entwickeln eines Software Komponenten-Modells zur Implementierung einer klaren, wartungsfreundlichen Code-Basis.
  • C# Entwicklung einer Windows Tray Applikation für einen Stream-Completion-Monitor für Clear Case UCM. Einbinden der grafischen Elemente (Bitmaps, Icons) als Ressource.
  • Analyse von Java Komponenten der alten Javacard Basisplattform mit UML Sequenz-Diagrammen für das Code-Refactoring in C.
  • Entwicklung einer Applet-Registry zum gemischten Registrieren und Installieren von Toolkit- und Javacard Applets als Java-Code oder Native-Code Modul.
  • Komplettes Redesign der Javacard Basisplattform und Portierung von Java nach C/Assembler mit JNI Einbindung von C Modulen.
  • Implementierung von GUSIM SMS-Events für Remote-File-Management (RFM) sowie Implementierung des BIP/CATTP Protokoll-Layers zum zum Triggern von Toolkit-Applets durch BIP/CATTP Events.
  • Java VM Class-Byte Debugging auf Emulator.
  • Perl Skript-Entwicklung zum Konvertieren verschiedener Test-Logs in XML Test-Skripten sowie Entwickeln von Systemtests in XML.
  • Erstellung von Dokumentation für die Smartcard-Produktion.
  • Bug Tracking mit Clear Quest (Change Requests).
  • Trainings und Entwicklersupport für die neue Codebasis.
  • Analyse- und Design Dokumentation in Englisch.
Enterprise Architect UML Source Insight Eclipse Visual-Studio 2005 C++ Sun Javacard CAP Converter G&D Java ROM-Mask Generator Perl Sharp Develop 2.2 PC-lint Clear Case mit UCM Clear Quest.
Giesecke & Devrient
München
1 Jahr 3 Monate
2005-10 - 2006-12

Applikationsentwicklung für 3G-USIM Javacard

freiberuflicher Applikationsentwickler u. Berater
freiberuflicher Applikationsentwickler u. Berater

Die Code Entwicklung für Javacard erfolgte überwiegend unter Visual Studio und Eclipse per Simulation, VM Remote-Debugging zwischen C und Java mittels Eclipse und Visual Studio, Target Debugging auf Chip-Emulatoren, Team-Größe ca. 15 Personen:

  • Javacard Tools-Entwicklung für Test-Framework und Build-Prozess mit C++, Java JNI, Perl, DOS-Batch und XML-Skripts.
  • Entwicklung von USIM-Applikationen und System-Patches (Bug-Fixes, Performance-Tuning) in Java/C/Assembler für Kunden wie Nagravison Mobile-TV, Vodafone, O2, EPlus, etc..
  • Clear Quest Tracking von Bugs und Kunden-Requirements.
  • Codereviews, Coachen der Mitarbeiter bei schwierigen Softwarelösungen sowie Übernehmen schwieriger Fremdarbeitspakete.
  • Analyse- und Design-Dokumentation für Applikationen in Englisch.
Source Insight Borland JBuilder Visual-Studio 6.0 C++ Sun Javacard CAP Converter G&D Java ROM-Mask Generator Hitachi IDE + AE-4/AE-5 Emulatoren Infineon SLE88 Emulator Samsung Calm16 Emulator Perl Clear Case mit UCM Clear Quest.
Giesecke & Devrient
München
5 Jahre
2000-10 - 2005-09

2G-SIM/3G-USIM Javacard Betriebssystem für 16 u. 32 Bit MCU

freiberuflicher Senior Softwareentwickler u. Berater
freiberuflicher Senior Softwareentwickler u. Berater

Die Betriebssystementwicklung erfolgte überwiegend unter Visual Studio für C und JBuilder für Java per Simulation, JNI-Call Debugging per DLL-Attach mit Visual Studio. Team Größe 25 – 30 Personen, die Projektsprache war Englisch. Produktspezifikation nach ISO7816, ETSI, 3GPP, Javacard 2.x.x und Global Platform:

  • OOA/OOD von Java Komponenten in UML (Klassen-, Sequenz- und Aktivitätsdiagramme).
  • Implementierung eines Objekt basierten 3G File-Systems mit Memorymanagement und Cache-Layer für EEPROM Zugriffe, sowie entwickeln eines Link-File Standards für Vodafone.
  • Entwicklung einer generischen TLV-Parser API für Javacard, zum Parsen und Editieren von ISO 7816-4 formatierten TLV- Objekten und proprietären Formaten mit beliebiger Baumstruktur.
  • Implementierung neuer SIM-Toolkit Events für WIB 1.3.
  • Java nach C Portierung laufzeitkritischer Java Komponenten des Javacard Frameworks.
  • Entwicklung eines Dämons in C++ (MFC/STL) zur Anpassung der Priorität von Windows-Prozessen, um die schlechte Performance von Hitachi Tools unter Windows enorm zu verbessern.
  • C++ Entwicklung einer XML-Parser DLL zur Performancesteigerung eines C++ Interpreters, welcher XML Testskripten verarbeitet. Implementierung mit MSXML3.O COM-Objekt und C++ Smartpointer Templates.
  • Komponenten-Entwicklung in C++ und Java für einen Javacard PC- Simulator unter Verwendung der JNI-API für Java-Native Calls.
  • Entwicklung XML basierter System-Tests sowie C Unit-Tests.
  • EEPROM Betriebssystempatches in Assembler, C und Java zur Implementierung kundenspezifischer Anforderungen sowie Bug-Fixes.
  • Tätigkeiten als GSM-Javacard Coach im internationalen Team:
  • Präsentationen zur Einführung in die GSM und Javacard Technologien
  • Vermittlung von OOP Kenntnissen und der Javacard Programmierung
  • Schulungen für embedded Programmierung in Java/C/Assembler und Vermittlung sehr hardwarenaher Programmiertechniken (Call-Stack und Register Manipulationen, Codeanalysen) zur Erzeugung von Laufzeit und Footprint optimierten Code sowie effizienter Nutzung von EEPROM durch Cache-Speicher.
  • Beratung bei Analyse/Design, durchführen von Codereviews
Rational Rose u. Together UML Source Insight Symantec Visual Cafe Borland JBuilder Visual-Studio 6.0 C/C++ Sun Javacard CAP Converter G&D Java ROM-Mask Generator Hitachi IDE + AE-4/AE-5 Emulatoren Samsung Calm16 Emulator Perl MKS Source Integrity Rational Clear Case.
Giesecke & Devrient
München
8 Monate
2003-12 - 2004-07

C/C++ Entwicklung für Wettkampfpunktwertesystem

Softwareentwickler und Berater
Softwareentwickler und Berater

Prototypen-Entwicklung im 2 Personen Team eines Punktwertesystems mit Funkhandsender zur Punkteerfassung für den Taek-Won-Do Wettkampf, bestehend aus folgenden Komponenten:

  • MDI-Applikation in C++/MFC zum registrieren der Wettkämpfer und zum Erfassen der Punktwertung über das Funkterminal per RS232 IO.
  • Hardware- u. Software-Design für ein Funkterminal und die Funkhandsender für die Punkteerfassung. Interrupt gesteuerte Echtzeit Firmware in C, I/O-Treiber in Assembler.
Chipcon Mikrocontroller CC1010 mit Funk Transceiver ASCII LC- Display Keypad Treiber-ICs. MS Visual-Studio 6.0 C++ Source Insight Keil UVW1/2 IDE für 8051 Chipcon CC1010 Entwickler-Kit.
ETF Taek-Won-Do Sportverband
2 Jahre 2 Monate
1998-08 - 2000-09

Pilotprojekt für GSM-SIM Javacard Betriebssystem auf 8 Bit MCU

freiberuflicher Softwareentwickler u. Berater
freiberuflicher Softwareentwickler u. Berater

Implementierung des kompletten GSM-SIM Betriebssystems auf einer Java Smartcard in embededd Java und C, Produktspezifikation nach ISO7816, Javacard, GSM:

  • Erwerb einer Rational Rose OOA/OOD UML Zertifizierung
  • Erstellung von Analyse und Design mittels SA Analyse, in UML sowie als englische Dokumentation in MS-Word.
  • Implementierung eines PIN geschützten, hierarchischen Filesystems nach GSM 11.11.
  • Implementieren des Secured Data Layer Protokolls nach GSM 03.48 zum ent-/verschlüsseln und verifizieren von SMS-Paketen.
  • Implementierung des SIM-Toolkit Framework nach GSM 11.14/03.19 (TLV Parser, Filesystem API, Toolkit-API, Event-Dispatcher, Applet Registry, Applet Installer, Proactive Command Threads)
  • GSM Betriebssystemportierung von SLE44 auf SLE66 MCU sowie Codeoptimierung zur Steigerung der Performance.
  • Erweitern/Korrigieren der API Spezifikation nach GSM 03.19 in Zusammenarbeit mit ETSI.
  • Entwicklung von Unit-Tests für Betriebssystemkomponenten.
  • GSM Javacard Schulungen in Englisch für ein neues Entwicklerteam aus Spanien.
ProMod SA Analyse und Rational Rose UML Microsoft J++ Symantec Visual Cafe Keil UVW1/2 IDE für SLE44/SLE66 Sun Javacard CAP Converter MKS Source Integrity.
Giesecke & Devrient
München
5 Jahre 8 Monate
1992-12 - 1998-07

Hard- und Softwareentwicklung für Messtechnik

Abteilungsleiter, Entwickler und Kundenberater Interrupt gesteuerte Echtzeit Firmware in C und Assembler GAL Programmierung in ABEL-HDL. serielles Softtimerinterrupt gesteuertes Bitprotokoll zur Kokoll zur Kommunikation der MCU mit dem Ladekontroller ...
Abteilungsleiter, Entwickler und Kundenberater

Als Leiter der Abteilung Elektronik verrichtet ich folgende Arbeiten:

  • Softwareentwicklung für Mikrocontroller basierter Messtechnik Messtechnik in C und Assembler, für PC (DOS, Win 3.11) in C/C++ und SPS-Steuerungen.
  • Hardwareentwicklung von Mikrocontroller/DSP basierter Messtechnik, DMS-Messsignalverstärker, DC/DC Konverter, Akkuladesysteme, Ultraschall Sensorik etc. mit CAD Programmen. 
  • Projektplanung für Prüfanlagen und Messsysteme
  • Technische Beratung und Betreuung von Kunden im Hause und vor Ort im In- und Ausland
  • Schulung von Mitarbeiten und Kunden.

Nachfolgend ein Auszug von 3 Projektarbeiten, wobei die Hard- und Software, nach den Vorgaben durch die Geschäftsführung, von mir komplett designed und entwickelt wurde. Die Prototypen Fertigung, sowie das Testen erfolgten in Teamarbeit.

Projektarbeit1: Laserlichtschranken-Geschwindigkeitsmesssystem

 

Entwicklung der Hard- und Software für das Messsystem, welches über RS485 Bus zu mehreren Geräten mit einem Master-PC zur Meßdatenerfassung und Steuerung vernetzt wurde. MMI mit LC-Display und Folien-Tastatur. EEPROM für Parameter und Meßdaten, Realtime-Clock zur Messerwertdokumentation. GAL I/O Logik.

Projektarbeit2: Crashfestes und vernetzbares Hochleistungsakkusystem

Spezifizierung u. Entwicklung der Hard- und Software für das Akkusystem, welches der Versorgung einer crashfesten Messtechnik für automobile Crashversuche dient. Das Akkusystem kommuniziert mit der Messtechnik über CAN Bus.

DC/DC Konverter Entwicklung zur Spannungskonvertierung wie folgt:

  • Leistungs Buck-Konverter 24V => 12V/12A, 200kHz.
  • Boost-Konverter 12V => 30V/2A, 300kHz.

Projektarbeit3: SPS Ultraschall-Kollisionsschutzanlage

Spezifizierung u. Entwicklung einer SPS Ultraschall-Kollisionsschutzanlage, zur Hinderniserkennung bei Kommissionierfahrzeugen. Entwicklung einer Adapterelektronik zum SPS-Betrieb von Ultraschallsensoren des Typs Messring AE14 inklusive Sensorselbsttest durch die SPS. Entwicklung eines Geschwindigkeitsaufnehmers mit binärer SPS Schnittstelle.

80C32 MCU GAL 22V10 serieller IO-Treiber Realtime-Clock IC 4x16 ASCII LC-Display 32k EPROM serielles EEPROM. AT89C2051 MCU Ladekontroller Chip PCA82C200 CAN-Controller DC/DC Konverter-ICs selbst entwickelte HF Drosseln analoge Messverstärkerschaltungen. C/C++ Entwicklung einer GUI basierte Windows 3.11 Applikation zum Testen der seriellen Kommandoschnittstelle. Siemens SPS S95-U Analog und Digital ICs Ultraschallsensoren Typ Messring AE14.
Interrupt gesteuerte Echtzeit Firmware in C und Assembler GAL Programmierung in ABEL-HDL. serielles Softtimerinterrupt gesteuertes Bitprotokoll zur Kokoll zur Kommunikation der MCU mit dem Ladekontroller Treibersoftware in Assembler. Zyklisches Softwaretimer gestützte Firmware programmiert als AWL mit STEP5.
Messring Systembau GmbH
Gräfelfing

Aus- und Weiterbildung

Aus- und Weiterbildung

09/1990 - 07/1992                    

Vollzeitstudium (staatlich geprüften Techniker (Bachelor international))

GBS Technikum München
Schwerpunkt Nachrichtentechnik, Abschlussnote: 1,6

 

09/1981 - 04/1985                  

Ausbildung zum Energiegeräteelektroniker mit Anschlusspraktikum

Stadt München

 

09/1977 - 07/1981         

Carl von Linde - Realschule in München 

Abschluss: Mittlere Reife

Position

Position

  • Entwickler

Kompetenzen

Kompetenzen

Top-Skills

STM32 C/C++ Embedded Embedded Linux C# Raspberry-Pi Eclipse CDT ARM CAN, UART, SPI Embedded Java Shell Scripts TCP/IP MFC Keil uVision Python

Produkte / Standards / Erfahrungen / Methoden

Altium Designer
bash
Boost
Boost Asio
C/C++ (C14) Echtzeit Programmierung
cygwin
Doxygen
Eclipse CDT
Eclipse CDT/PyDev/Remote System/TFS
Eclipse CDT/PyDev/Remote System/TFS Source Control
Eclipse PyDev
Enterprise Architect
g++
gcc
gcc/g++ gcc-linaro-arm-linux-gnueabihf-4.8 Windows Cross-Compiler
gdb
Keil Simulator
Keil Tools
Keil UV5
Linux C++ Visual Studio 2017 für Raspberry Pi Remote-Compile
Linux Sysfs
Moritz for Doxygen
Oracle VirtualBox
Putty
Raspbian Jessie gcc/g++ arm-linux-gnueabihf-4.9.2 Windows Cross-Compiler
Schaltplan/Layout Hardwaredesign
Scrum.
SmartCardManager 5 mit Rhino Engine 1.7R4
ssh
ssh Remote-Commands
STL
svn
TFS Source Control
TFTP Boot-Server
Tortoise
Tortoise Svn
TotalView Debugger
U-Boot Shell
UNO
Valgrind
Visual Studio 2012
VMware Player
vnc
w3.org XML-Kryptographie
WinSCP
XML

Erfahrungen im Bereich:

  • Embedded Systemprogrammierung
  • PC Applikationsentwicklung (Konsole u. GUI)
  • C/C++, C#/VB .NET, Java, Linux POSIX API, XML, HTML.
  • Microsoft Standards
  • MFC, ActiveX Controls, .NET P-Invoke u. COM-Interop, Win 16/32 SDK
  • Buildkonfiguration
  • DOS-Batch, GNU make, Perl
  • Unit-Tests, Integration-Tests
  • Objektorientierte Analyse, Design und Programmierung
  • Versionsverwaltung
  • Base Clear Case u. UCM, MKS
  • Hardware-/ Softwareentwicklung für Meßtechnik
  • CPLD Programmierung in ABEL-HDL
  • SPS S5 Programmierung
  • Projektmanagement, Team-Coaching und Schulungen

 

Spezialkenntnisse:

  • JavaCard Spezifikationen V2.1.1, V2.2.1
  • 3GPP UICC und ETSI 2G SIM Spezifikationen:
  • GSM 11.11, 11.14, 03.19, 03.48.
  • 3GPP 23.048, 31.102, 31.111, 31.130, 43.019, 51.011, 51.014
  • ETSI TS 102.221, 102.222, 102.241.
  • Embedded Sicherheits-Systeme (JavaCard/Smartcards, ARM11 Trust-Zone)

Programmiererfahrung

  • Assembler: ARM7/11, 80x86, Renesas AE-4/AE-5, Samsung Calm16, 8051, XA-G3, AVR
  • C/C++: Embedded Systeme, Templateprogrammierung, Visual Studio 0 & 2005, MFC, ActiveX, UNO, STL, Windows 16/32 Bit (GUI & Konsole), Linux gcc/g++ (Konsole)
  • C# & VB: .NET 1/.2.0 für Windows und Linux (Mono), ActiveX/COM-Interop,
    P-Invoke,GUI&Konsole.
  • Java: Java Card, Java Applikationen , Java JNI-Programmierung, Bouncy-Castle PCE API,
    PCKS#11, smartcardio.
  • Sonstige: Python, JavaScript, Perl, Pascal, XML, HTML, PC-lint, ABEL-HDL (CPLD Programmierung)

Java SIM Smartcard Standards

  • SmartcardSicherheitundVerschlüsselungsstandards; Java Card2.2.1; GlobalPlatform2.2.1; ISO7816; ETSITS102.221,102.222,102.241; 3GPP23.048,31.102,31.111,31.130,43.019,51.011, 51.014; GSM11.11,11.14,11.17,03.19,03.40,03.48

Methoden

  • UML OOA/OOD
  • OOP
  • Coding Style Guidlines
  • Unit- und Integration-Tests

 

Mikrocontroller Hardware, Emulatoren u. Simulatoren

  • 8051-Derivate
  • CC1010
  • Atmel AVR
  • XA-G3
  • SLE44/66
  • Hitachi AE-4/AE-5
  • Samsung Calm16
  • ARM7/11

Buildkonfiguration

  • DOS-Batch
  • make
  • Perl

Software Versionsverwaltung

  • Base Clear Case
  • Clear Case UCM
  • Subversion (SVN)
  • MKS Source Integrity

SPS

  • Siemens S95-U (AWL Programmierung in Step5)

Hardwareentwicklung

  • Mikrocontrollersysteme
  • Messelektronik
  • DC/DC Wandler
  • Akkuladesysteme
  • Ultraschallsensorik
  • CPLDs

Personalmanagement

  • Projektleitung
  • Team-Coaching
  • Schulungen
  • Kundenberatung

Betriebssysteme

Cygwin
Unix-Emulation
Linux
MS-DOS
RTOS
Pistachio L4 Micro-Kernel, Keil RTX 51, Interrupt driven Embedded Systeme
SIM Java Smartcards
Windows
alle ab Win 3.11 - Win-XP

Programmiersprachen

.NET 2.0
C#, C++, Java
ABEL-HDL
GAL u- CPLD Programmierung
Angström Linux
Assembler
ARM7/11, 80x86, Renesas AE-4 & AE-5, Samsung Calm16, 8051, XA-G3, AVR
C
Embedded C, Win32 SDK, gcc
C# WPF
C++
Embedded C++, STL u. Boost Templates , MFC, g++
DOS Batch
GNU make
Java
JavaCard, Java JNI-Programmierung, Java Applets
JavaScript
Rhino JS Engine, Jasmine Test-Framework, Infineon SmartCardManager, Web-Applikationen
ksh
make
makefile
Pascal
MS Turbo
Perl
Python
Python 2.7/3.4 für Linux u. Windows, ctypes, Tkinter
Python 2.7
Python 3.4
Ruby
Shell-Script
UML
Visual C++

Datenbanken

PostgreSQL
Programmierung über C++ Interface
Proprietäre DB
.NET DB-Klassen wie DataSet, DataTable, DataView ...

Datenkommunikation

APDU Smartcard-Protokoll
CAN/CANopen
MIDI-Bus
RS232
RS485
SMS Secured-Protokoll nach 3GPP TS 43.048
TCP-IP/UDP-IP Sockets
uC-Schnittstellen
SPI, I2C etc.
USB Protokoll

Hardware

Altera Cyclone V SoC
Shiratech Spark100 SOM
Altera Cyclone V SoC Board
ARM Cortex 3
Digitale Signalprozessoren
Motorola 24 Bit fixedpoint DSP 56002.
Echtzeitsysteme
Emebedded Linux, Interrupt Driven Firmware
Embedded Systeme
Linux Boards, JavaCard/Smartcard (2G-GSM / 3G-UICC SIM), Messgeräte, Stromversorgungen
Emulatoren
Keil 8051, Hitachi AE4/AE5, Samsung Calm16, Infineon SLE88.
Hardwareentwicklung
Microcontroller Hardware mit PC-Interface und MMI, GAL Digitalschaltungen, Ultraschallmessgeräte, Geschwindigkeitsmessgeräte, Meßverstärker, MIDI-Controller, AD/DA-Konverter, DC/DC Power-Konverter, Akku-Lader, Funkmodem
HiTOP Emulator
Infineon C251
Linux GPIO
Messgeräte
Oszilloskope, Multimeter, Frequenzzähler, Signalgeneratoren.
Mikrocontroller
8051, Chipcon CC1010, Atmel AVR, Philips XA, Hitachi AE4/5 (H8/300H), Samsung Calm16, ARM7
PLD, FPGA
GALs, CPLDs.
Prüfadapter Hardwareentwicklung
Radarsensoren
Radarsensorik
Raspberry Pi 3
Sensoren
Silicon Radar Radarsensoren, Ultraschall, Hall, Kraftsensoren (DMS-Technik).
Siemens-SPS
S95-U.
UART/DMA Treiber
USB-UART

Berechnung / Simulation / Versuch / Validierung

PSpice
Simulation von analogen Filtern
Software-in-the-Loop Simulation (SIL)
JavaCard Simulatoren, Multi-Tasking-Kernel Simulator (Windows u. Linux)

Design / Entwicklung / Konstruktion

AutoCAD
EAGLE
WSCAD

Branchen

Branchen

  • IT Security
  • Messtechnikindustrie
  • Automotiv

Einsatzorte

Einsatzorte

Tübingen (+100km) Titisee-Neustadt (+75km) München (+100km) Mindelheim (+100km) Erlangen (+100km) Deggendorf (+75km)

Deutschland: Bevorzugt arbeite ich in Bayern, Landkreis Dachau, München oder Augsburg.

nicht möglich

Projekte

Projekte

5 Jahre 9 Monate
2018-07 - heute

C++/MFC Software Simulator für ?SMT PCB Conveyor? Hardware

Softwareentwickler und Berater (selbständig) Windows MFC GUI Programmierung C++/C14 Templates mit STL und Boost XML Database ...
Softwareentwickler und Berater (selbständig)

Zur Simulation von SMT PCB Conveyor Hardware benutzte der Kunde eine in C++/MFC programmierte Software mit GUI, welche die mechanische Hardware und das Control-Board für das Embedded-OS (C++ Firmware auf XC167 oder ARM MCU) simulierte. Als MCU Simulator wurde Keil uVision verwendet, welches per AGSI Schnittstelle mit der Conveyor-Simulation verbunden war. Meine Aufgaben waren das Erstellen von neuen Software Conveyor-Typen und die Abstraktion der Keil AGSI Schnittstelle, um den Embedded-OS Code mit dem Conveyor-Simulator ohne uVision direkt auf PC zu testen. 

  • Refactoring für den vorhandenen Code zur Verbesserung der Codestruktur und Wartbarkeit.
  • Erweiterung des Simulator Logik und der GUI Dialoge.
  • Abstraktion der Keil AGSI Schnittstellen zur Implementierung einer AGSI kompatiblen virtuellen Register Struktur zur Simulation von Microcontroller Hardware Ports 
  • Implementierung virtueller CAN-Bus Register für den Simulator zur Simulation einer virtuellen CAN-Bus PC-Verbindung per Kvasar CAN-Treiber.
Visual Studio 2015 und 2017 C++ Keil C++ für XC167 XmlLite Parser Cygwin gcc/g++ Eclipse CDT/PyDev/Remote System/TFS cygwin Putty WinSCP
Windows MFC GUI Programmierung C++/C14 Templates mit STL und Boost XML Database Kvasar CAN-Treiber für Windows XC167 Microcontroller bash und Windows cmd shell TFS Source Control Scrum
ASM Assembly Systems GmbH
München
7 Monate
2017-12 - 2018-06

Portierung des Abstandsmesssystems für Roboter von Raspberry Pi auf Zielhardware Shiratech Spark100 SOM.

Softwareentwickler und Berater (selbständig) C/C++ (C14) Echtzeit Programmierung U-Boot Shell Linux GPIO ...
Softwareentwickler und Berater (selbständig)

Zur Aufgabe gehörte die Inbetriebnahme der Embedded Linux Zielhardware (Spark100 SOM mit Angström Linux) sowie die Implementierung von UART- und GPIO-Ports im FGPA, welches vom SoC Spezialisten „El Camino GmbH“ nach meinen Vorgaben geleistet wurde. Die Portierung der C++ Cluster-Controller Software von Raspberry Pi 3 auf Spark100 konnte ich bereits Ende April, sogar 1 Monat vor dem geplanten Termin, inklusive Laufzeit Optimierungen erfolgreich abschließen. 

  • Spezifizierung einer UART/DMA Hardware sowie des GPIO Routings für die FPGA Implementierung in Zusammenarbeit mit der El Camino GmbH. Erstellung des FPGA Images sowie der Binaries zur Linux Anbindung durch El Camino.
  • Hardware-Prüfadapter zum Testen der FPGA Implementierung von UART- und GPIO-Ports. Testsoftware zur Performance Evaluierung und Verifikation der Hardwarelogik.
  • Serial I/O C++ Class-Lib für den Application-Layer Zugriff auf die FPGA UART/DMA Hardware.
  • Plattform optimierte GPIO C++ Klassen per Linux Sysfs Interface (On/Off-Time < 5us bei 900MHz CPU-Clock).
  • Ersetzen der boost::asio::serial_port Lib durch eigene Serial-Dispatching-Thread C++ Klassen für ein optimiertes Realtime-Processing (Verbesserung der Messzykluszeit von über 50% bei 17 Radarsensoren).
  • TFTP-Boot Server auf Linux PC sowie U-Boot IP Network-Setup für das Spark100 SOM zum Klonen der konfigurierten Board Firmware von eMMC via Ethernet. Außerdem MAC-Address Konfiguration der Spark100 SOMs via U-Boot.
  • ssh Remote-Logging zum Aufzeichnen der Cluster-Controller Logs auf einem Client-PC zur Reduzierung des eMMC Verschleißes durch On-Board Schreibzugriffe. Python Skripte zum Aufbereiten und Visualisieren von Log-Daten.
  • Erstellung der Entwickler Dokumentation des Cluster-Controller Systems zur Übergabe an ABB, sowie Einarbeitung der internen Mitarbeiter.
Altera Cyclone V SoC Board Angström Linux gcc/g++ gcc-linaro-arm-linux-gnueabihf-4.8 Windows Cross-Compiler Eclipse CDT/PyDev/Remote System/TFS cygwin Putty WinSCP. Radarsensoren
C/C++ (C14) Echtzeit Programmierung U-Boot Shell Linux GPIO UART/DMA Treiber IP Netzwerk/Router Konfiguration UDP Multicast TFTP Boot-Server ssh Remote-Commands Shell-Script Python 3.4 Prüfadapter Hardwareentwicklung DOS Batch TFS Source Control Scrum. Radarsensorik Linux Sysfs
ABB Robotics
Seefeld am Pilsensee
9 Monate
2017-03 - 2017-11

Prototyp für ein Abstandsmesssystem zur Personenerkennung für Kollaborative Roboter (C++ Embedded Linux Realtime-Applikation)

Softwareentwickler und Berater (selbständig) C/C++ (C14) Echtzeit Programmierung Boost Asio USB-UART ...
Softwareentwickler und Berater (selbständig)

Die Aufgabe war die Prototypen Entwicklung eines Radarmesssystem bestehend aus einem Cluster von Radarsensoren für Kollaborative Roboter zur Erkennung von Personen. Da die Linux Zielhardware, das Shiratech Spark100 SOM (Altera Cyclone V SoC Module), bei Projektstart von Shiratech nicht funktionsfähig konfiguriert werden konnte, entschied ich mich wegen der engen Terminvorgabe für eine Embedded Linux Entwicklung auf Raspberry Pi 3. Dadurch konnten wir pünktlich im November 2017 eine voll funktionsfähige Roboter Live-Demo bei ABB in Ladenburg vorführen. 

  • Evaluierung der Hardwareschnittstellen sowie der Performance zur Datenübertragung für die Radarsensoren des Herstellers Silicon Radar. Dokumentation für Analyse und Design. Erstellen von Laufzeitdiagrammen für ein Sensor Trigger-Management zum gewährleisten eines störungsfreien parallelen Betriebs mehrerer Radarsensoren.
  • Entwicklung einer SMARC-Module UART Adapter-Platine zur Anpassung der Raspberry Pi 3 USB-UART Schnittstellen an das SOM Mainboard der Spark100 Zielhardware.
  • Evaluierung und Installation der ARM Cross-Compiler Toolchain für Linux Raspbian Jessie unter Windows. Integration für Eclipse.
  • ssh-cygwin und WinSCP DOS-Batch Scripting für den Headless Zugriff von Windows PC auf die Linux Zielhardware.
  • C++ (C14) Multithread Messtechniksoftware auf Linux Raspbian Jessie (R-Pi3) zum synchronisierten Ansteuern sowie der Echtzeit-Signalverarbeitung (< 80ms) von 10 Radarsensoren per USB-UART (Baudrate 230.400 bit/s). Die Ausgabedaten wurden per Ethernet UDP/IP an den Robotics-Controller übertragen.
  • High-Speed GPIO User-Space Lib als C++ Klasse mit direktem Zugriff auf die R-Pi3 GPIO Register des BCM2837 SoC via Memory-Mapped IO. Überprüfen der GPIO Performance und des OS-Jitter via Messung mit Oszilloskop.
  • Python Konvertierungs-Skripte zum Aufbereiten und visualisieren von Messdaten.
  • Shell-Skript zum Registrieren von USB-UART Devices per Udev Rules, zur persistenten Fixierung der zugeordneten Device-Nodes auf R-Pi3 via USB Geräte-ID.
  • Definieren/Spezifizieren der elektrischen Baugruppen zur Stromversorgung und Datenübertragung für das Cluster-Controller Messsystem.
  • Beraten und Unterstützen von Mitarbeitern zu den Themen: C++ C11/C14 Standards, C++ Object Lifetime, STL Thread Synchronisierung (mutex, lock_guard, condition_variable etc.), Embedded C++ Programmierung, Eclipse C/C++ Compiler Integration, UART Schnittstellen, Linux Shell Scripting, Python ctypes.
Raspberry Pi 3 mit Raspbian Jessie OS Raspbian Jessie gcc/g++ arm-linux-gnueabihf-4.9.2 Windows Cross-Compiler cygwin Eclipse CDT/PyDev/Remote System/TFS WinSCP Altium Designer Oracle VirtualBox Linux C++ Visual Studio 2017 für Raspberry Pi Remote-Compile Radarsensoren
C/C++ (C14) Echtzeit Programmierung Boost Asio USB-UART Linux GPIO UDP/TCP/IP Programmierung Shell-Script Python 2.7 Makefile DOS Batch Schaltplan/Layout Hardwaredesign TFS Source Control Scrum. Radarsensorik
ABB gomtec Robotics
Seefeld am Pilsensee
3 Monate
2016-12 - 2017-02

C# WPF und C++ Messtechnik-Applikation zum Einmessen von Audi Infotainmentsystemen auf die Akustik von Fahrzeugen

Softwareentwickler und Berater (selbständig) C# WPF C C++ ...
Softwareentwickler und Berater (selbständig)
  • Konzeption und C# Prototypen-Applikation zum asymmetrischen Verschlüsseln/Entschlüsseln von Text-Dateien und binären Dateien in einer XML Datei als gemeinsamer Daten-Container. Die Verschlüsselung erfolgte mittels RSA Public/Private Key als "hybride" Verschlüsselung nach den w3.org Standards [URLs auf Anfrage]
  • Schulung zu C/C++ Compilern (gcc/g++) für die Entwickler von Ferchau und Audi. Entwickeln einer C/C++ Container-Architektur für BPlus Infotainment-Soundmodule, welche als C++ Klassen programmiert sind.
  • Konzeption und DLL Entwicklung eines C# WPF File-Transfer Clients für den automatisierten Upload/Download von versionierten Dateien auf einen File-Server. Implementierung eines XML-Parsers zur Ermittlung der aktuellen File-Versionen und Repository-Pfade aus einer XML-Datei. Anwender Daten wurden als .NET „User Settings“ gespeichert.
Visual Studio 2015 für C# und C++ gcc g++ Tortoise Svn
C# WPF C C++ w3.org XML-Kryptographie XML HTTP DOS Batch Scrum
Ferchau Engineering
Ingolstadt
2 Jahre 8 Monate
2014-04 - 2016-11

Firmware-Entwicklung TMP Chips und SmartCards auf AMR Cortex 3 und C251

Softwareentwickler und Berater C C++ Assembler ...
Softwareentwickler und Berater
  • C/C++ und Assembler Entwicklung von Treiber-Libraries, NVM Memory Management und Kunden Application-Notes für das Ansteuern der MCU-Hardware von Infineon ARM Cortex3 und C251 SmartCard Derivaten. Codeentwicklung mittels Keil uVision 4/5 und Eclipse- CDT. Debugging auf C und Assembler Level mit Keil uVision Simulator, Hitop Hitex Emulator und Simulationsumgebung unter MS Visual Studio

  • Entwickeln von Systemtests/Unittests in C und Java/JavaScript für das HSL TestOS zum Verifizieren der neu entwickelten hochsicheren HSL (HSL = Hardware-Support-Library für Infineon Security Chips). Integration eines Chip Flash-Loader Modules für das automatisierte Testen auf Chip Hardware. Integration einer automatischen Code-Coverage Messung für Simulator und Emulator. Refactoring von Test-Framework Komponenten. Der Test-Framework basiert auf SmartCardManager5, einer JavaScript Testumgebung mit Rhino-Engine und integriertem SmartCard Interface von Infineon.
  • Entwicklung von Test-Tools in Python, z.B. ein Remote-Controller für die Keil-uVision IDE zur Steuerung des Debuggers, Abfragen von Debugger-Daten für CPU-Status und Code-Coverage, Erstellen von IDE Projekten etc.. Das Python Skript nutzt die ctypes Library als DLL-Wrapper für die UVSC.dll von Keil, welche per Socket-API mit der IDE kommuniziert.
  • Make-Build Administration und Skript Programmierung für gnu make, bash shell, Perl etc. für das Projekte HSL zur Erstellung der HSL-Library und der Test-OS Applikation, der automatischen PC-lint Codeanalyse, des Build-Deployments für die unterstützten Chip-Derivate und der Erzeugung der Doxygen Dokumentation.
  • Entwickeln von Developer-Tools:
    • SFR-Parser (SFR = Mikrocontroller Special Function Register)in Perl zum automatisierten Parsen von SFR-Referenzen in C-Funktionen und zur Erzeugung von Doxygen-Pages.
    • Shell Skripte für syntaktisches „Symbol-Grepping“ von JavaScript, Make-Skripte, C/C++ und Assembler Code. 
    • Cross Windows/Cygwin Wrapper zum Starten von Windows Applikationen aus Cygwin und umgekehrt.
    • Shell Aliases (short cuts) für die Projektumgebung.
    • WinSCP Wrapper für den SFTP Transfer von Dateien über das Netzwerk.
  • Überarbeiten und Erweitern der Doxygen basierten HSL API Dokumentation sowie der Low Level Dokumentation für die EAL (Evaluation Assurance Level) Zertifizierung.
  • Erstellen und Administrieren eines „Common-Project-Tools“ Repositories in Eigeninitiative um eine homogene Entwicklungsumgebung für das Firmware-Team sicherzustellen. Die Realisierung des personalisierten Installationsprozesses für die Entwickler PCs erfolgte per Skript Programmierung in Cygwin bash shell, DOS-Batch und Python.
ARM3 C251 Keil UV5 Keil Simulator HiTOP Emulator cygwin Eclipse CDT Eclipse PyDev gcc g++ Moritz for Doxygen SmartCardManager 5 mit Rhino Engine 1.7R4 WinSCP VMware Player Visual Studio 2012 Tortoise svn
C C++ Assembler Python Perl JavaScript Java Shell-Script GNU make Doxygen Keil Tools UML DOS Batch Scrum
Infineon Technologies AG
Augsburg
4 Jahre
2010-04 - 2014-03

Hardware nahe C++ Programmierung auf Linux RedHat 64 Bit von SoC Halbleiter Testsystemen für RF- und Analog ICs

Softwareentwickler und Berater C++ C STL ...
Softwareentwickler und Berater
  • Entwicklung einer Maintenance-Database basierend auf PostgreSQL sowie eines ATML (Automatic Test Markup Language) kompatiblen generischen Testframeworks zum Archivieren von serialisierten Test- und Calibrations-Messdaten. Evaluierung von „Google Protocol Buffers“ zur binären Serialisierung von C++ Objekten. Implementieren einer Laufzeit optimierten binären Datenserialisierung per C++ Metaprogrammierung mittels STL/Boost Templates. Entwicklung von UNO (Universal Network Objects, openoffice.org) Interfaces und Komponenten per UML Design und C++ Template-Klassen zum Exportieren von binären Schnittstellen nach Java und Ruby. Programmierung von SQL-Queries mit Cursor-Control und Foreign-Keys zur generischen Abfrage von Messdatensätzen. Build Konfiguration mit make und Python SCons.
  • Integration eines Unified-Logging-Framework (ULF) für den Analog- und RF-Messtechnik Framework mittels UNO-Interfaces und C++ Template-Klassen. Entwicklung eines ULF basierten Call-Stack Tracings für C/C++ Funktionen. C++ Integration eines Apache XML-Parsers zur Anbindung von ULF an eine Java GUI.
  • In Eigeninitiative entwickeln eines statischen C++ Instanziierungs-Patterns zum zuverlässigen, der Link-Reihenfolge unabhängigen Instanziieren von C++ Objekten aus verschiedener Code Modulen. Das von mir entwickelte Pattern wurde für eine Patenteingabe vorgeschlagen.
  • Entwicklung einer C++ Template-Klasse zur einfachen Implementierung von Worker-Threads für X/Motif GUIs.
  • Threaded Motif GUI mit Fortschrittsanzeige und Interprozesskommunikation zum Messtechnik-Framework zur Kalibrierung analoger Messtechnik. Code Refactoring bestehender X/Motif GUIs zur Trennung von GUI- und Application-Threads.
  • Konvertierung eines kompletten „Performance Verification“ Test-Frameworks von C nach C++, integrieren von Exception-Handling und überarbeiten des gesamten make Builds.
  • Shell Script Entwicklung zur TDR-Kalibrierung (Time Domain Reflectometry) und Skew-Kalibrierung von Digital/Analog Messkanälen.
  • Coverity C++ statische Codeanalysen und Bugfixing an Messtechnik Code.
Eclipse CDT g++ gcc gdb TotalView Debugger make Enterprise Architect ssh ksh bash vnc Clear-Case gvim Doxygen Valgrind Linux Red Head 64 Bit
C++ C STL Boost Ruby Shell-Script UML PostgreSQL Java XML makefile Python SCons UNO
Verigy Advantest GmbH
Böblingen
6 Jahre 2 Monate
2006-07 - 2012-08

C# .NET2.0 Entwicklung eines Wettkampfpunktwertesystem

Softwareentwickler und Berater
Softwareentwickler und Berater

C# Weiterentwicklung eines GUI basierten Punktwertesystems, welches ich in C++/MFC entwickelt hatte, siehe Zeitraum 12.2003 – 07.2004:

  • Portierung von C++/MFC auf C# .NET 1.1 mit neuer MDI Architektur zum Verwalten mehrerer geöffneter Formulare unterschiedlicher Wettkampfklassen.
  • HTML-Parsers mit IExplorer ActiveX Control (COM-Interop), zum Einlesen der Datensätze der Wettkämpfer aus HTML-Dokumenten.
  • Relationale Datenbank mit Fremdschlüsseln, basierend auf den .NET Klassen DataSet, DataTable, DataView etc..
  • RS232 Einbindung per MSComm ActiveX Control.
  • Entwicklung eines "Auto-Resize" DataGrid Controls für .NET 1.1.
  • Migration von .NET 1.1 auf .NET 2.0.
  • Bugfixing, Erweitern und Portieren nach C# einer VB .NET Klasse (DataGridPrinter) zum Ausdrucken von DataGrid Tabellen.
  • Drag&Drop für Dialog Formulare, um die Datensätze der Wettkämpfer per Maus zu platzieren.
  • Entwicklung einer TreeView Klasse mit Drag&Drop und komplexen ToolTips für TreeNodes.
  • P-Invoke Calls für erweiterte Win32 Graphik.
  • Source-Code Dokumentation in Englisch.
Source Insight Visual Studio C# 2003/2005 Sharp Develop 2.2 Keil IDE UVW2 für CC1010-Mikrocontroller (8051 Funk-Chip).
Taek-Won-Do Sportverband
6 Monate
2009-10 - 2010-03

CVC-Loader für Schweizer Gesundheitskarte (Smartcardterminal Web-Client mit Update-Server)

Softwareentwickler und Berater
Softwareentwickler und Berater

Java Entwickelung eines CVC-Loaders (CVC = Card Verifiable Certificate) für eine HPC Smartcard mit HTTP/SSL Web-Interface über PKCS#11 sowie aufsetzen eines Update-Servers unter Linux. Der CVC-Loader verbindet sich über HTTPS mit dem Update-Server zum Beantragen der Authentisierung für den Smartcard Zugriff und zum Ermitteln der aktuellsten CVC-Versionen. Neu zu ladende CVCs werden mittels DER codierter Certificate-Requests per HTTPS von einem CA-Server beantragt und auf Smartcard gespeichert. Die CVC-Loader Entwicklung erfolgte für Windows, Linux und Mac-OS.

  • OOA/OOD gestützte Entwicklung
  • Entwicklung eines HTTP/SSL Web-Clients mit Mutual Client-Authentication über PKCS#11 Card-API in Java.
  • Java-Entwicklung eines Zertifikat-Konverters zum Konvertieren von X.509 Zertifikaten in das Java JKS Format.
  • Smartcard PC-Anbindung per javax.smartcardio.
  • ASN.1 Encoder sowie base64 Encoder/Decoder zum Erzeugen DER codierter CVC CA-Requests.
  • Thread-Safe JFC/Swing GUI Implementierung.
  • XML-Schema basierter XML-Parser mit Apache XMLBeans API.
  • Update-Server Implementierung mit PHP auf Apache2/Linux sowie Generieren PEM codierter Server-Keys und Zertifikate per Bash-Skript Automatisierung und openSSL.
  • Entwicklung eines Performance Test-Tools für den Update-Server als JFC/Swing GUI-Applikation mit Test-Logfile Generierung im CSV-Format für Excel.
  • Beratung u. C++ Design-Support für das Fremdprojekt: PKCS#12 Cardreader-API für QT.
NetBeans 1.6.7 IDE JDK 1.6 PHP Apache2-Server Wireshark (Network Protocol Analyzer) XML-Spy Apache XMLBeans GVim Suberversion für NetBeans-IDE und TortoiseSVN-Client Visual Studio 2008 mit QT Framework Javadoc Doxygen.
Albis-Technologies AG
Zürich
5 Monate
2009-05 - 2009-09

Linux Entwickler-Selbstschulung auf KDE und GNOME Desktop

C/C++ Entwicklung von Applikationen und Kernel-Treibern.

gcc g++ make gdb Vim-Editor mit CTags. C# Entwicklung mit MonoDevelop-IDE auf Mono (.NET kompatible CLI-Laufzeitumgebung für Unix basierte Systeme). Shell Skript Programmierung sowie Skripten für KDE und GNOME Desktop Plugins.
5 Monate
2008-12 - 2009-04

Trusted-Base-OS Simulator für Multi-Tasking-Kernel

freiberuflicher Testsoftwareentwickler und Berater
freiberuflicher Testsoftwareentwickler und Berater

Multitasking-OS Simulator zum Simulieren des hoch sicheren Trusted-Base Kernels (MC4), um die Eignung des zu verwendenden Pistachio L4-Kernels auf einer ARM11 CPU zu verifizieren.

 

Anmerkung:

Das 2 jährige Projekt wurde mangels Budget bereits nach 4 Monaten eingestellt. Dennoch gelang mir die erfolgreiche Fertigstellung der Phase 1 (Perfomance Evaluierung) auf Grund von Eigeninitiative und meiner guten Embedded Kenntnisse (laut Referenzschreiben vom 15.05.05):

  • Abstraction-Layer Entwicklung in C/C++ zum Betrieb des Simulators auf dem Target-MTK (ARM11) und auf PC unter Linux und Windows (mit Cygwin). Threading für PC mittels POSIX Thread-API. Simulation der MTK IPC-Calls auf PC mit UDP/IP Sockets.
  • Kernel-Code Debugging in C/Assembler auf ARM11 mit RealView ICE.
  • Entwicklung Test-Build Toolchain mit make für Linux und Windows (mit Cygwin).
  • Entwickeln von für Unit- und Integration Tests.
  • Mitarbeiter Coaching und Übernehmen von Fremdarbeitspakten.
  • Analyse- und Design-Dokumentation in Englisch.
Cygwin (Windows Unix-Emulation) g++ gcc make gdb bash vim Source Insight ARM1176 RealView Toolchain und Emulator Eclipse mit CDT Plugin Clear Case mit UCM Clear Quest.
Giesecke & Devrient
München
2 Jahre
2007-01 - 2008-12

Neue Betriebssystemgeneration für 3G USIM Java Smartcard

freiberuflicher Senior Softwareentwickler u. Berater
freiberuflicher Senior Softwareentwickler u. Berater

Entwicklung einer neuen, hochperformanten 3G Javacard Architektur auf ARM7. Die Entwicklung erfolgte auf PC-Simulator mit Visual Studio für C und Eclipse für Java, VM Remote-Debugging zwischen C- und Java-Code mittels Visual Studio und Eclipse, Target Debugging auf Emulator. Für dieses Projekt wurde ein 7 Personen Eliteteam aus Embedded Entwicklern zusammengestellt. Produktspezifikation nach ISO7816,  ETSI, 3GPP, Javacard 2.2.1 und Global Platform:

  • Entwickeln eines Software Komponenten-Modells zur Implementierung einer klaren, wartungsfreundlichen Code-Basis.
  • C# Entwicklung einer Windows Tray Applikation für einen Stream-Completion-Monitor für Clear Case UCM. Einbinden der grafischen Elemente (Bitmaps, Icons) als Ressource.
  • Analyse von Java Komponenten der alten Javacard Basisplattform mit UML Sequenz-Diagrammen für das Code-Refactoring in C.
  • Entwicklung einer Applet-Registry zum gemischten Registrieren und Installieren von Toolkit- und Javacard Applets als Java-Code oder Native-Code Modul.
  • Komplettes Redesign der Javacard Basisplattform und Portierung von Java nach C/Assembler mit JNI Einbindung von C Modulen.
  • Implementierung von GUSIM SMS-Events für Remote-File-Management (RFM) sowie Implementierung des BIP/CATTP Protokoll-Layers zum zum Triggern von Toolkit-Applets durch BIP/CATTP Events.
  • Java VM Class-Byte Debugging auf Emulator.
  • Perl Skript-Entwicklung zum Konvertieren verschiedener Test-Logs in XML Test-Skripten sowie Entwickeln von Systemtests in XML.
  • Erstellung von Dokumentation für die Smartcard-Produktion.
  • Bug Tracking mit Clear Quest (Change Requests).
  • Trainings und Entwicklersupport für die neue Codebasis.
  • Analyse- und Design Dokumentation in Englisch.
Enterprise Architect UML Source Insight Eclipse Visual-Studio 2005 C++ Sun Javacard CAP Converter G&D Java ROM-Mask Generator Perl Sharp Develop 2.2 PC-lint Clear Case mit UCM Clear Quest.
Giesecke & Devrient
München
1 Jahr 3 Monate
2005-10 - 2006-12

Applikationsentwicklung für 3G-USIM Javacard

freiberuflicher Applikationsentwickler u. Berater
freiberuflicher Applikationsentwickler u. Berater

Die Code Entwicklung für Javacard erfolgte überwiegend unter Visual Studio und Eclipse per Simulation, VM Remote-Debugging zwischen C und Java mittels Eclipse und Visual Studio, Target Debugging auf Chip-Emulatoren, Team-Größe ca. 15 Personen:

  • Javacard Tools-Entwicklung für Test-Framework und Build-Prozess mit C++, Java JNI, Perl, DOS-Batch und XML-Skripts.
  • Entwicklung von USIM-Applikationen und System-Patches (Bug-Fixes, Performance-Tuning) in Java/C/Assembler für Kunden wie Nagravison Mobile-TV, Vodafone, O2, EPlus, etc..
  • Clear Quest Tracking von Bugs und Kunden-Requirements.
  • Codereviews, Coachen der Mitarbeiter bei schwierigen Softwarelösungen sowie Übernehmen schwieriger Fremdarbeitspakete.
  • Analyse- und Design-Dokumentation für Applikationen in Englisch.
Source Insight Borland JBuilder Visual-Studio 6.0 C++ Sun Javacard CAP Converter G&D Java ROM-Mask Generator Hitachi IDE + AE-4/AE-5 Emulatoren Infineon SLE88 Emulator Samsung Calm16 Emulator Perl Clear Case mit UCM Clear Quest.
Giesecke & Devrient
München
5 Jahre
2000-10 - 2005-09

2G-SIM/3G-USIM Javacard Betriebssystem für 16 u. 32 Bit MCU

freiberuflicher Senior Softwareentwickler u. Berater
freiberuflicher Senior Softwareentwickler u. Berater

Die Betriebssystementwicklung erfolgte überwiegend unter Visual Studio für C und JBuilder für Java per Simulation, JNI-Call Debugging per DLL-Attach mit Visual Studio. Team Größe 25 – 30 Personen, die Projektsprache war Englisch. Produktspezifikation nach ISO7816, ETSI, 3GPP, Javacard 2.x.x und Global Platform:

  • OOA/OOD von Java Komponenten in UML (Klassen-, Sequenz- und Aktivitätsdiagramme).
  • Implementierung eines Objekt basierten 3G File-Systems mit Memorymanagement und Cache-Layer für EEPROM Zugriffe, sowie entwickeln eines Link-File Standards für Vodafone.
  • Entwicklung einer generischen TLV-Parser API für Javacard, zum Parsen und Editieren von ISO 7816-4 formatierten TLV- Objekten und proprietären Formaten mit beliebiger Baumstruktur.
  • Implementierung neuer SIM-Toolkit Events für WIB 1.3.
  • Java nach C Portierung laufzeitkritischer Java Komponenten des Javacard Frameworks.
  • Entwicklung eines Dämons in C++ (MFC/STL) zur Anpassung der Priorität von Windows-Prozessen, um die schlechte Performance von Hitachi Tools unter Windows enorm zu verbessern.
  • C++ Entwicklung einer XML-Parser DLL zur Performancesteigerung eines C++ Interpreters, welcher XML Testskripten verarbeitet. Implementierung mit MSXML3.O COM-Objekt und C++ Smartpointer Templates.
  • Komponenten-Entwicklung in C++ und Java für einen Javacard PC- Simulator unter Verwendung der JNI-API für Java-Native Calls.
  • Entwicklung XML basierter System-Tests sowie C Unit-Tests.
  • EEPROM Betriebssystempatches in Assembler, C und Java zur Implementierung kundenspezifischer Anforderungen sowie Bug-Fixes.
  • Tätigkeiten als GSM-Javacard Coach im internationalen Team:
  • Präsentationen zur Einführung in die GSM und Javacard Technologien
  • Vermittlung von OOP Kenntnissen und der Javacard Programmierung
  • Schulungen für embedded Programmierung in Java/C/Assembler und Vermittlung sehr hardwarenaher Programmiertechniken (Call-Stack und Register Manipulationen, Codeanalysen) zur Erzeugung von Laufzeit und Footprint optimierten Code sowie effizienter Nutzung von EEPROM durch Cache-Speicher.
  • Beratung bei Analyse/Design, durchführen von Codereviews
Rational Rose u. Together UML Source Insight Symantec Visual Cafe Borland JBuilder Visual-Studio 6.0 C/C++ Sun Javacard CAP Converter G&D Java ROM-Mask Generator Hitachi IDE + AE-4/AE-5 Emulatoren Samsung Calm16 Emulator Perl MKS Source Integrity Rational Clear Case.
Giesecke & Devrient
München
8 Monate
2003-12 - 2004-07

C/C++ Entwicklung für Wettkampfpunktwertesystem

Softwareentwickler und Berater
Softwareentwickler und Berater

Prototypen-Entwicklung im 2 Personen Team eines Punktwertesystems mit Funkhandsender zur Punkteerfassung für den Taek-Won-Do Wettkampf, bestehend aus folgenden Komponenten:

  • MDI-Applikation in C++/MFC zum registrieren der Wettkämpfer und zum Erfassen der Punktwertung über das Funkterminal per RS232 IO.
  • Hardware- u. Software-Design für ein Funkterminal und die Funkhandsender für die Punkteerfassung. Interrupt gesteuerte Echtzeit Firmware in C, I/O-Treiber in Assembler.
Chipcon Mikrocontroller CC1010 mit Funk Transceiver ASCII LC- Display Keypad Treiber-ICs. MS Visual-Studio 6.0 C++ Source Insight Keil UVW1/2 IDE für 8051 Chipcon CC1010 Entwickler-Kit.
ETF Taek-Won-Do Sportverband
2 Jahre 2 Monate
1998-08 - 2000-09

Pilotprojekt für GSM-SIM Javacard Betriebssystem auf 8 Bit MCU

freiberuflicher Softwareentwickler u. Berater
freiberuflicher Softwareentwickler u. Berater

Implementierung des kompletten GSM-SIM Betriebssystems auf einer Java Smartcard in embededd Java und C, Produktspezifikation nach ISO7816, Javacard, GSM:

  • Erwerb einer Rational Rose OOA/OOD UML Zertifizierung
  • Erstellung von Analyse und Design mittels SA Analyse, in UML sowie als englische Dokumentation in MS-Word.
  • Implementierung eines PIN geschützten, hierarchischen Filesystems nach GSM 11.11.
  • Implementieren des Secured Data Layer Protokolls nach GSM 03.48 zum ent-/verschlüsseln und verifizieren von SMS-Paketen.
  • Implementierung des SIM-Toolkit Framework nach GSM 11.14/03.19 (TLV Parser, Filesystem API, Toolkit-API, Event-Dispatcher, Applet Registry, Applet Installer, Proactive Command Threads)
  • GSM Betriebssystemportierung von SLE44 auf SLE66 MCU sowie Codeoptimierung zur Steigerung der Performance.
  • Erweitern/Korrigieren der API Spezifikation nach GSM 03.19 in Zusammenarbeit mit ETSI.
  • Entwicklung von Unit-Tests für Betriebssystemkomponenten.
  • GSM Javacard Schulungen in Englisch für ein neues Entwicklerteam aus Spanien.
ProMod SA Analyse und Rational Rose UML Microsoft J++ Symantec Visual Cafe Keil UVW1/2 IDE für SLE44/SLE66 Sun Javacard CAP Converter MKS Source Integrity.
Giesecke & Devrient
München
5 Jahre 8 Monate
1992-12 - 1998-07

Hard- und Softwareentwicklung für Messtechnik

Abteilungsleiter, Entwickler und Kundenberater Interrupt gesteuerte Echtzeit Firmware in C und Assembler GAL Programmierung in ABEL-HDL. serielles Softtimerinterrupt gesteuertes Bitprotokoll zur Kokoll zur Kommunikation der MCU mit dem Ladekontroller ...
Abteilungsleiter, Entwickler und Kundenberater

Als Leiter der Abteilung Elektronik verrichtet ich folgende Arbeiten:

  • Softwareentwicklung für Mikrocontroller basierter Messtechnik Messtechnik in C und Assembler, für PC (DOS, Win 3.11) in C/C++ und SPS-Steuerungen.
  • Hardwareentwicklung von Mikrocontroller/DSP basierter Messtechnik, DMS-Messsignalverstärker, DC/DC Konverter, Akkuladesysteme, Ultraschall Sensorik etc. mit CAD Programmen. 
  • Projektplanung für Prüfanlagen und Messsysteme
  • Technische Beratung und Betreuung von Kunden im Hause und vor Ort im In- und Ausland
  • Schulung von Mitarbeiten und Kunden.

Nachfolgend ein Auszug von 3 Projektarbeiten, wobei die Hard- und Software, nach den Vorgaben durch die Geschäftsführung, von mir komplett designed und entwickelt wurde. Die Prototypen Fertigung, sowie das Testen erfolgten in Teamarbeit.

Projektarbeit1: Laserlichtschranken-Geschwindigkeitsmesssystem

 

Entwicklung der Hard- und Software für das Messsystem, welches über RS485 Bus zu mehreren Geräten mit einem Master-PC zur Meßdatenerfassung und Steuerung vernetzt wurde. MMI mit LC-Display und Folien-Tastatur. EEPROM für Parameter und Meßdaten, Realtime-Clock zur Messerwertdokumentation. GAL I/O Logik.

Projektarbeit2: Crashfestes und vernetzbares Hochleistungsakkusystem

Spezifizierung u. Entwicklung der Hard- und Software für das Akkusystem, welches der Versorgung einer crashfesten Messtechnik für automobile Crashversuche dient. Das Akkusystem kommuniziert mit der Messtechnik über CAN Bus.

DC/DC Konverter Entwicklung zur Spannungskonvertierung wie folgt:

  • Leistungs Buck-Konverter 24V => 12V/12A, 200kHz.
  • Boost-Konverter 12V => 30V/2A, 300kHz.

Projektarbeit3: SPS Ultraschall-Kollisionsschutzanlage

Spezifizierung u. Entwicklung einer SPS Ultraschall-Kollisionsschutzanlage, zur Hinderniserkennung bei Kommissionierfahrzeugen. Entwicklung einer Adapterelektronik zum SPS-Betrieb von Ultraschallsensoren des Typs Messring AE14 inklusive Sensorselbsttest durch die SPS. Entwicklung eines Geschwindigkeitsaufnehmers mit binärer SPS Schnittstelle.

80C32 MCU GAL 22V10 serieller IO-Treiber Realtime-Clock IC 4x16 ASCII LC-Display 32k EPROM serielles EEPROM. AT89C2051 MCU Ladekontroller Chip PCA82C200 CAN-Controller DC/DC Konverter-ICs selbst entwickelte HF Drosseln analoge Messverstärkerschaltungen. C/C++ Entwicklung einer GUI basierte Windows 3.11 Applikation zum Testen der seriellen Kommandoschnittstelle. Siemens SPS S95-U Analog und Digital ICs Ultraschallsensoren Typ Messring AE14.
Interrupt gesteuerte Echtzeit Firmware in C und Assembler GAL Programmierung in ABEL-HDL. serielles Softtimerinterrupt gesteuertes Bitprotokoll zur Kokoll zur Kommunikation der MCU mit dem Ladekontroller Treibersoftware in Assembler. Zyklisches Softwaretimer gestützte Firmware programmiert als AWL mit STEP5.
Messring Systembau GmbH
Gräfelfing

Aus- und Weiterbildung

Aus- und Weiterbildung

09/1990 - 07/1992                    

Vollzeitstudium (staatlich geprüften Techniker (Bachelor international))

GBS Technikum München
Schwerpunkt Nachrichtentechnik, Abschlussnote: 1,6

 

09/1981 - 04/1985                  

Ausbildung zum Energiegeräteelektroniker mit Anschlusspraktikum

Stadt München

 

09/1977 - 07/1981         

Carl von Linde - Realschule in München 

Abschluss: Mittlere Reife

Position

Position

  • Entwickler

Kompetenzen

Kompetenzen

Top-Skills

STM32 C/C++ Embedded Embedded Linux C# Raspberry-Pi Eclipse CDT ARM CAN, UART, SPI Embedded Java Shell Scripts TCP/IP MFC Keil uVision Python

Produkte / Standards / Erfahrungen / Methoden

Altium Designer
bash
Boost
Boost Asio
C/C++ (C14) Echtzeit Programmierung
cygwin
Doxygen
Eclipse CDT
Eclipse CDT/PyDev/Remote System/TFS
Eclipse CDT/PyDev/Remote System/TFS Source Control
Eclipse PyDev
Enterprise Architect
g++
gcc
gcc/g++ gcc-linaro-arm-linux-gnueabihf-4.8 Windows Cross-Compiler
gdb
Keil Simulator
Keil Tools
Keil UV5
Linux C++ Visual Studio 2017 für Raspberry Pi Remote-Compile
Linux Sysfs
Moritz for Doxygen
Oracle VirtualBox
Putty
Raspbian Jessie gcc/g++ arm-linux-gnueabihf-4.9.2 Windows Cross-Compiler
Schaltplan/Layout Hardwaredesign
Scrum.
SmartCardManager 5 mit Rhino Engine 1.7R4
ssh
ssh Remote-Commands
STL
svn
TFS Source Control
TFTP Boot-Server
Tortoise
Tortoise Svn
TotalView Debugger
U-Boot Shell
UNO
Valgrind
Visual Studio 2012
VMware Player
vnc
w3.org XML-Kryptographie
WinSCP
XML

Erfahrungen im Bereich:

  • Embedded Systemprogrammierung
  • PC Applikationsentwicklung (Konsole u. GUI)
  • C/C++, C#/VB .NET, Java, Linux POSIX API, XML, HTML.
  • Microsoft Standards
  • MFC, ActiveX Controls, .NET P-Invoke u. COM-Interop, Win 16/32 SDK
  • Buildkonfiguration
  • DOS-Batch, GNU make, Perl
  • Unit-Tests, Integration-Tests
  • Objektorientierte Analyse, Design und Programmierung
  • Versionsverwaltung
  • Base Clear Case u. UCM, MKS
  • Hardware-/ Softwareentwicklung für Meßtechnik
  • CPLD Programmierung in ABEL-HDL
  • SPS S5 Programmierung
  • Projektmanagement, Team-Coaching und Schulungen

 

Spezialkenntnisse:

  • JavaCard Spezifikationen V2.1.1, V2.2.1
  • 3GPP UICC und ETSI 2G SIM Spezifikationen:
  • GSM 11.11, 11.14, 03.19, 03.48.
  • 3GPP 23.048, 31.102, 31.111, 31.130, 43.019, 51.011, 51.014
  • ETSI TS 102.221, 102.222, 102.241.
  • Embedded Sicherheits-Systeme (JavaCard/Smartcards, ARM11 Trust-Zone)

Programmiererfahrung

  • Assembler: ARM7/11, 80x86, Renesas AE-4/AE-5, Samsung Calm16, 8051, XA-G3, AVR
  • C/C++: Embedded Systeme, Templateprogrammierung, Visual Studio 0 & 2005, MFC, ActiveX, UNO, STL, Windows 16/32 Bit (GUI & Konsole), Linux gcc/g++ (Konsole)
  • C# & VB: .NET 1/.2.0 für Windows und Linux (Mono), ActiveX/COM-Interop,
    P-Invoke,GUI&Konsole.
  • Java: Java Card, Java Applikationen , Java JNI-Programmierung, Bouncy-Castle PCE API,
    PCKS#11, smartcardio.
  • Sonstige: Python, JavaScript, Perl, Pascal, XML, HTML, PC-lint, ABEL-HDL (CPLD Programmierung)

Java SIM Smartcard Standards

  • SmartcardSicherheitundVerschlüsselungsstandards; Java Card2.2.1; GlobalPlatform2.2.1; ISO7816; ETSITS102.221,102.222,102.241; 3GPP23.048,31.102,31.111,31.130,43.019,51.011, 51.014; GSM11.11,11.14,11.17,03.19,03.40,03.48

Methoden

  • UML OOA/OOD
  • OOP
  • Coding Style Guidlines
  • Unit- und Integration-Tests

 

Mikrocontroller Hardware, Emulatoren u. Simulatoren

  • 8051-Derivate
  • CC1010
  • Atmel AVR
  • XA-G3
  • SLE44/66
  • Hitachi AE-4/AE-5
  • Samsung Calm16
  • ARM7/11

Buildkonfiguration

  • DOS-Batch
  • make
  • Perl

Software Versionsverwaltung

  • Base Clear Case
  • Clear Case UCM
  • Subversion (SVN)
  • MKS Source Integrity

SPS

  • Siemens S95-U (AWL Programmierung in Step5)

Hardwareentwicklung

  • Mikrocontrollersysteme
  • Messelektronik
  • DC/DC Wandler
  • Akkuladesysteme
  • Ultraschallsensorik
  • CPLDs

Personalmanagement

  • Projektleitung
  • Team-Coaching
  • Schulungen
  • Kundenberatung

Betriebssysteme

Cygwin
Unix-Emulation
Linux
MS-DOS
RTOS
Pistachio L4 Micro-Kernel, Keil RTX 51, Interrupt driven Embedded Systeme
SIM Java Smartcards
Windows
alle ab Win 3.11 - Win-XP

Programmiersprachen

.NET 2.0
C#, C++, Java
ABEL-HDL
GAL u- CPLD Programmierung
Angström Linux
Assembler
ARM7/11, 80x86, Renesas AE-4 & AE-5, Samsung Calm16, 8051, XA-G3, AVR
C
Embedded C, Win32 SDK, gcc
C# WPF
C++
Embedded C++, STL u. Boost Templates , MFC, g++
DOS Batch
GNU make
Java
JavaCard, Java JNI-Programmierung, Java Applets
JavaScript
Rhino JS Engine, Jasmine Test-Framework, Infineon SmartCardManager, Web-Applikationen
ksh
make
makefile
Pascal
MS Turbo
Perl
Python
Python 2.7/3.4 für Linux u. Windows, ctypes, Tkinter
Python 2.7
Python 3.4
Ruby
Shell-Script
UML
Visual C++

Datenbanken

PostgreSQL
Programmierung über C++ Interface
Proprietäre DB
.NET DB-Klassen wie DataSet, DataTable, DataView ...

Datenkommunikation

APDU Smartcard-Protokoll
CAN/CANopen
MIDI-Bus
RS232
RS485
SMS Secured-Protokoll nach 3GPP TS 43.048
TCP-IP/UDP-IP Sockets
uC-Schnittstellen
SPI, I2C etc.
USB Protokoll

Hardware

Altera Cyclone V SoC
Shiratech Spark100 SOM
Altera Cyclone V SoC Board
ARM Cortex 3
Digitale Signalprozessoren
Motorola 24 Bit fixedpoint DSP 56002.
Echtzeitsysteme
Emebedded Linux, Interrupt Driven Firmware
Embedded Systeme
Linux Boards, JavaCard/Smartcard (2G-GSM / 3G-UICC SIM), Messgeräte, Stromversorgungen
Emulatoren
Keil 8051, Hitachi AE4/AE5, Samsung Calm16, Infineon SLE88.
Hardwareentwicklung
Microcontroller Hardware mit PC-Interface und MMI, GAL Digitalschaltungen, Ultraschallmessgeräte, Geschwindigkeitsmessgeräte, Meßverstärker, MIDI-Controller, AD/DA-Konverter, DC/DC Power-Konverter, Akku-Lader, Funkmodem
HiTOP Emulator
Infineon C251
Linux GPIO
Messgeräte
Oszilloskope, Multimeter, Frequenzzähler, Signalgeneratoren.
Mikrocontroller
8051, Chipcon CC1010, Atmel AVR, Philips XA, Hitachi AE4/5 (H8/300H), Samsung Calm16, ARM7
PLD, FPGA
GALs, CPLDs.
Prüfadapter Hardwareentwicklung
Radarsensoren
Radarsensorik
Raspberry Pi 3
Sensoren
Silicon Radar Radarsensoren, Ultraschall, Hall, Kraftsensoren (DMS-Technik).
Siemens-SPS
S95-U.
UART/DMA Treiber
USB-UART

Berechnung / Simulation / Versuch / Validierung

PSpice
Simulation von analogen Filtern
Software-in-the-Loop Simulation (SIL)
JavaCard Simulatoren, Multi-Tasking-Kernel Simulator (Windows u. Linux)

Design / Entwicklung / Konstruktion

AutoCAD
EAGLE
WSCAD

Branchen

Branchen

  • IT Security
  • Messtechnikindustrie
  • Automotiv

Vertrauen Sie auf GULP

Im Bereich Freelancing
Im Bereich Arbeitnehmerüberlassung / Personalvermittlung

Fragen?

Rufen Sie uns an +49 89 500316-300 oder schreiben Sie uns:

Das GULP Freelancer-Portal

Direktester geht's nicht! Ganz einfach Freelancer finden und direkt Kontakt aufnehmen.