Skip to end of banner
Go to start of banner

2nd-Stage-Bootloader & Bootstrap [DE]

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Current »


Hintergrund

Grundsätzlich werden alle netX-basierten Feldbus-Geräte erst mit einer Firmware sowie einer Konfiguration in die Lage versetzt einen bestimmten Protokoll-Stack auszuführen. Diese müssen über die Host-Schnittstelle (PCI; PCIe; SPI etc.) heruntergeladen werden. So genannte "RAM-based Devices" (CifX-Karten) verfügen über keinen persistenten Speicher für Firmware und Konfiguration und werden daher bei jedem Gerätestart vom Treiber mit beidem versorgt. Sie werden in diesem Fall direkt auf dem RAM des Geräts geladen und unmittelbar ausgeführt. Ein Spannungsabfall hat den Verlust von Firmware und Konfiguration im RAM zur Folge und die Prozedur muss von vorne begonnen werden.

Ob RAM- oder Flash-basierte Devices, in beiden Fällen übernimmt normalerweise der Geräte-Treiber die Aufgabe die benötigen Dateien herunterzuladen. Zu diesem Zweck verfügt der Treiber über ein definiertes Grund-Verzeichnis das bei der Installation des Treibers angelegt wird:

  • Windows: C:\Program Files\cifX Device Driver
  • Linux: /opt/cifx/

Der Treiber nimmt die Firmware- (.nxf) sowie Konfigurations- (.nxd) Datei aus diesem Verzeichnis um sie auf das Gerät zu laden. Bei Flash-basierten Geräten findet ein Download nur statt, wenn eine Differenz zwischen den Software-Ständen festgestellt wird.

2nd-Stage-Bootloader

Befindet sich ein Gerät im Auslieferungszustand, stellt dieses ein vereinfachtes DPM-Interface zur Verfügung (vgl. folgende Abbildung). Die Größe des DPM ist auf 64KByte (16KByte / 8KByte) begrenzt und ermöglicht so keinen Download einer Firmware-Datei. Daher muss das Gerät zunächst mit einem so genannten 2nd-Stage-Bootload versorgt werden.



Der 2nd-Stage-Bootloader kann in Form einer Datei an das Gerät übertragen werden. Die verschiedenen Dateien, für verschiedene Gerätetypen, befinden sich im oben genannten Grundverzeichnis des Treibers. Die 2nd-Stage-Bootloader verbergen sich in den NETX***-BSL.BIN-Dateien. Beispielsweise wird für eine CifX-Karte die NETX100-BSL.BIN-Datei benötigt.

Firmware download

Wurde der 2nd-Stage-Bootloader erfolgreich hochgeladen und gestartet wird der DPM neu organisiert und eine vereinfachte System-Mailbox bereitgestellt, vergleichbar mit der bekannten Channel-Mailbox. Die Mailbox ermöglicht nun das segmentierte Übertragen größerer Dateien wie der Firmware-Datei.



Grundsätzlich besteht auch die Möglichkeit sich dieses Vorgehen im cifX/netX-Toolkit in Form von Quellcode anzusehen. Im Toolkit sind die Methoden der Treiber implementiert. Dies dient dem Kunden dazu eigene Treiber, ggf. für nicht unterstützte Betriebssysteme oder Plattformen, zu implementieren. Konkret ist hier die cifXInit.c interessant. Die Datei beinhaltet die cifXStartBootloader_hboot(…)-Funktion. Sie implementiert das oben geschilderte Vorgehen.

cifX/netX-Tookit: https://kb.hilscher.com/pages/viewpage.action?pageId=22808198


File Handling

Innerhalb des Basis-Verzeichnisses (siehe oben) wird für jedes Gerät das im PC installiert ist ein Ordner nach folgendem Schema angelegt.

Hinweis: Für die normale Feldbus-Kommunikation wird grundsätzlich Channel0 verwendet. Channel1 kann für einen Multi-Channel Betrieb oder Spezial-Anwendungen herangezogen werden. Erstere erfordert ein Endgerät mit entsprechender Hardware-Ausstattung.

Durch das Ersetzen der Dateien lassen sich die Firmware bzw. die Konfiguration austauschen. Beim Austauschen ist unbedingt darauf zu achten, dass die Konfiguration zur Firmware passt. Außerdem muss die Konfigurations-Datei grundsätzlich „config.nxd“ benannt werden.

Nach dem Austausch einer Datei ist ein Neustart der Karte erforderlich. Dies kann über die xSysdeviceReset()-Funktion der Cifx-API durchgeführt werden.




  • No labels