问题描述:在开发ZYNQ的PS端运行LWIP (server)时,会出现卡死的情况,(client)链接断开
DEBUG会发现程序进入xil_SyncAlbortHandler函数死循环。
主要分为两种异常函数,xil_SyncAlbortHandler和xil_DataAlbortHandler
其中,xil_SyncAlbortHandler表示程序使得处理器访问到了无效的内存地址,一般都是FPGA工程师分配给PS段的DDR或者SRAM的地址和PS段实际应用的地址不同,程序访问到了未分配部分的内存,使得终止报错。
而另一种,xil_DataAlbortHandler表示处理器的数组、堆栈超出了分配的部分,系统强制停止
处理方法:最好不在函数中写return强制返回,可以重新检查分配内存部分,留出部分冗余。
另有说法可以通过xil_exception的BREAK强制跳过内存数据检查。