Pregunta

Estoy intentando ejecutar el código de muestra para el servidor tftp. No recibo ninguna queja al sintetizar mi hardware o al compilar el código. Sin embargo, cuando agrego la sentencia lwip_init (), parece que deja de funcionar (no muestra ninguna de las sentencias impresas). Esto es muy frustrante y no tengo idea de lo que lo está causando. ¿Algunas ideas? Gracias

#include <stdio.h>
#include "xenv_standalone.h"
#include "xparameters.h"
#include "platform.h"
#include "netif/xadapter.h"
#include "lwip/init.h"

#define EMAC_BASEADDR  XPAR_LLTEMAC_0_BASEADDR 

int main()
{
    print("-- Starting main() -- \r\n");

    struct netif *netif, server_netif;
    struct ip_addr ipaddr, netmask, gw;

    /* the mac address of the board. this should be unique per board */
    unsigned char mac_ethernet_address[] = { 0x00, 0x0a, 0x35, 0x00, 0x01, 0x02 };

    netif = &server_netif;

    microblaze_init_icache_range(0, XPAR_MICROBLAZE_0_CACHE_BYTE_SIZE);
    microblaze_init_dcache_range(0, XPAR_MICROBLAZE_0_DCACHE_BYTE_SIZE);

    /* enable caches */
    XCACHE_ENABLE_ICACHE();
    XCACHE_ENABLE_DCACHE();

    platform_setup_interrupts();

    /* initliaze IP addresses to be used */
    IP4_ADDR(&ipaddr,  192, 168,   1, 10);
    IP4_ADDR(&netmask, 255, 255, 255,  0);
    IP4_ADDR(&gw,      192, 168,   1,  1);

    print_app_header();
    print_ip_settings(&ipaddr, &netmask, &gw);

    lwip_init();

    ...
}

EDITAR en respuesta a vicky:

tal vez puedas explicar algo porque podrías tener razón. Cuando lo compilo sin lwip_init (), obtengo:

text data bss dec  hex
7214 356 1104 8674 21e2

y con lwip_init () obtengo:

text data bss   dec    hex
9726 356 559080 569162 8af4a

que es mucho más grande. Lástima que no pueda dar una advertencia sobre esto.

¿Fue útil?

Solución

Presumiblemente (asumiendo que estás haciendo una reconstrucción limpia) se está vinculando con muchas cosas nuevas cuando comienzas a llamar a las funciones LWIP, por lo que tu imagen ha cambiado. ¿Su imagen ha desbordado alguna de sus restricciones (tamaño del programa, tamaño de los datos, tamaño de la pila ...)?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top