ID do artigo: 000074333 Tipo de conteúdo: Mensagens de erro Última revisão: 22/10/2014

Sistema de Nios II de programação de erros flash

Ambiente

  • Intel® Quartus® II Subscription Edition
  • Processador Intel® Nios® II
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT

    Problema crítico

    Descrição

    Este problema afeta o código destinado a ser executado em flash usando para alt_load() copiar seções retorcáveis para RAM. Se uma seção ELF (por exemplo .bss) for copiada de flash para RAM usando alt_load(), as ferramentas de compilação de software verificar se a seção se encaixa na RAM, mas não que ela se encaixa no memória flash em que ela será programada. As ferramentas geram um arquivo de programação sem qualquer indicação de um erro de tamanho do código.

    Este problema é mais provável que afete você se sua memória de destino é o flash MAX 10 onchip, que é relativamente pequeno. Este problema só afeta você se você estiver usando alt_load().

    Resolução

    Você pode determinar manualmente se seu código se encaixa olhando no início do arquivo .objdump , criado quando você constrói sua aplicação. Este arquivo contém informações que você pode usar para determinar se cada seção se encaixa em seu flash memória, conforme demonstrado no exemplo a seguir.

    O arquivo .objdump é criado no aplicativo diretório de nível superior do aplicativo. Você pode gere-lo a partir de a linha de comando digitando make app no aplicativo Diretório.

    Perto da parte superior do arquivo .objdump está uma lista de seções semelhantes às seguintes:

    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

    Cada seção tem valores para tamanho, VMA e LMA. VMA é o endereço de tempo de execução e LMA é o endereço de carga. Se uma seção não estiver copiado, VMA = LMA. Se uma seção for copiada, ela será copiada do LMA para VMA.

    Neste caso, que usa alt_load()e .entry são .text não copiado (VMA = LMA). .rodata, .rwdata, e .bss são copiados de um endereço flash (LMA) para uma RAM endereço (VMA).

    O flash neste exemplo tem uma variedade de 0x28000 para 0x30000. A .rwdata seção está programada para piscar a partir no VMA = 0x2e7a0, e se estende até o tamanho VMA = 0x2e7a0 0x1b78 = 0x30518. Portanto, ele não cabe em flash.

    Produtos relacionados

    Este artigo aplica-se a 1 produtos

    FPGAs Intel® MAX® 10

    O conteúdo desta página é uma combinação de tradução humana e por computador do conteúdo original em inglês. Este conteúdo é fornecido para sua conveniência e apenas para informação geral, e não deve ser considerado completo ou exato. Se houver alguma contradição entre a versão em inglês desta página e a tradução, a versão em inglês prevalecerá e será a determinante. Exibir a versão em inglês desta página.