AURIX Tools

HighTec Development Plattform

Die HighTec Development Platform enthält leistungsfähige Assistenten und unterstützt die neuesten Derivate wie die neuen TriCore-Multicore-Architekturen. Sie verwaltet die Projekteinstellungen und den gesamten Build-Prozess für Compiler, Assembler und Linker und darüber hinaus die Initialisierungseinstellungen der Hardware. Die Entwicklungsplattform umfasst:

  • Projektverwaltung
  • Setup-Assistenten
  • Versionskontrolle
  • Modellgesteuerte grafische Speicherlayout-Konfiguration

Die Eclipse™-basierte Entwicklungsplattform ermöglicht die einfache Definition von Projekten. Nach der Auswahl eines bestimmten Mikrocontroller-Derivats kann die Generierung eines Projekts mit korrektem Startup-Code, der notwendigen Hardware-Initialisierung, einem gültigen und geeigneten Speicherlayout und Header-Dateien, die die eigentliche Hardware-Konfiguration, z.B. spezielle Funktionsregister, beschreiben, praktisch auf Knopfdruck veranlasst werden. Das Projekt enthält eine einfache Hauptfunktion, mit der die Implementierung sofort gestartet werden kann. Das Speicherlayout kann mit Hilfe der modellgesteuerten GUI in Eclipse™ leicht angepasst werden. Diese Konfiguration wird gegen das abgeleitete Speicherlayout verifiziert und unterstützt den Kunden bei der Platzierung von Code und Daten in den entsprechenden Bereichen des Speichers.

Komponenten

  • HighTecs C/C++ Multi-Architektur und Multi-Core Compiler Suite mit führender Optimierungstechnologie
  • Unterrstützung von architekturspezifischen Funktionsblöcken wie GTM/MCS und HSM-Modul
  • Eclipse IDE mit erweiterten Projekteinstellungen und grafischen

Merkmale

  • Multi-Core-Unterstützung (ISO- und EABI-konform)
  • Langfristiger Support- und Wartungsservice
  • Neueste Optimierungsstrategien
  • Code-Verdichtung (Reverse Inlining)
  • Globale Optimierungsstrategien
  • Modulbasierte Gruppierung von Daten zur Minimierung der Lastadressenoperation
  • Optionen pro Datei und Quellcodefragmenten
  • Optimiert für Auto-Coding
  • Kommerzielle Standard- und Mathematikbibliotheken (kein Open Source)
  • AUTOSAR MCAL-Treiber-Unterstützung

Die HighTec Entwicklungsplattform wird von führenden Tier1 und OEM eingesetzt.

highTec Development Platform

Advanced Multi-Core

Die Compiler-Suite von HighTec unterstützt sowohl homogene als auch heterogene Multicore-Architekturen. Die Lösung von HighTec integriert Multicore-Unterstützung auf Linker-Ebene und macht eine Anpassung des Quellcodes überflüssig. Diese ISO- und EABI-konforme Multicore-Unterstützung erleichtert die Portierung vorhandener Single-Core-basierter Quellcodes auf ein Multicore-System. Der Benutzer kann auf Linker-Ebene einfach ausführbaren Code oder Daten dem entsprechenden Kern zuweisen.

Der Datenaustausch zwischen verschiedenen Kernen erfolgt über das Hide-and-Visibility-Konzept, das benutzerdefinierte Schnittstellen zwischen den Kernen auf Linker-Ebene spezifiziert. Daten und Code müssen explizit angegeben werden, um für andere Kerne als den, zu dem sie gehören, sichtbar zu sein. Alle Daten oder Codes, die von den Kernen gemeinsam genutzt werden, werden in einer separaten Ausgabedatei aufgeführt und können zur Analyse der Querverweise zwischen den Kernen verwendet werden. Die Hide-and-Seek-Funktion impliziert eine Reduzierung der Komplexität in verteilten Systemen, was zu einem geringeren Debugging-Aufwand und einer verbesserten Wartbarkeit des Softwaresystems als Ganzes führt. Darüber hinaus wird die Ausführung unabhängiger Anwendungen auf jedem Kern unterstützt, da die Trennung von Code und Daten gewährleistet ist, sofern der Benutzer nichts anderes vorgibt. Ein Kern kann auf seine lokalen Ressourcen zugreifen, z.B. RAM, über einen lokalen Adressraum. Darüber hinaus werden diese Ressourcen in einen globalen Adressraum abgebildet, sodass die anderen Kerne auf sie zugreifen können. Auf den Speicher kann somit über unterschiedliche Adressen zugegriffen werden, je nachdem, ob der lokale Adressraum oder der globale Adressraum verwendet wird. Dies gilt auch für verschiedene Kernarchitekturen wie das GTM/MCS-Modul. Der HighTec TriCore-Linker übernimmt automatisch die Neuzuordnung von Speichern auch für heterogene Multicores. Der Linker ist in der Lage, Objektdateien für verschiedene Kernarchitekturen zu verknüpfen und eine resultierende Ausgabe-Elf-Datei zu generieren.

HighTec-Tools unterstützen auch verschiedene Core-Architekturen wie GTM/MCS (Timer-Modul) und HSM-Sicherheitsmodul. Die Binärdateien von TriCore, GTM und HSM können in einer ELF-Datei verknüpft und „en bloc“ auf das Zielsystem hochgeladen werden. Effiziente Adressierungsmodi, wie z. B. der kleine Adressierungsmodus, können für jeden Kern separat verwendet werden. Die entsprechenden Adressregister jedes Kerns müssen im Startcode initialisiert werden. Der Linker initialisiert automatisch das erforderliche Basisregister für die kleinen adressierbaren Bereiche jedes Kerns.

In Summe:

  • Hide-and-Visibility-Konzept – Schnittstellen zwischen den Cores auf Linker-Ebene
  • Die proprietäre Lösung für die Migration auf Multicore
  • Anwendungscode kann ohne Änderung des Quellcodes auf Multicore portiert werden
  • Bewährte Software kann problemlos auf Multi-Core-Silizium migriert werden
  • Basierend auf Linker-Ebene (ISO- und EABI-konform) – eine proprietäre Lösung für die Migration auf Multicore
  • Core-ID-Informationen, die als Metainformationen auf Abschnitten und in Objekten gespeichert sind; Einfaches Extrahieren von Informationen durch Analyse der Symboltabelle
  • Unterstützung homogener und heterogener Multi-Core-Architekturen

Unterstützte Architekturen mit besonderen Funktionen

TriCore

  • TriCore- und AURIX-Unterstützung
  • PCP-C-, HSM- und GTM/MCS-Compiler
  • SIMD- und FPU-Unterstützung
  • Adressierungsmodi: absolut, relative register, circular
  • Positionsunabhängiger Code (PIC) und Daten (PID)

Power Architecture

  • Freescale – Qorivva MPC55xx, MPC56xx, MPC57xx
  • STMicroelectronics SPC56x, SPC57x
  • VLE-, SPE- und LSP-Unterstützung
  • Small Data Pointer-Funktionalität: ca. 20 % Code- und Laufzeitverbesserung
  • SIMD- und FPU-Unterstützung
  • GTM/MCS-Unterstützung
  • Positionsunabhängiger Code (PIC) und Daten (PID)

RH850

  • Hochgeschwindigkeits-Gleitkommaeinheit (FPU)
  • Interprozedurale Optimierungen
  • Modelle mit mehreren Speicher: Normale Daten, kleine Daten, Nulldaten und winzige Daten

ARM

  • Thumb2-Befehlssatz
  • VFP-Unterstützung
  • Cortex M3/M4-Unterstützung