Artikel-ID: 000074333 Inhaltstyp: Fehlermeldungen Letzte Überprüfung: 22.10.2014

Fehler bei der Programmierung Nios II system to flash

Umgebung

  • Intel® Quartus® II Anmeldungs-Edition
  • Intel® Nios® II Prozessor
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT

    Kritisches Problem

    Beschreibung

    Dieses Problem betrifft Code, der in Flash ausgeführt werden soll durch Kopieren alt_load() von beschreibbaren Abschnitten in den RAM. Wenn ein ELF-Abschnitt (z. B. .bss) kopiert werden soll Flash-to-RAM verwenden alt_load(), die Software-Build-Tools Stellen Sie sicher, dass der Abschnitt in den RAM-Speicher passt, aber nicht, dass er in den Flash-Speicher, in dem er programmiert wird. Die Tools generieren eine Programmierdatei ohne Angabe eines Fehlers in der Codegröße.

    Dieses Problem wirkt sich eher auf Sie aus, wenn Ihr Zielspeicher ist der MAX 10 Onchip-Flash, der relativ klein ist. Dieses Problem Wirkt sich nur auf Sie aus, wenn Sie .alt_load()

    Lösung

    Sie können manuell feststellen, ob Ihr Code passt, indem Sie nachschauen am Anfang der .objdump-Datei , die erstellt wurde, wenn Sie Ihre Anwendung erstellen. Diese Datei enthält Informationen, die Sie können es verwenden, um festzustellen, ob jeder Abschnitt in Ihren Flash-Speicher passt Speicher, wie im folgenden Beispiel gezeigt.

    Die .objdump-Datei wird in den Anwendungen erstellt Top-Level-Verzeichnis der Anwendung. Sie können sie aus die Befehlszeile durch Eingabe make app in der Anwendung Verzeichnis.

    Oben in der .objdump-Datei befindet sich eine Liste von Ähnliche Abschnitte wie die folgenden:

    Sections:
    IdxNameSizeVMALMAFile offAlgn
    0.entry000000200002800000028000000010002**5
    CONTENTS, ALLOC, LOAD, READONLY, CODE
    1.exceptions000002200002802000028020000010202**2
    CONTENTS, ALLOC, LOAD, READONLY, CODE
    2.text00006504 00028240 00028240 00001240 2**2
    CONTENTS, ALLOC, LOAD, READONLY, CODE
    3.rodata 0000005c 00040000 0002e744 00008000 2**2
    CONTENTS, ALLOC, LOAD, READONLY, DATA
    4.rwdata 00001b78 0004005c 0002e7a0 0000805c 2**2
    CONTENTS, ALLOC, LOAD, DATA, SMALL_DATA
    5.bss 00000154 00041bd4 00030318 00009bd4 2**2
    ALLOC, SMALL_DATA

    Jeder Abschnitt hat Werte für Größe, VMA und LMA. VMA ist die Runtime-Adresse und LMA ist die Ladeadresse. Wenn ein Abschnitt nicht kopiert, VMA = LMA. Wenn ein Abschnitt kopiert wird, wird er von der LMA kopiert zu VMA.

    In diesem Fall verwendet alt_load()und .entry .text sind nicht kopiert (VMA = LMA). .rodata, .rwdata, und .bss von einer Flash-Adresse (LMA) in einen RAM kopiert werden Adresse (VMA).

    Der Flash-Speicher in diesem Beispiel hat eine Reihe von 0x28000 bis 0x30000. Der .rwdata Abschnitt ist so programmiert, dass der Flash-Start startet bei VMA = 0x2e7a0, und erweitert sich auf VMA-Größe = 0x2e7a0 0x1b78 = 0x30518. Daher passt es nicht in Flash-Speicher.

    Zugehörige Produkte

    Dieser Artikel bezieht sich auf 1 Produkte

    Intel® MAX® 10 FPGAs

    Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.