Linker 尝试运行任何lwip函数时代码中断

Linker 尝试运行任何lwip函数时代码中断,linker,xps,xilinx,Linker,Xps,Xilinx,我正在尝试运行tftp服务器的示例代码。在合成硬件或编译代码时,我没有收到任何投诉。但是,当我添加lwip_init()语句时,它似乎停止工作(它不输出任何print语句)。这是非常令人沮丧的,我不知道是什么原因造成的。有什么想法吗?谢谢 #include <stdio.h> #include "xenv_standalone.h" #include "xparameters.h" #include "platform.h" #include "netif/xadapter.h" #

我正在尝试运行tftp服务器的示例代码。在合成硬件或编译代码时,我没有收到任何投诉。但是,当我添加lwip_init()语句时,它似乎停止工作(它不输出任何print语句)。这是非常令人沮丧的,我不知道是什么原因造成的。有什么想法吗?谢谢

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

    ...
}
通过lwip_init()我得到:


比这大得多。太糟糕了,它不能对此给出警告(假设你正在进行一次干净的重建),当你开始调用LWIP函数时,它链接了很多新的东西,所以你的图像已经改变了。您的图像是否超出了任何限制条件(程序大小、数据大小、堆栈大小…?

我确实遇到了这个问题,我相信我通过增加所使用的块ram大小(至少我没有看到任何错误/警告)来解决这个问题
text data bss dec  hex
7214 356 1104 8674 21e2
text data bss   dec    hex
9726 356 559080 569162 8af4a