문제

TFTP 서버의 샘플 코드를 실행하려고합니다. 하드웨어를 종합하거나 코드를 컴파일 할 때 불만이 없습니다. 그러나 lwip_init () 문을 추가하면 작동이 중지되는 것 같습니다 (인쇄 문의 출력은 없습니다). 이것은 매우 실망스럽고 무엇을 원인하는지 전혀 모른다. 어떤 아이디어? 감사

#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();

    ...
}

Vicky에 대한 응답으로 편집 :

어쩌면 당신이 옳을 수도있는 무언가를 설명 할 수 있습니다. lwip_init ()없이 컴파일하면 다음과 같습니다.

text data bss dec  hex
7214 356 1104 8674 21e2

그리고 lwip_init ()와 함께 나는 얻는다 :

text data bss   dec    hex
9726 356 559080 569162 8af4a

훨씬 더 크다. 너무 나쁘다 그것은 이것에 대해 경고를 줄 수 없습니다

도움이 되었습니까?

해결책

아마도 (깨끗한 재건을하고 있다고 가정 할 때) LWIP 함수를 호출하기 시작할 때 많은 새로운 것들로 연결되어 이미지가 변경되었습니다. 이미지가 제약 조건 (프로그램 크기, 데이터 크기, 스택 크기 ...)을 오버플로 했습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top