最近在使用dsPIC33EV64GM106单片机开发项目时发现一个问题,下午下班后把电路板所有LED点亮进行老化测试,第二天来到发现LED都灭掉了,经试验,发现是单片机每隔半个小时左右复位一次。
发现问题后试过把所有程序全部屏蔽(除了can初始化,因为需要开机发送一次can帧判断是否重启),发现还是会出现重启问题,只不过由半个小时一次变成50分钟一次(这里发现重启时间好像和代码量有关)。
把所有程序都屏蔽掉问题还是能出现,那就怀疑是PIC单片机配置字的问题了,因为项目初始时是我一个同事负责,所以我并没有详细去看配置字,这次发现问题后挨个查看配置字,如下代码:
#pragma config BWRP = OFF // Boot Segment Write-Protect Bit (Boot Segment may be written)
#pragma config BSS = DISABLED // Boot Segment Code-Protect Level bits (No Protection (other than BWRP))
#pragma config BSS2 = OFF // Boot Segment Control Bit (No Boot Segment)
#pragma config GWRP = OFF // General Segment Write-Protect Bit (General Segment may be written)
#pragma config GSS = DISABLED // General Segment Code-Protect Level bits (No Protection (