2011年6月19日星期日

  问题记录 2011-6-19

前两天碰到一个棘手的问题,自重构过程不能正常结束,串口输出的调试信息如下:

In CF2ICAP
filename = pr_dec.bit
In CF2ICAP ..File Opened..
In CF2ICAP ..Header Sector Read..
In CF2ICAP ..File Closed..
In CF2ICAP ..File Opened..
Number of chars read = 98, Sector Number = 0
In CF2ICAP ..Skip Header..
In CF2ICAP ..Writing Word Number 8 from current sector to ICAP..
In CF2ICAP ..Writing Word Number 16 from current sector to ICAP..
In CF2ICAP ..Writing Word Number 24 from current sector to ICAP..
In CF2ICAP ..Writing Word Number 32 from current sector to ICAP..
In CF2ICAP ..Writing Word Number 40 from current sector to ICAP..
In CF2ICAP ..Writing Word Number 48 from current sector to ICAP..
In CF2ICAP ..Writing Word Number 56 from current sector to ICAP..
In CF2ICAP ..Writing Word Number 64 from current sector to ICAP..
In CF2ICAP ..Writing Word Number 72 from current sector to ICAP..
In CF2ICAP ..Writing Word Number 80 from current sector to ICAP..
In CF2ICAP ..Writing Word Number 88 from current sector to ICAP..

出现上述问题的原因如下:
1) 堆栈过小
解决办法:修改Linker Script文件,将Heap Size和Stack Size改为2048B(默认值是1024B)
image 
2) 串口没有初始化
初始化代码大致如下:

XUartLite UartLite;

Status = XUartLite_Initialize(&UartLite, XPAR_UARTLITE_0_DEVICE_ID);
    if (Status != XST_SUCCESS) {
        return XST_FAILURE;
    }

没有评论:

发表评论