IAR下调试程序观察变量可以通过watch窗口,但是要将变量输出到外部,比如说excel进行分析的话,少量数据还可以人肉操作,如果一个10240长度的数组需要输出的话,我只能哇的一声口吐鲜血了!
网上也流传了一些方法,有串口输出法,memory区域导出法(需要专门转换程序,但我没找到),抓屏软件捕获法等等。
习惯使用mplab调试环境下的watch右键另存功能,换到IAR下惊叹如此好的集成环境竟然不支持这项功能。
这里提供一种另存文件的方法,可能很多人使用过,见笑了。
举例说明:
#include <stdio.h>
INT16U wpRealTimeData[64];//要导出的数组
void debugtemp(void)
{
FILE *buf;
INT16U wNums;
unsigned char sbuf[30];
INT16U wI;
if ((buf = fopen("afile.c", "w+")) != NULL)//保存的文件在工程目录下 afile.c
{
for (wI=0; wI<64; wI++)
{
wData = wpRealTimeData[wI];
wNums=sprintf(sbuf,"No%4d: = %d\n", wI, wData);
fwrite(sbuf, wNums,1, buf);
}
fclose(buf);
}
}
复制代码
在调试工程中需要数据导出时调用 debugtemp();
查看文件afile.c就可以看到结果了. |