- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In the CYW43907, the appscr4_saved_core_status contains bits relating to the reset cause of the processor:
s_error_log
s_bp_reset_log
force_proc_reset_log
Does anyone know the details of each reset flag and what will cause them to be set?
While my boards runs over time it will randomly get a reset and I am trying to track down whether it is a random exception or if it is noise on the reset line or some other issue. I am not able to monitor the serial port on all devices while running in a debug build to see a exception so i am trying to find as many clues as i can.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Could there be an issue running with a debugger relating to an internal bus?
After many changes and still having issues, during my last testing it appeared the thread's stack or stack pointer value became corrupted based on the call tree in the debugger window and a failure in the return from vPortFree.
As I removed code line by line I found the issue was related to snprintf
dbgPkt.size += snprintf( (char*)dbgPkt.data+dbgPkt.size, MAX_PACKET_SIZE, "%llu,",( long long unsigned int ) time );
After looking at it i realize i need to subtract the current size from the max size for the second parameter but it shouldn't matter as in this case the dbgPkt.size was 11 and the buffer (MAX_PACKET_SIZE) is 128. There is no way this should produce an overrun unless there is an issue in snprintf?
I changed to
dbgPkt.size += snprintf( (char*)dbgPkt.data+dbgPkt.size, (MAX_PACKET_SIZE-dbgPkt.size), "%llu,",( long long unsigned int ) time );
I was able to run 11 hours without an exception (debugger was disconnected)...