Bild 7 zeigt im Detail die einzelnen nutzbaren Elemente des Synergy-Software-Frameworks. Das Software-API wurde in C entwickelt und stellt Funktionsaufrufe für X-Ware, Stacks, Application-Framework, Bibliotheken, CMSIS-DSP-Library von ARM, Device-Treiber und Board-Suuport-Package bereit.
Das Echtzeitbetriebssystem ThreadX zeichnet sich durch wenig Speicherbedarf und vergleichsweise sehr hohe Ausführungsgeschwindigkeit aus. Neben dem Scheduler stellt es Funktionen für das Thread-Management, nachrichtenbasierte Kommunikation und Speichermanagement bereit.
Die Low-Level-Treiber (HAL, Hardware Abstraction Layer) decken wie schon erwähnt derzeit rund 85-90 % aller Peripherie-Funktionen ab. Da sie im Source-Code zur Verfügung stehen, können sie als Basis für eigene kundenspeuifische Erweiterungen oder gar ganz eigene Treiber hergenommen werden.
Das Application-Framework stellt auf System-Ebene Services für die Verbindung vom RTOS zu den HAL-Treibern zur Verfügung. Diese betreffen z.B. Nachrichtenaustausch zwischen Prozessen, Security-Services, Audio-Wiedergabe, serielle Kommunikation, Power-Management, JPEG-Konvertierung und Touch-Eingaben.
Stacks und Middleware beinhalten von Renesas und X-Ware entwickelte Software für TCP/IP, USB, Farbgrafiken und Dateisystem. Die Routinen sind vollständig integriert und aufeinander abgestimmt.
Software-Bibliotheken werden z.B. für Security- und Verschlüsselungsfunktionen angeboten, dazu gibt es von ARM die CMSIS-DSP-Bibliothek. Die Board-Support-Packages gibt es individuell abgestimmt für jedes Hardware-Kit und jede MCU.
Neben dem Framework stellt Renesas eine integrierte, Eclipse-basierende Entwicklungsumgebung e2-Studio zur Verfügung, die mit C-Compilern von GNU und IAR (leider nicht von Keil) erhältlich ist. Dazu gibt es von Express Logic das Windows-basierte Protoyping-Tool GUIX-Studio für die Entwicklung von Benutzerschnittstellen und das grafische Echtzeit-Analysetool TraceX. Neben den üblichen kostengünstigen Entwicklungs- und Starterkits für alle MCU-Familien bietet Renesas auch Produkt-Beispiel-Kits an, die jedes für sich ein kommerzielles Produkt hard- und softwaremäßig abbilden. Der Kunde braucht diese konkreten Beispiele für seine Endprodukte im besten Fall "nur noch" zu modifizieren. Beispiele sind z.B. das PE-HMI1 für HMI, PE-DAQ1 für Data Acquisition und PE-SNS1 für Smart Sensor Networks.
Die Entwicklungskits (DK) und Starterkits (SK) heissen DK-S7G2 und SK-S7G2 für die S7-Familie, DK-S3A7 für den S3 und DK-S124 für den S1.
Öffentlicher und geschützter Source-Code
Wenn ein Hersteller in Datenblättern niedergelegte Garantie für Software herausgibt, muß er natürlich Schutzmaßnahmen gegen Herumpfuschen in diesem Code sicherstellen. Auf der anderen Seite muss dieser z.B. für Debuggingzwecke im Source sichtbar sein.
Bild 8 zeigt, dass Renesas mit Ausnahme der HAL-Treiber und des BSPs seine Software als sogenannten "Protected Code" angelegt hat. Dieser ist verschlüsselt und kann nicht editiert, abgespeichert oder ausgedruckt werden - abgesehen von garatiererechtlichen Fragen würde sich vermutlich auch die Konkurrenz sehr freuen, Renesas 2-Jahres-Arbeit als Grundlage eigener Aktivitäten herzunehmen.
Allerdings kann man mit einer speziellen Firmenlizenz auch die Source-Dateien im Klartext erwerben, anzunehmen ist, dass Renesas diese Lizenz nicht an ST Microelectronics, Freecale oder NXP verkaufen wird.
Über einen speziellen Viewer in der Entwicklungsumgebung e2-Studio wird der verschlüsselte Source-Code allerdings auch für jedermann während der Entwicklung und während des Debuggings beim Tracen im Klartext sichtbar dargestellt.
Device-Treiber und BSP sind in unverschlüsselten Source-Code-Dateien vorhanden und können editiert, gespeichert und gedruckt werden. Diese werden von Renesas als "Clear Files" bezeichnet. Auf Grund der Hardwarenähe sind sie für die Konkurrenz ja auch wertlos, für den Kunden können sie dagegen als wertvolle Grundlage für eigene Erweiterungen dienen. In diesem Fall übernimmt natürlich der Kunde auch die Verantwortung für die Funktion der Software.