¿Por qué no puedo imprimir números enteros usando Nios?

1

Por lo tanto, mi objetivo es imprimir (en la salida estándar) un número usando un sistema Nios II en un Altera FPGA Cyclone II.

MIS PASOS:

1) Creé el siguiente sistema Nios II con la herramienta Qsys (Quartus II):

(CPU NIOS II - JTAG - ONCHIP MEMORY RAM - SYS ID)

2)EscribíelsiguientecódigoC:

#include<stdio.h>intmain(){chara[13]="Hello world!";
    printf("%s\n", a);
}

3) Descargué el sistema en el FPGA y compilé y cargué mi código usando Altera Monitor Programme , ejecuté el código y funciona, mi código imprime "Hola mundo" en el Programa Monitor terminal.

4)Entonces,intentéimprimirunnúmeroyfalla:(

  • Elcódigo:

    #include<stdio.h>intmain(){inta=3;printf("%i\n", a);
    }
    
  • El error:

NOTAS: Intenté cambiar% i con% d% u

¿Por qué no funciona?

    
pregunta MadDogTannen

1 respuesta

4

Basándose en el error de verificación y mirando su sistema Qsys, no hay suficiente RAM.

En Qsys, su RAM va de 0x4000 a 0x7FFF. Sin embargo, cuando el programador JTAG intenta cargar el firmware de Nios, intenta verificar 0x4000 hasta 0xE693. Eso significa que el tamaño de su código compilado es un total de 0x6694 (26260) bytes más grande que la RAM.

Al utilizar% i, d o u, obliga al compilador a incluir las rutinas completas para la conversión de enteros a cadenas, lo que a su vez requiere código de módulo y división. Esto usará una buena cantidad de espacio. Mucho más que% s, que requiere poco código.

    
respondido por el Tom Carpenter

Lea otras preguntas en las etiquetas