Teste semf
Kontakt
?>

Der Embedded C++ Baukasten

Mit der semf Middleware Library stehen Ihnen viele nützliche Module und Schnittstellen für Ihre Embedded Projekte zur Verfügung. Durch die Plattformunabhängigkeit aller Komponenten kann Sourcecode einfach wiederverwendet werden und Projekte können mühelos auf eine neue Hardware portiert werden.
Freuen Sie sich auf der Applikationsseite auf einfach verständliche Interfaces und viel schon erledigte Arbeit durch semf.
Wir wissen sehr gut, dass standardisierte Komponenten für den ein oder anderen Spezialfall nicht 100%ig passen –
aus diesem Grund sind alle Komponenten so aufgebaut, dass sie mühelos umkonfiguriert oder angepasst werden können.

Die Komponenten

Die größte Herausforderung der modernen Embedded Software Entwicklung ist es, komplexe Applikationen in einfach anwendbare und wartbare Module herunterzubrechen.
Die semf Library unterstützt Entwickler mit einfach verständlichen und robusten Softwaremodulen – passend für fast jeden Mikrocontroller. Die hohe Qualität der Module hilft Technologiefirmen schneller zu entwickeln und erspart Entwicklern gleichzeitig Frustration beim Debuggen.
Steigern auch Sie Ihre Entwicklungseffizienz und werden Sie Teil der Leading Edge Embedded C++ Community.

Core Komponenten C++ Embedded Library

Core

Die Kernkomponenten sind zentraler Bestandteil der Library und auch vieler semf Komponenten selbst. Selbstverständlich maximal Performance-optimiert.

Signal Slot

LinkedList

LinkedQueue

Array

Buffer

Debug

Error

Tutorials ansehen

Datenlogger Firmware Packer Daten Embedded Systems

Bootloader

Failsave und sicheres Firmware-Update-Verfahren – Out of the Box. Mit wenigen Zeilen Code ist die gewünschte Verschlüsselung konfiguriert und das passende Zertifikat eingestellt.

Firmware Packer

Firmware Updater

Bootloader

Tutorials ansehen

Communication Komponenten I2c Spi StreamProtocol C++ Library

Communication

Die Kommunikationsmodule reichen von Spi, I2c, Can und Uart über USB bis hin zu Ethernet und bieten applikationsseitig ein standardisiertes Interface. Damit sind z. B. Stacks in Windeseile getauscht.

StreamProtocol

I2cScanner

SoftI2cMaster

I2cSlaveDevice

I2cSlaveRegisterDevice

SpiSlaveDevice

SpiSlaveRegisterDevice

Tutorials ansehen

Storage Logger Eeprom Flash C++

Storage

Für eine schnelle und fehlersichere Programmierung werden alle gängigen Speichertechnologien unterstützt. Darüber hinausgehend ist ein ausgefeilter Logger-Mechanismus und eine EEPROM-Virtualisierung vorhanden.

Logger

EepromEmulation

FlashVerifier

FlashTester

I2cEeprom

SpiNorFlash

Tutorials ansehen

Processing Komponenten DataStream Pidcontroller C++ Library

Processing

Processing beinhaltet verschiedene Komponenten und Algorithmen, die bei der Verarbeitung von Daten unterstützen. Vom DataStream, der Daten korrekt zwischen Little- und Big-Endian umrechnet, bis zum LinearInterpolator, der effizient in bis zu dreidimensionalen Datenquellen interpolieren kann.

Average

Endian

CrcSoftware

DataStream

DivideWithRound

LinearInterpolator

PidController

Tutorials ansehen

System komponenten C++ Middleware Library

System

Hier finden Sie alles rund um die Zeit, von einer Zeitbasis über SoftwareTimer bis hin zur Systemzeit und Zeitstempeln.

SoftwareTimer

TimeBase

SystemClock

DateTime

Date

Time

Tutorials ansehen

Output Digitalout Led Pwm Ausgang C++

Input

Die Logik der Module für Inputs reicht von Interrupt-getriebenen Eingängen und einer Frequenzmessung über entprellte Eingänge bis hin zu einem Sensormodul.

FrequencyIn

Sensor

DigitalIn

DigitalInInt

DigitalInPolling

DebouncedDigitalIn
Polling

Tutorials ansehen

Output Komponenten Digitalout Led PWM C++ Library

Output

Im Bereich der Outputs ist das schönste Modul LedDimming; basierend auf einem PWM-Ausgang, können Leds unter anderem Plug & Play, Wabern und Faden.

DigitalOut

LedBlinking

LedDimming

SoftPwm

PwmOut

Tutorials ansehen

Hardware-Abstraktion

Hardware-Abstrahierungen

Für die performante Abstraktion der Hardware bietet die semf Library eine Vielzahl an Interfaces, die bei uns für jede Mikrocontrollerfamilie implementiert und intensiv getestet wird.

  • Input
    AnalogIn, AnalogInDma, InputCapture, ExternalInterrupt
  • Output
    AnalogOut, AnalogOutDma, Pwm, OutputCompare
  • Communication
    I2cMasterHardware, I2cSlaveHardware, SpiMasterHardware, SpiSlaveHardware, UsbHostHardware, UsbSlaveHardware, UsbOtgHardware
    Ethernet, UartHardware, CanHardware
  • Processing
    CrcHardware
  • System
    Power, CriticalSection, Flash, Gpio, Rtc, Timer

Tutorials ansehen

Plug & Play Implementierungen

Für folgende Mikrocontrollerfamilien kann die semf Library sofort genutzt werden:

  • STMicroelectronics
    STM32F4, STM32F7, STM32H7, STM32F0, STM32F1, STM32F3, STM32G4, STM32L0, STM32L4
  • Espressif
    ESP32-S2, ESP32-C3
  • Hilscher
    NETX 90
  • NXP (in progress)
    LPC1100, LPC1300, LPC1700, LPC1800, LPC54, LPC55, K32 L2, K32L3
  • Giga Devices (in progress)
    GD32F1, GD32F2, GD32F3, GD32F4, GD32VF1

Implementierungsservice

Mit unserem Hardware-Abstraktions-Implementierungsservice stellen wir Ihnen innerhalb von kurzer Zeit die passende Hardware-Abstrahierung für fast alle Mikrocontrollerfamilien zur Verfügung.

  • Spechen Sie uns gerne darauf an.

Beispiel Signal Slot

Die Signale in semf sind ein sehr einfacher und flexibler Weg Callbackfunktionen zu nutzen.

Ein Signal kann man sich vorstellen wie eine Nachricht, die unter einer bestimmten Bedingung abgesendet wird. Der Slot, also der Empfänger, ist eine einfache Funktion oder Memberfunktion, welche mit einem Signal verbunden wird. Nachdem ein Slot mit einem Signal verbunden wurde, wird nach Absenden der Nachricht der Slot aufgerufen. Dabei können ihm Variablen übergeben werden oder es können auch mehrere Slots nacheinander dieselbe Nachricht erhalten.

Erfahren Sie mehr über die einzelnen Komponenten in unseren Tutorials. Alle Tutorials finden Sie auf der Seite Dokumentation.

void slot1()
{
	printf("slot1() was called\n");
}

int main()
{
	Signal<> signal;
	signal.connect(&slot1);
	signal();

	while(1) {;}
}

Output:

slot1() was called

Mit Ihrer Lizenz können Sie sämtliche Komponenten aus den zurzeit acht Kategorien für beliebig viele CPUs und Produkte nutzen. Und natürlich arbeiten wir daran, dass die Bibliothek weiter wächst. Neue Tools, Programmierhilfen und Frameworks werden ständig in die Library integriert, denn wir wollen, dass Sie semf dauerhaft als Ihr tägliches Arbeitsinstrumentarium für die Embedded Software Entwicklung nutzen.
Damit Sie die semf Library schon kurzfristig einsetzen und so den maximalen Nutzwert erzielen können, ist in der Lizenzgebühr eine umfangreiche, qualifizierte und persönliche Einführung inklusive. Das semf Onboarding beinhaltet die Einrichtung der Library sowie eine Schulung zu deren Nutzung.

Hier gelangen Sie zu den Konditionen

Entwicklersupport

Unsere Garantie:
Die Einführung von semf wird persönlich und von erfahrenen Embedded Entwicklern durchgeführt.