TI E2E Community
Code Composer Studio
Code Composer Forum
How to do the core dump for C28x in case of crash
Currently I am trying to handle the NMI and ILLEGAL trap process on 28335 which runs SysBios 6.32.05.54.
I want to dump the system stack and the task stack information so we can do the off line analysis to know where we crash, and the snap shot of each task.
The following link just show us how to do the analysis, but I have no idea about how to generate the dump data for 28335 with SysBios 6.32.05.54
I was able to copy some register data from within the CCS register view, however it's not in the same format as shown in the ExampleCrashDump.txt file:
PC 0x00700000 Core Register CLK 0x00000000 Core Register SP 0xC30CE320 Core Register FP 0xC30CE320 Core Register A0 0xC30B7C8C Core Register A1 0x00000000 Core Register A2 0xC30C0080 Core Register A3 0xFFFFFF16 Core Register A4 0xC30CE7F8 Core Register A5 0x00000018 Core Register A6 0xFFFFFFFF Core Register A7 0xC30CD6C0 Core Register A8 0x000000E7 Core Register A9 0xC30CE2FC Core Register A10 0x00000000 Core Register A11 0x00000000 Core Register A12 0x00000000 Core Register A13 0x00000000 Core Register A14 0x00000000 Core Register A15 0x00000000 Core Register A16 0x00000000 Core Register A17 0x00000000 Core Register A18 0xC30A9658 Core Register A19 0x00000000 Core Register A20 0x85C02904 Core Register
I got the above by just selecting registers in the register view and hitting "ctrl-c" on the keyboard to copy.
But, I suspect there's a better way to get it. Let's see what the CCS team says; I'll have this forum reposted there.
What I want to do is to do the core dump on chip without Jtag and CCS connected, and dump data can either be stored in Flash or sent out by communication channel.
So I can do the off-line analysis by using your DebugServer tool.
The registers are memory mapped, so you can read them from within your code in order to store their values elsewhere.
Are you trying to do this for a system that is already deployed in the field?
I am trying to do this in a pre-study system, in which several task was created, and
in case NMI or ILLEGAL interrupt was triggered, I want to dump out the enough CPU register and task stack information,
so I can do the off line backtrace analysis, and know where each task is running just before crash.
You have talked about CPU register dump.
but How to handle the task stack?
You can access a Task's instance information, including its stack pointer and size using the Task_stat() API.
Please refer to the SYS/BIOS API guide (available under your CCS help) for the ti.sysbios.knl.Task module for more information.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.