1,单片机程序挂死了,无法用jlink调试时,我们一般怎么定位呢,我们一般借助外来工具addr2line工具来调式。
当程序挂死时,我们首先编译时选择c99,
编译后烧写相应的bin文件/csf文件到单片机,烧写后 发现程序挂死,有下面的打印错误提示信息,这个提示信息可以用来调式单片机了。
Bus fault is caused by imprecise data access violationShow more call stack info by run:
addr21ine -etm4c1294-Dxe.axf -e 0000d9de 0000d9b8 00011386 000084ee
将编译后生成的.csf文件拷贝到安装有addr2line的电脑上,在电脑上运行如下命令,得到对应的反编译信息。
C:\Users\wangdao\Desktop>.\addr2line.exe -e tm4c1294-Dxe.axf 0000d9de 0000d9b8 00011386 000084ee
Z:\trunk_6000\linecard_ge\APP\project\1LTN4\project/..\src\module\/sfp.c:807get_sfp_sta
Z:\trunk_6000\linecard_ge\APP\project\1LTN4\project/..\src\module\/task_manage.c:1123
pollstatTask
这样就可以定位到单片机挂死在get_sfp_sta和pollstatTask函数了。