I’m running FreeRTOS on a Freescale HCS12 processor. I’m living in constant fear of the “Illegal Breakpoint” as my application gets larger and larger (pushing 64k). Usually I can revert to an older version of my source code to get my application working again. My questions is, is there a way to look at the stack area after the illegal breakpoint for clues? At a minimum, it would be nice to know which was the active task when the problem occurred. Thanks, Jim
Inspect the pxCurrentTCB variable in the debugger. This will tell you info on the currently running task. You can inspect pxCurrentTCB->pxStack to see the stack used by the task. The stack is set to all 0xa5 when the task is created so if there are no 0xa5 left then overflow has happened.
I also use HCS12 (GCC version), and the thing I notice most is that a stack has overflown. Remember that when a stack is overwritten, it is likely that you don’t notice until a task swap. The most useful thing I’ve done is to track where the bottom (start) of each stack is, so I can see which ones are running (or already ran) out of space.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.