breaks código ao tentar executar qualquer função lwIP
Pergunta
Eu estou tentando executar o código de exemplo para o servidor tftp. Eu fico sem queixas quando sintetizar meu hardware ou compilar o código. No entanto, quando eu adicionar a instrução lwip_init (), ele parece parar de trabalhar (ele não sai qualquer um dos comandos de impressão). Isso é muito frustrante e eu não tenho idéia do que está causando isso. Alguma ideia? Graças
#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();
...
}
EDIT em resposta a vicky:
talvez você possa explicar alguma coisa porque você pode estar certo. Quando eu compilá-lo sem lwip_init (), eu recebo:
text data bss dec hex
7214 356 1104 8674 21e2
e com lwip_init () eu recebo:
text data bss dec hex
9726 356 559080 569162 8af4a
que é MUITO maior. Pena que não pode dar uma advertência sobre este
Solução
Presumivelmente (supondo que você está fazendo uma limpeza reconstruir) que está ligando em lotes de coisas novas quando você começar a chamar funções lwIP, então sua imagem mudou. Tem sua imagem transbordou qualquer de suas limitações (o tamanho do programa, tamanho de dados, tamanho da pilha ...)?