CYW43907 Reset cause register explaination

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
NiMc_1688136
Level 5
Level 5
10 sign-ins 50 questions asked 10 solutions authored

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.

0 Likes
1 Solution

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)...

View solution in original post

0 Likes
6 Replies