ID articolo: 000074333 Tipo di contenuto: Messaggi di errore Ultima recensione: 22/10/2014

Errore di programmazione Nios II da sistema a flash

Ambiente

  • Intel® Quartus® II (in abbonamento)
  • Processore Intel® Nios® II
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT

    Problema critico

    Descrizione

    Questo problema riguarda il codice destinato ad essere eseguito in flash utilizzando alt_load() per copiare le sezioni scrivibili nella RAM. Se una sezione ELF (ad esempio .bss ) deve essere copiata da flash alla RAM utilizzando alt_load() , gli strumenti di compilazione del software verificare che la sezione si adatti alla RAM, ma non che si adatti alla memoria flash in cui verrà programmata. Gli strumenti generano un file di programmazione senza alcuna indicazione di un errore di dimensioni del codice.

    Questo problema ha maggiori probabilità di influire sulla memoria di destinazione è il flash MAX 10 onchip, che è relativamente piccolo. Questo problema influisce solo su di te se si sta utilizzando alt_load() .

    Soluzione

    È possibile determinare manualmente se il codice si adatta guardando all'inizio del file objdump, creato quando si costruisce l'applicazione. Questo file contiene informazioni che è possibile utilizzare per determinare se ciascuna sezione si adatta al flash memoria, come dimostrato nell'esempio seguente.

    Il file objdump viene creato nell'applicazione directory di primo livello dell'applicazione. È possibile generarlo da la riga di comando digitando make app nell'applicazione Directory.

    Vicino alla parte superiore del file objdump è un elenco di sezioni simili alle seguenti:

    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

    Ogni sezione ha valori per dimensioni, VMA e LMA. VMA è il l'indirizzo di runtime e LMA è l'indirizzo di caricamento. Se una sezione non è copiato, VMA = LMA. Se una sezione viene copiata, viene copiata da LMA alla VMA.

    In questo caso, che utilizza alt_load() .entry e .text sono non copiato (VMA = LMA). .rodata, .rwdata, e .bss vengono copiati da un indirizzo flash (LMA) a una RAM indirizzo (VMA).

    Il flash in questo esempio ha una gamma di 0x28000 da 0x30000. La .rwdata sezione è programmata per l'avvio flash at VMA = 0x2e7a0 e si estende a VMA Size = 0x2e7a0 0x1b78 = 0x30518. Pertanto non si adatta al flash.

    Prodotti correlati

    Questo articolo si applica a 1 prodotti

    FPGA Intel® MAX® 10

    Il contenuto di questa pagina è il risultato della combinazione tra la traduzione umana e quella automatica del contenuto originale in lingua inglese. Questo contenuto è fornito soltanto a titolo di informazione generale e non ha pretese di completezza o accuratezza. In presenza di contraddizioni tra la versione in lingua inglese di questa pagina e la sua traduzione, fa fede la versione inglese. Visualizza la versione in lingua inglese di questa pagina.