Microsemi-LOGO

Microsemi DG0669 SmartFusion2 Code Shadowing von SPI-Flash zu LPDDR-Speicher

Microsemi-DG0669-SmartFusion2-Code-Shadowing-von-SPI-Flash-zu-LPDDR-Speicher-PRODUKT

Produktinformationen

Das SmartFusion2 SoC FPGA ist eine leistungsstarke, stromsparende FPGA-Lösung, die einen ARM Cortex-M3-Prozessor, programmierbare analoge und digitale Ressourcen sowie Hochgeschwindigkeits-Kommunikationsschnittstellen auf einem einzigen Chip integriert. Die Software Libero SoC v11.7 ist eine komplette Designsuite für das Design mit Microsemi FPGAs.

Produktverwendung

Um das SmartFusion2 SoC FPGA mit Code-Shadowing vom SPI-Flash zum LPDDR-Speicher zu verwenden, befolgen Sie die unten aufgeführten Schritte:

Vorwort

Zweck
Diese Demo ist für SmartFusion®2 System-on-Chip (SoC) Field Programmable Gate Array (FPGA)-Geräte. Sie enthält Anweisungen zur Verwendung des entsprechenden Referenzdesigns.

Zielgruppe

Diese Demo-Anleitung ist gedacht für:

  • FPGA-Designer
  • Eingebettete Designer
  • Designer auf Systemebene

Verweise
Siehe folgende web Seite für eine vollständige und aktuelle Liste der SmartFusion2-Gerätedokumentation: http://www.microsemi.com/products/fpga-soc/soc-fpga/sf2docs
Auf die folgenden Dokumente wird in diesem Demo-Leitfaden verwiesen.

  • UG0331: SmartFusion2 Mikrocontroller-Subsystem – Benutzerhandbuch
  • SmartFusion2 System Builder-Benutzerhandbuch

SmartFusion2 SoC FPGA – Code Shadowing von SPI Flash zu LPDDR-Speicher

Einführung
Dieses Demodesign zeigt die Möglichkeiten des SmartFusion2 SoC FPGA-Geräts zum Code-Shadowing vom Flash-Speichergerät mit serieller Peripherieschnittstelle (SPI) zum synchronen dynamischen Direktzugriffsspeicher (SDRAM) mit niedriger Leistungsaufnahme und doppelter Datenrate (LPDDR) und zum Ausführen des Codes vom LPDDR-SDRAM. Abbildung 1 zeigt das Blockdiagramm der obersten Ebene zum Code-Shadowing vom SPI-Flash-Gerät zum LPDDR-Speicher.

Abbildung 1: Blockdiagramm der obersten Ebene der Demo

Microsemi-DG0669-SmartFusion2-Code-Shadowing-von-SPI-Flash-zu-LPDDR-Speicher-ABB. 1

Code Shadowing ist eine Boot-Methode, die verwendet wird, um ein Image aus externen, schnelleren und flüchtigen Speichern (DRAM) auszuführen. Dabei wird der Code zur Ausführung vom nichtflüchtigen Speicher in den flüchtigen Speicher kopiert. Code Shadowing ist erforderlich, wenn der nichtflüchtige Speicher, der einem Prozessor zugeordnet ist, keinen Direktzugriff auf den Code zur Ausführung an Ort und Stelle unterstützt oder nicht genügend nichtflüchtiger Direktzugriffsspeicher vorhanden ist. Bei leistungskritischen Anwendungen kann die Ausführungsgeschwindigkeit durch Code Shadowing verbessert werden, wobei der Code zur schnelleren Ausführung in RAM mit höherem Durchsatz kopiert wird. Single Data Rate (SDR)/DDR SDRAM-Speicher werden in Anwendungen verwendet, die ein großes ausführbares Anwendungsimage haben und eine höhere Leistung erfordern. Normalerweise werden die großen ausführbaren Images in nichtflüchtigem Speicher wie NAND-Flash oder SPI-Flash gespeichert und beim Einschalten zur Ausführung in flüchtigen Speicher wie SDR/DDR SDRAM-Speicher kopiert. SmartFusion2-Geräte integrieren eine Flash-basierte FPGA-Struktur der vierten Generation, einen ARM® Cortex®-M3-Prozessor und leistungsstarke Kommunikationsschnittstellen auf einem einzigen Chip. Die Hochgeschwindigkeitsspeichercontroller in den SmartFusion2-Geräten dienen zur Verbindung mit den externen DDR2/DDR3/LPDDR-Speichern. Der LPDDR-Speicher kann mit einer maximalen Geschwindigkeit von 166 MHz betrieben werden. Der Cortex-M3-Prozessor kann die Anweisungen vom externen DDR-Speicher direkt über das Mikrocontroller-Subsystem (MSS) DDR (MDDR) ausführen. Der FPGA-Cache-Controller und die MSS-DDR-Brücke handhaben den Datenfluss für eine bessere Leistung.

Designanforderungen
Stellen Sie sicher, dass Sie die folgenden Hardware- und Softwareanforderungen erfüllen:

Hardware- und Softwareanforderungen

Tabelle 1 Designanforderungen

Designanforderungen Beschreibung
Hardwareanforderungen
SmartFusion2 Sicherheits-Evaluierungskit:

• 12 V Adapter

• FlashPro4

• USB A auf Mini – B USB-Kabel

Rev. D oder später
Host-PC oder Laptop Windows XP SP2-Betriebssystem – 32-/64-Bit Windows 7-Betriebssystem – 32-/64-Bit
Softwareanforderungen
Libero® System-on-Chip (SoC) Version 11.7
FlashPro-Programmiersoftware Version 11.7
SoftConsole Version 3.4 SP1*
Host-PC-Treiber USB-zu-UART-Treiber
Framework zum Starten der Demo-GUI Microsoft .NET Framework 4-Client zum Starten der Demo-GUI
Notiz: *Für diese Demoanleitung wird SoftConsole v3.4 SP1 verwendet. Informationen zur Verwendung von SoftConsole v4.0 finden Sie im TU0546: Tutorial zu SoftConsole v4.0 und Libero SoC v11.7.
  • SmartFusion2-Entwicklungskit
  • Libero SoC v11.7 Software
  • USB Blaster- oder USB Blaster II-Kabel

Demo-Design
Das Demo-Design nutzt ein Multi-stage Boot-Prozess-Methode oder eine Hardware-Boot-Engine-Methode, um das Anwendungsimage vom SPI-Flash in den LPDDR-Speicher zu laden. Befolgen Sie die folgenden Schritte:Das Design files stehen unter folgendem Pfad in der Microsemi zum Download bereit webWebsite: http://soc.microsemi.com/download/rsc/?f=m2s_dg0669_liberov11p7_df

Design fileDazu gehören:
Das Demo-Design fileDazu gehören:

  • Sample application Bilder
  • Programmierung files
  • Libero
  • GUI ausführbar
  • Linker-Skripte
  • DDR-Konfiguration files
  • Liesmich.txt file

SmartFusion2 SoC FPGA – Code Shadowing vom SPI-Flash zum LPDDR-Speicher Abbildung 2 zeigt die Struktur der obersten Ebene des Designs files. Weitere Einzelheiten finden Sie in der Readme.txt file.

Abbildung 2 Design Files Top-Level-Struktur

Microsemi-DG0669-SmartFusion2-Code-Shadowing-von-SPI-Flash-zu-LPDDR-Speicher-ABB. 2

Demo-Design-Beschreibung

Dieses Demodesign implementiert eine Code-Shadowing-Technik, um das Anwendungsimage aus dem DDR-Speicher zu booten. Dieses Design bietet außerdem eine Host-Schnittstelle über den SmartFusion2 SoC FPGA Multi-Mode Universal Asynchronous/Synchronous Receiver/Transmitter (MMUART), um das ausführbare Image der Zielanwendung in SPI-Flash zu laden, der mit der MSS SPI0-Schnittstelle verbunden ist.
Das Code-Shadowing wird mit den folgenden zwei Methoden implementiert:

  • Multi-stage Bootvorgangsmethode mit dem Cortex-M3-Prozessor
  • Hardware-Boot-Engine-Methode unter Verwendung des FPGA-Fabric.

Multi-Stage Bootvorgangsmethode

  1. Erstellen Sie mit der Libero SoC-Software ein Anwendungsimage für den DDR-Speicher.
  2. Laden Sie den SPI-Flash-Loader mit der Libero-SoC-Software in den SPI-Flash.
  3. Führen Sie die Code Shadowing Demo-GUI aus, um das FPGA zu programmieren und das Anwendungsimage vom SPI-Flash in den LPDDR-Speicher zu laden.

Das Anwendungsimage wird in den folgenden zwei Boot-Sessions aus externen DDR-Speichern ausgeführt.tages:

  • Der Cortex-M3-Prozessor bootet den Soft-Bootloader vom eingebetteten nichtflüchtigen Speicher (eNVM), der die Code-Image-Übertragung vom SPI-Flash-Gerät zum DDR-Speicher durchführt.
  • Der Cortex-M3-Prozessor bootet das Anwendungsimage aus dem DDR-Speicher.

Dieses Design implementiert ein Bootloader-Programm, um das ausführbare Image der Zielanwendung vom SPI-Flash-Gerät in den DDR-Speicher zur Ausführung zu laden. Das von eNVM ausgeführte Bootloader-Programm springt zur im DDR-Speicher gespeicherten Zielanwendung, nachdem das Image der Zielanwendung in den DDR-Speicher kopiert wurde.

Abbildung 3 Code Shadowing Multi-Stage Boot-Prozess-Demo-Blockdiagramm

Microsemi-DG0669-SmartFusion2-Code-Shadowing-von-SPI-Flash-zu-LPDDR-Speicher-ABB. 3

Der MDDR ist für den Betrieb von LPDDR mit 166 MHz konfiguriert. „Anhang: LPDDR-Konfigurationen“ auf Seite 22 zeigt die LPDDR-Konfigurationseinstellungen. Der DDR wird vor der Ausführung des Hauptanwendungscodes konfiguriert.

Bootloader

Der Bootloader führt die folgenden Vorgänge aus:

  1. Kopieren des Zielanwendungsimages vom SPI-Flash-Speicher in den DDR-Speicher.
  2. Neuzuordnung der Startadresse des DDR-Speichers von 0xA0000000 auf 0x00000000 durch Konfigurieren des Systemregisters DDR_CR.
  3. Initialisierung des Cortex-M3-Prozessor-Stackpointers gemäß der Zielanwendung. Der erste Speicherort der Vektortabelle der Zielanwendung enthält den Stackpointer-Wert. Die Vektortabelle der Zielanwendung ist ab der Adresse 0x00000000 verfügbar.
  4. Laden des Programmzählers (PC) zum Zurücksetzen des Handlers der Zielanwendung zum Ausführen des Zielanwendungsabbilds aus dem DDR-Speicher. Der Reset-Handler der Zielanwendung ist in der Vektortabelle unter der Adresse 0x00000004 verfügbar.

Abbildung 4 Entwurfsablauf für Multi-Stage Bootvorgangsmethode

Microsemi-DG0669-SmartFusion2-Code-Shadowing-von-SPI-Flash-zu-LPDDR-Speicher-ABB. 4

Hardware-Boot-Engine-Methode

  1. Generieren einer ausführbaren Binärdatei file mithilfe der Libero SoC-Software.
  2. Laden Sie die Binärdatei file in SPI-Flash mithilfe der Libero SoC-Software.
  3. Führen Sie das Hardware Boot Engine Design aus, um das FPGA zu programmieren und das Anwendungsimage vom SPI-Flash in den LPDDR-Speicher zu laden.

Bei dieser Methode bootet der Cortex-M3 das Zielanwendungsimage direkt aus externen DDR-Speichern. Die Hardware-Boot-Engine kopiert das Anwendungsimage vom SPI-Flash-Gerät in den DDR-Speicher, bevor der Cortex-M3-Prozessor zurückgesetzt wird. Nach dem Zurücksetzen bootet der Cortex-M3-Prozessor direkt aus dem DDR-Speicher. Diese Methode erfordert weniger Bootzeit als Multi-Stage Boot-Prozess, da es mehrere Boot-s vermeidettages und kopiert das Anwendungsimage in kürzerer Zeit in den DDR-Speicher. Dieses Demodesign implementiert eine Boot-Engine-Logik im FPGA-Fabric, um das ausführbare Image der Zielanwendung vom SPI-Flash in den DDR-Speicher zur Ausführung zu kopieren. Dieses Design implementiert auch einen SPI-Flash-Loader, der vom Cortex-M3-Prozessor ausgeführt werden kann, um das ausführbare Image der Zielanwendung mithilfe der bereitgestellten Hostschnittstelle über SmartFusion2 SoC FPGA MMUART_1 in das SPI-Flash-Gerät zu laden. Mit dem DIP-Schalter1 auf dem SmartFusion2 Security Evaluation Kit kann ausgewählt werden, ob das SPI-Flash-Gerät programmiert oder der Code vom DDR-Speicher ausgeführt werden soll. Wenn die ausführbare Zielanwendung im SPI-Flash-Gerät verfügbar ist, wird das Code-Shadowing vom SPI-Flash-Gerät in den DDR-Speicher beim Einschalten des Geräts gestartet. Die Boot-Engine initialisiert den MDDR, kopiert das Image vom SPI-Flash-Gerät in den DDR-Speicher und ordnet den DDR-Speicherplatz auf 0x00000000 neu zu, indem sie den Cortex-M3-Prozessor im Reset-Zustand hält. Nachdem die Boot-Engine den Cortex-M3-Reset freigegeben hat, führt der Cortex-M3 die Zielanwendung aus dem DDR-Speicher aus. Abbildung 5 zeigt das detaillierte Blockdiagramm des Demodesigns. Der FIC_0 ist im Slave-Modus konfiguriert, um vom FPGA-Fabric-AHB-Master auf den MSS SPI_0 zuzugreifen. Die MDDR-AXI-Schnittstelle (DDR_FIC) ist aktiviert, um vom FPGA-Fabric-AXI-Master auf den DDR-Speicher zuzugreifen.

Abbildung 5: Blockdiagramm der Code Shadowing Hardware Boot Engine-Demo

Microsemi-DG0669-SmartFusion2-Code-Shadowing-von-SPI-Flash-zu-LPDDR-Speicher-ABB. 5

Boot-Engine
Dies ist der Hauptteil der Code-Shadowing-Demo, der das Anwendungsimage vom SPI-Flash-Gerät in den DDR-Speicher kopiert. Die Boot-Engine führt die folgenden Vorgänge aus:

  1. Initialisieren von MDDR für den Zugriff auf LPDDR bei 166 MHz, indem der Cortex-M3-Prozessor im Reset-Zustand gehalten wird.
  2. Kopieren des Zielanwendungsabbilds vom SPI-Flash-Speichergerät in den DDR-Speicher mithilfe des AXI-Masters im FPGA-Fabric über die MDDR-AXI-Schnittstelle.
  3. Neuzuordnung der Startadresse des DDR-Speichers von 0xA0000000 auf 0x00000000 durch Schreiben in das Systemregister DDR_CR.
  4. Freigabe des Resets für den Cortex-M3-Prozessor, um vom DDR-Speicher zu booten.

Abbildung 6 Entwurfsablauf für die Hardware-Boot-Engine-Methode

Microsemi-DG0669-SmartFusion2-Code-Shadowing-von-SPI-Flash-zu-LPDDR-Speicher-ABB. 6

Erstellen eines Zielanwendungsimages für den DDR-Speicher

Zum Ausführen der Demo ist ein Image erforderlich, das aus dem DDR-Speicher ausgeführt werden kann. Verwenden Sie die Linkerbeschreibung production-execute-in-place-externalDDR.ld file das ist im Design enthalten files zum Erstellen des Anwendungsimages. Diese Linkerbeschreibung file definiert die Startadresse des DDR-Speichers als 0x00000000, da der Bootloader oder die Boot-Engine eine Neuzuordnung des DDR-Speichers von 0xA0000000 auf 0x00000000 durchführt. Dieses Linker-Skript erstellt ein Anwendungsbild mit Anweisungen, Daten und BSS-Abschnitten im Speicher, dessen Startadresse 0x00000000 ist. Ein einfaches Anwendungsbild mit blinkender Leuchtdiode (LED), Timer- und Schalter-basierter Interrupt-Generierung file wird für diese Demo bereitgestellt.

SPI-Flash-Loader

Der SPI-Flash-Loader wird implementiert, um den integrierten SPI-Flash-Speicher mit dem ausführbaren Zielanwendungsabbild vom Host-PC über die MMUART_1-Schnittstelle zu laden. Der Cortex-M3-Prozessor erstellt einen Puffer für die über die MMUART_1-Schnittstelle eingehenden Daten und initiiert den peripheren DMA (PDMA), um die gepufferten Daten über MSS_SPI0 in den SPI-Flash zu schreiben.

Ausführen der Demo
Um das Demo-Design auszuführen, folgen Sie den folgenden Schritten: Die Demo zeigt, wie das Anwendungsbild in den SPI-Flash geladen und dieses Anwendungsbild aus externen DDR-Speichern ausgeführt wird. Diese Demo bietet eine Example Anwendungsbild sample_image_LPDDR.bin. Dieses Bild zeigt die Willkommensnachrichten und die Timer-Interrupt-Nachricht auf der seriellen Konsole und blinkt LED1 bis LED8 auf dem SmartFusion2 Security Evaluation Kit. Um die GPIO-Interrupt-Nachrichten auf der seriellen Konsole anzuzeigen, drücken Sie den Schalter SW2 oder SW3.

Einrichten des Demo-Designs

Die folgenden Schritte beschreiben, wie Sie die Demo für die SmartFusion2 Security Evaluation Kit-Platine einrichten: Verbinden Sie den Host-PC über das USB-A-zu-Mini-B-Kabel mit dem J18-Anschluss. Die USB-zu-UART-Brückentreiber werden automatisch erkannt. Überprüfen Sie, ob die Erkennung im Gerätemanager erfolgt, wie in Abbildung 7 dargestellt.

  1. Wenn USB-Treiber nicht automatisch erkannt werden, installieren Sie den USB-Treiber.
  2. Installieren Sie für die serielle Terminalkommunikation über das FTDI-Mini-USB-Kabel den FTDI D2XX-Treiber. Laden Sie die Treiber und die Installationsanleitung herunter von:
    http://www.microsemi.com/soc/documents/CDM_2.08.24_WHQL_Certified.zip.

Abbildung 7 Entwurfsablauf für die Hardware-Boot-Engine-Methode

Microsemi-DG0669-SmartFusion2-Code-Shadowing-von-SPI-Flash-zu-LPDDR-Speicher-ABB. 7

Verbinden Sie die Jumper auf der Platine des SmartFusion2 Security Evaluation Kit, wie in Tabelle 2 gezeigt.

Vorsicht: Bevor Sie die Überbrückungsverbindungen herstellen, schalten Sie den Stromversorgungsschalter SW7 AUS.

Tabelle 2 Jumper-Einstellungen für das SmartFusion2 Security Evaluation Kit

Jumper Pin (von) Pin (an) Kommentare
J22 1 2 Standard
J23 1 2 Standard
J24 1 2 Standard
J8 1 2 Standard
J3 1 2 Standard

Schließen Sie im SmartFusion2 Security Evaluation Kit das Netzteil an den J6-Anschluss an. Abbildung 8 zeigt den Aufbau der Platine zum Ausführen der Code-Shadowing-Demo von SPI-Flash zu LPDDR auf dem SmartFusion2 Security Evaluation Kit.

Abbildung 8: Einrichten des SmartFusion2 Security Evaluation Kit

Microsemi-DG0669-SmartFusion2-Code-Shadowing-von-SPI-Flash-zu-LPDDR-Speicher-ABB. 8

SPI Flash Loader und Code Shadowing Demo-GUI
Dies ist erforderlich, um die Code-Shadowing-Demo auszuführen. SPI Flash Loader und Code-Shadowing-Demo-GUI ist eine einfache grafische Benutzeroberfläche, die auf dem Host-PC ausgeführt wird, um den SPI-Flash zu programmieren und die Code-Shadowing-Demo auf dem SmartFusion2 Security Evaluation Kit auszuführen. UART wird als zugrunde liegendes Kommunikationsprotokoll zwischen dem Host-PC und dem SmartFusion2 Security Evaluation Kit verwendet. Es bietet auch den seriellen Konsolenabschnitt zum Drucken der von der Anwendung über die UART-Schnittstelle empfangenen Debug-Nachrichten.

Abbildung 9: SPI Flash Loader und Code Shadowing Demo-GUI

Microsemi-DG0669-SmartFusion2-Code-Shadowing-von-SPI-Flash-zu-LPDDR-Speicher-ABB. 9

Die GUI unterstützt die folgenden Funktionen:

  • Program SPI Flash: Programmiert das Image file in den SPI-Flash.
  • Programm- und Code-Shadowing von SPI Flash zu DDR: Programmiert das Image file in SPI-Flash, kopiert es in den DDR-Speicher und bootet das Image vom DDR-Speicher.
  • Programm- und Code-Shadowing von SPI Flash zu SDR: Programmiert das Image file in SPI-Flash, kopiert es in den SDR-Speicher und bootet das Image vom SDR-Speicher.
  • Code Shadowing nach DDR: Kopiert das vorhandene Image file vom SPI-Flash zum DDR-Speicher und bootet das Image vom DDR-Speicher.
  • Code Shadowing nach SDR: Kopiert das vorhandene Image file vom SPI-Flash zum SDR-Speicher und bootet das Image vom SDR-Speicher.

Klicken Sie auf „Hilfe“, um weitere Informationen zur GUI zu erhalten.

Verbinden Sie das SmartFusion2 Development Kit mit Ihrem Computer über das USB Blaster- oder USB Blaster II-Kabel. Führen Sie dann die folgenden Schritte aus:

  1. Schalten Sie das SmartFusion2 Development Kit ein.
  2. Öffnen Sie die Code Shadowing Demo-GUI in der Libero SoC-Software.
  3. Wählen Sie die entsprechenden Einstellungen für Ihr Design und klicken Sie auf „Generieren“, um die Programmierung zu generieren file.
  4. Stellen Sie mithilfe des USB-Blaster- oder USB-Blaster-II-Kabels eine Verbindung zum SmartFusion2 Development Kit her.
  5. Programmieren Sie das FPGA und laden Sie das Anwendungsimage vom SPI-Flash in den LPDDR-Speicher, indem Sie in der Code Shadowing Demo-GUI auf „Programmieren“ klicken.

Ausführen des Demo-Designs für Multi-Stage Bootvorgangsmethode
Um das Demo-Design für die Multi-S auszuführentagUm den Bootvorgang durchzuführen, befolgen Sie die nachstehenden Schritte:

  1. Schalten Sie das SmartFusion2 Development Kit ein.
  2. Stellen Sie mithilfe des USB-Blaster- oder USB-Blaster-II-Kabels eine Verbindung zum SmartFusion2 Development Kit her.
  3. Setzen Sie die Karte zurück und warten Sie, bis der Startvorgang abgeschlossen ist.
  4. Die Anwendung wird automatisch vom LPDDR-Speicher ausgeführt.

Die folgenden Schritte beschreiben, wie Sie das Demo-Design für Multi-S ausführentage Bootvorgangsmethode:

  1. Stellen Sie den Stromversorgungsschalter SW7 auf ON.
  2. Programmieren Sie das SmartFusion2 SoC FPGA-Gerät mit dem Programmier file im Design vorgesehen files (SF2_CodeShadowing_LPDDR_DF\Programmierung
    Files\MultiStageBoot_method\CodeShadowing_LPDDR_top.stp mit der FlashPro-Designsoftware.
  3. Starten Sie die ausführbare GUI-Datei des SPI Flash Loader und der Code Shadowing Demo file im Design erhältlich files (SF2_CodeShadowing_LPDDR_DF\GUI Executable\SF2_FlashLoader.exe).
  4. Wählen Sie aus der Dropdown-Liste „COM-Port“ den entsprechenden COM-Port (auf den die USB-Seriell-Treiber verweisen).
  5. Klicken Sie auf Verbinden. Nach dem Herstellen der Verbindung ändert sich Verbinden in Trennen.
  6. Klicken Sie auf „Durchsuchen“, um das Beispiel auszuwählen.ample Ziel ausführbares Image file mit dem Design versehen files (SF2_CodeShadowing_LPDDR_DF/Sample Anwendungsbilder/MultiStageBoot_Methode/nample_image_LPDDR.bin).
    Notiz: So generieren Sie den Anwendungsimagebehälter file, siehe „Anhang: Generieren von ausführbaren Bin File“ auf Seite 24.
  7. Behalten Sie die Startadresse des SPI-Flash-Speichers als Standard bei 0x00000000.
  8. Wählen Sie die Option „Programm- und Code-Shadowing von SPI-Flash zu DDR“.
  9. Klicken Sie wie in Abbildung 10 gezeigt auf „Start“, um das ausführbare Image in den SPI-Flash zu laden und den Code aus dem DDR-Speicher zu spiegeln.

Abbildung 10 Starten der Demo 

Microsemi-DG0669-SmartFusion2-Code-Shadowing-von-SPI-Flash-zu-LPDDR-Speicher-ABB. 10

Wenn das SmartFusion2-Gerät mit einem STAPL programmiert ist file in dem MDDR nicht für DDR-Speicher konfiguriert ist, wird eine Fehlermeldung angezeigt, wie in Abbildung 11 dargestellt.

Abbildung 11 Meldung „Falsches Gerät oder falsche Option“

Microsemi-DG0669-SmartFusion2-Code-Shadowing-von-SPI-Flash-zu-LPDDR-Speicher-ABB. 11

Der serielle Konsolenabschnitt auf der GUI zeigt die Debug-Meldungen an und startet die Programmierung des SPI-Flashs, wenn der SPI-Flash erfolgreich gelöscht wurde. Abbildung 12 zeigt den Status des SPI-Flash-Schreibens.

Abbildung 12 Flash-Laden

Microsemi-DG0669-SmartFusion2-Code-Shadowing-von-SPI-Flash-zu-LPDDR-Speicher-ABB. 12

  1. Nach erfolgreicher Programmierung des SPI-Flash kopiert der auf dem SmartFusion2 SoC FPGA ausgeführte Bootloader das Anwendungsimage vom SPI-Flash in den DDR-Speicher und bootet das Anwendungsimage. Wenn das bereitgestellte Image sample_image_LPDDR.bin ausgewählt ist, zeigt die serielle Konsole die Willkommensmeldungen, Switch-Interrupt- und Timer-Interrupt-Meldungen an, wie in Abbildung 13 und Abbildung dargestellt.
  2. Auf dem SmartFusion1 Security Evaluation Kit wird auf LED8 bis LED2 ein fortlaufendes LED-Muster angezeigt.
  3. Drücken Sie die Schalter SW2 und SW3, um Interrupt-Meldungen auf der seriellen Konsole anzuzeigen.

Abbildung 13 Ausführen des Zielanwendungsimages aus dem DDR3-Speicher

Microsemi-DG0669-SmartFusion2-Code-Shadowing-von-SPI-Flash-zu-LPDDR-Speicher-ABB. 13

Abbildung 14 Timer- und Interrupt-Meldungen in der seriellen Konsole

Microsemi-DG0669-SmartFusion2-Code-Shadowing-von-SPI-Flash-zu-LPDDR-Speicher-ABB. 14

Ausführen des Hardware-Boot-Engine-Methodenentwurfs
Um das Demodesign für die Hardware-Boot-Engine-Methode auszuführen, führen Sie die folgenden Schritte aus:

  1. Schalten Sie das SmartFusion2 Development Kit ein.
  2. Stellen Sie mithilfe des USB-Blaster- oder USB-Blaster-II-Kabels eine Verbindung zum SmartFusion2 Development Kit her.
  3. Setzen Sie die Karte zurück und warten Sie, bis der Startvorgang abgeschlossen ist.
  4. Die Anwendung wird automatisch vom LPDDR-Speicher ausgeführt.

Die folgenden Schritte beschreiben, wie die Methode zum Ausführen der Hardware-Boot-Engine entworfen wird:

  1. Stellen Sie den Stromversorgungsschalter SW7 auf ON.
  2. Programmieren Sie das SmarFusion2 SoC FPGA-Gerät mit dem Programmier file im Design vorgesehen files (SF2_CodeShadowing_LPDDR_DF\Programmierung Files\HWBootEngine_method\CodeShadowing_Fabric.stp mithilfe der FlashPro-Designsoftware.
  3. Um den SPI-Flash zu programmieren, stellen Sie den DIP-Schalter SW5-1 auf die Position ON. Diese Auswahl ermöglicht das Booten von Cortex-M3 von eNVM. Drücken Sie SW6, um das SmartFusion2-Gerät zurückzusetzen.
  4. Starten Sie die ausführbare GUI-Datei des SPI Flash Loader und der Code Shadowing Demo file im Design erhältlich files (SF2_CodeShadowing_LPDDR_DF\GUI Executable\SF2_FlashLoader.exe).
  5. Wählen Sie aus der Dropdown-Liste „COM-Port“ den entsprechenden COM-Port (auf den die USB-Seriell-Treiber verweisen).
  6. Klicken Sie auf Verbinden. Nach dem Herstellen der Verbindung ändert sich Verbinden in Trennen.
  7. Klicken Sie auf „Durchsuchen“, um das Beispiel auszuwählen.ample Ziel ausführbares Image file mit dem Design versehen files (SF2_CodeShadowing_LPDDR_DF/SampDatei „Application Images/HWBootEngine_method/s“ample_image_LPDDR.bin).
    Notiz: So generieren Sie den Anwendungsimagebehälter file, siehe „Anhang: Generieren von ausführbaren Bin File“ auf Seite 24.
  8. Wählen Sie in der Code-Shadowing-Methode die Option „Hardware-Boot-Engine“.
  9. Wählen Sie die Option „SPI-Flash programmieren“ aus dem Optionsmenü.
  10. Klicken Sie auf „Start“, wie in Abbildung 15 gezeigt, um das ausführbare Image in den SPI-Flash zu laden.

Abbildung 15 Starten der Demo

Microsemi-DG0669-SmartFusion2-Code-Shadowing-von-SPI-Flash-zu-LPDDR-Speicher-ABB. 15

Der serielle Konsolenabschnitt auf der GUI zeigt die Debug-Meldungen und den Status des SPI-Flash-Schreibens an, wie in Abbildung 16 dargestellt.
Abbildung 16 Flash-Laden

Microsemi-DG0669-SmartFusion2-Code-Shadowing-von-SPI-Flash-zu-LPDDR-Speicher-ABB. 16

  1. Nachdem der SPI-Flash erfolgreich programmiert wurde, stellen Sie den DIP-Schalter SW5-1 auf OFF. Mit dieser Auswahl wird der Cortex-M3-Prozessor aus dem DDR-Speicher gebootet.
  2. Drücken Sie SW6, um das SmartFusion2-Gerät zurückzusetzen. Die Boot-Engine kopiert das Anwendungsimage vom SPI-Flash in den DDR-Speicher und gibt den Reset an Cortex-M3 frei, der das Anwendungsimage aus dem DDR-Speicher bootet. Wenn das bereitgestellte Image „samp„le_image_LPDDR.bin“ wird in den SPI-Flash geladen, die serielle Konsole zeigt die Willkommensnachrichten, den Schalter-Interrupt (drücken Sie SW2 oder SW3) und die Timer-Interrupt-Nachrichten an, wie in Abbildung 17 dargestellt, und auf LED1 bis LED8 auf dem SmartFusion2 Security Evaluation Kit wird ein laufendes LED-Muster angezeigt.

Abbildung 17: Ausführen des Zielanwendungsimages aus dem DDR3-Speicher

Microsemi-DG0669-SmartFusion2-Code-Shadowing-von-SPI-Flash-zu-LPDDR-Speicher-ABB. 17

Abschluss
Sie haben das SmartFusion2 SoC FPGA erfolgreich mit Code-Shadowing von SPI-Flash auf LPDDR-Speicher verwendet. Diese Demo zeigt die Fähigkeit des SmartFusion2-Geräts, mit DDR-Speicher zu kommunizieren und das ausführbare Image aus dem DDR-Speicher auszuführen, indem Code vom SPI-Flash-Speichergerät geshaded wird. Außerdem werden zwei Methoden zur Implementierung von Code-Shadowing auf dem SmartFusion2-Gerät gezeigt.

Anhang: LPDDR-Konfigurationen

Abbildung 18 Allgemeine DDR-Konfigurationseinstellungen

Microsemi-DG0669-SmartFusion2-Code-Shadowing-von-SPI-Flash-zu-LPDDR-Speicher-ABB. 18

Abbildung 19 DDR-Speicher-Initialisierungseinstellungen

Microsemi-DG0669-SmartFusion2-Code-Shadowing-von-SPI-Flash-zu-LPDDR-Speicher-ABB. 19

Abbildung 20 Timing-Einstellungen für DDR-Speicher

Microsemi-DG0669-SmartFusion2-Code-Shadowing-von-SPI-Flash-zu-LPDDR-Speicher-ABB. 20

Anhang: Generieren eines ausführbaren Bins File

Der ausführbare Bin file wird benötigt, um den SPI-Flash für die Ausführung der Code-Shadowing-Demo zu programmieren. Um die ausführbare Bin-Datei zu generieren file von „sample_image_LPDDR“ SoftConsole, führen Sie die folgenden Schritte aus:

  1. Erstellen Sie das SoftConsole-Projekt mit dem Linker-Skript „production-execute-in-place-externalDDR“.
  2. Fügen Sie den SoftConsole-Installationspfad hinzu, zum Beispielampich,
    C:\Microsemi\Libero_v11.7\SoftConsole\Sourcery-G++\bin, zu den „Umgebungsvariablen“, wie in Abbildung 21 gezeigt.

Abbildung 21: SoftConsole-Installationspfad hinzufügen

Microsemi-DG0669-SmartFusion2-Code-Shadowing-von-SPI-Flash-zu-LPDDR-Speicher-ABB. 21

  1. Doppelklicken Sie auf den Stapel file Behälter-File-Generator.bat befindet sich unter: SoftConsole/CodeShadowing_LPDDR_MSS_CM3/Sample_image_LPDDR-Ordner, wie in Abbildung 22 gezeigt.

Abbildung 22 SoftConsole-Installationspfad hinzufügen

Microsemi-DG0669-SmartFusion2-Code-Shadowing-von-SPI-Flash-zu-LPDDR-Speicher-ABB. 22

  • Der Mülleimer-File-Generator erzeugt sample_image_LPDDR.bin file

Änderungsverlauf

In der folgenden Tabelle sind die wichtigen Änderungen aufgeführt, die bei jeder Revision an diesem Dokument vorgenommen wurden.

Revision Änderungen
Revision 2

(April 2016)

Das Dokument für die Softwareversion Libero SoC v11.7 (SAR 78258) wurde aktualisiert.
Revision 1

(Dezember 2015)

Erstveröffentlichung.

Produkt-Support

Die Microsemi SoC Products Group unterstützt ihre Produkte mit verschiedenen Support-Services, darunter Kundendienst, technisches Kunden-Support-Center, a webWebsite, E-Mail und weltweite Vertriebsniederlassungen. Dieser Anhang enthält Informationen zur Kontaktaufnahme mit der Microsemi SoC Products Group und zur Nutzung dieser Supportdienste.

Kundendienst
Kontaktieren Sie den Kundendienst für nicht-technischen Produktsupport, wie z. B. Produktpreise, Produkt-Upgrades, Update-Informationen, Bestellstatus und Autorisierung. Rufen Sie aus Nordamerika 800.262.1060 an. Rufen Sie aus dem Rest der Welt 650.318.4460 an. Fax, von überall auf der Welt 408.643.6913

Technisches Kundendienstzentrum für Kunden
Die Microsemi SoC Products Group besetzt ihr Customer Technical Support Center mit hochqualifizierten Ingenieuren, die Ihnen bei der Beantwortung Ihrer Fragen zu Hardware, Software und Design von Microsemi SoC-Produkten behilflich sein können. Das Customer Technical Support Center verbringt viel Zeit mit der Erstellung von Anwendungshinweisen, Antworten auf häufige Fragen zum Designzyklus, Dokumentation bekannter Probleme und verschiedener FAQs. Bevor Sie uns kontaktieren, besuchen Sie bitte unsere Online-Ressourcen. Es ist sehr wahrscheinlich, dass wir Ihre Fragen bereits beantwortet haben.

Technische Unterstützung
Für Support für Microsemi SoC-Produkte besuchen Sie bitte
http://www.microsemi.com/products/fpga-soc/design-support/fpga-soc-support.

WebWebsite
Auf der Homepage der Microsemi SoC Products Group finden Sie unter eine Vielzahl von technischen und nicht-technischen Informationen http://www.microsemi.com/products/fpga-soc/fpga-and-soc.

Kontaktaufnahme mit dem technischen Kundensupport Center
Hochqualifizierte Ingenieure besetzen das Technical Support Center. Das Technical Support Center kann per E-Mail oder über die Microsemi SoC Products Group kontaktiert werden webWebsite.

E-Mail
Sie können Ihre technischen Fragen an unsere E-Mail-Adresse senden und Antworten per E-Mail, Fax oder Telefon erhalten. Wenn Sie Designprobleme haben, können Sie Ihr Design auch per E-Mail senden files, um Hilfe zu erhalten. Wir überwachen das E-Mail-Konto den ganzen Tag über. Wenn Sie uns Ihre Anfrage senden, geben Sie bitte unbedingt Ihren vollständigen Namen, den Firmennamen und Ihre Kontaktinformationen an, damit Ihre Anfrage effizient bearbeitet werden kann. Die E-Mail-Adresse des technischen Supports lautet soc_tech@microsemi.com.

Meine Fälle
Kunden der Microsemi SoC Products Group können technische Fälle online einreichen und verfolgen, indem sie zu „Meine Fälle“ gehen.

Außerhalb der USA
Kunden, die außerhalb der US-Zeitzonen Hilfe benötigen, können sich entweder per E-Mail an den technischen Support wenden (soc_tech@microsemi.com) oder wenden Sie sich an ein lokales Verkaufsbüro. Unter „Über uns“ finden Sie eine Liste der Verkaufsbüros und Unternehmenskontakte.

ITAR Technischer Support
Wenden Sie sich für technischen Support zu RH- und RT-FPGAs, die den International Traffic in Arms Regulations (ITAR) unterliegen, an uns unter soc_tech@microsemi.com. Alternativ können Sie in Meine Fälle Ja in der ITAR-Dropdown-Liste auswählen. Eine vollständige Liste der ITAR-regulierten Microsemi-FPGAs finden Sie auf der ITAR web Seite.Microsemi Corporation (Nasdaq: MSCC) bietet ein umfassendes Portfolio an Halbleiter- und Systemlösungen für die Kommunikations-, Verteidigungs- und Sicherheits-, Luft- und Raumfahrt- und Industriemärkte. Zu den Produkten gehören hochleistungsfähige und strahlungsfeste analoge Mixed-Signal-integrierte Schaltkreise, FPGAs, SoCs und ASICs; Energiemanagementprodukte; Zeit- und Synchronisierungsgeräte und präzise Zeitlösungen, die den weltweiten Standard für die Zeit setzen; Sprachverarbeitungsgeräte; HF-Lösungen; diskrete Komponenten; Speicher- und Kommunikationslösungen für Unternehmen, Sicherheitstechnologien und skalierbare Anti-Tamper-Produkte; Ethernet-Lösungen; Powerover-Ethernet-ICs und Midspans sowie kundenspezifische Designfunktionen und -dienste. Microsemi hat seinen Hauptsitz in Aliso Viejo, Kalifornien, und beschäftigt weltweit rund 4,800 Mitarbeiter. Weitere Informationen finden Sie unter www.microsemi.com.

Microsemi übernimmt keine Garantie, Gewährleistung oder Gewährleistung hinsichtlich der hierin enthaltenen Informationen oder der Eignung seiner Produkte und Dienstleistungen für einen bestimmten Zweck und übernimmt auch keine Haftung, die sich aus der Anwendung oder Verwendung eines Produkts oder Schaltkreises ergibt. Die hiermit verkauften Produkte und alle anderen von Microsemi verkauften Produkte wurden begrenzten Tests unterzogen und sollten nicht in Verbindung mit unternehmenskritischen Geräten oder Anwendungen verwendet werden. Alle Leistungsspezifikationen gelten als zuverlässig, sind jedoch nicht überprüft, und der Käufer muss alle Leistungs- und sonstigen Tests der Produkte durchführen und abschließen, allein und zusammen mit oder installiert in Endprodukten. Der Käufer darf sich nicht auf Daten und Leistungsspezifikationen oder Parameter verlassen, die von Microsemi bereitgestellt werden. Es liegt in der Verantwortung des Käufers, die Eignung aller Produkte unabhängig zu bestimmen und diese zu testen und zu überprüfen. Die hiermit von Microsemi bereitgestellten Informationen werden „wie besehen, wo besehen“ und mit allen Fehlern bereitgestellt, und das gesamte mit diesen Informationen verbundene Risiko liegt vollständig beim Käufer. Microsemi gewährt weder ausdrücklich noch stillschweigend Patentrechte, Lizenzen oder sonstige geistige Eigentumsrechte an Dritte, weder in Bezug auf diese Informationen selbst noch auf darin beschriebene Inhalte. Die in diesem Dokument bereitgestellten Informationen sind Eigentum von Microsemi und Microsemi behält sich das Recht vor, die Informationen in diesem Dokument oder an Produkten und Dienstleistungen jederzeit und ohne Vorankündigung zu ändern.

Hauptsitz von Microsemi
One Enterprise, Aliso Viejo, CA 92656 USA

2016 Microsemi Corporation. Alle Rechte vorbehalten. Microsemi und das Microsemi-Logo sind Marken der Microsemi Corporation. Alle anderen Marken und Dienstleistungsmarken sind Eigentum ihrer jeweiligen Inhaber.

Dokumente / Ressourcen

Microsemi DG0669 SmartFusion2 Code Shadowing von SPI-Flash zu LPDDR-Speicher [pdf] Benutzerhandbuch
DG0669 SmartFusion2 Code Shadowing von SPI Flash zu LPDDR Speicher, DG0669, SmartFusion2 Code Shadowing von SPI Flash zu LPDDR Speicher, SPI Flash zu LPDDR Speicher

Verweise

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind markiert *