Clone of official tools

Revision:
43:2a7da56ebd24
diff -r 2cf3f29fece1 -r 2a7da56ebd24 debug_tools/crash_log_parser/README.md
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debug_tools/crash_log_parser/README.md	Tue Sep 25 13:43:09 2018 -0500
@@ -0,0 +1,79 @@
+## Crash Log Parser Tool
+This post-processing tool can be used to parse crash log generated by Mbed-OS when an exception happens. 
+
+## Capturing crash log
+When an exception happens Mbed-OS will print out the crash information to STDOUT.
+The crash information contains register context at the time exception and current threads in the system.
+The information printed out to STDOUT will be similar to below. Registers captured depends on specific
+Cortex-M core you are using. For example, if your target is using Cortex-M0, some registers like 
+MMFSR, BFSR, UFSR may not be available and will not appear in the crash log.
+
+++ MbedOS Fault Handler ++
+
+FaultType: HardFault
+
+Context:
+R0   : 0000AAA3
+R1   : 20002070
+R2   : 00009558
+R3   : 00412A02
+R4   : E000ED14
+R5   : 00000000
+R6   : 00000000
+R7   : 00000000
+R8   : 00000000
+R9   : 00000000
+R10  : 00000000
+R11  : 00000000
+R12  : 0000BCE5
+SP   : 20002070
+LR   : 00009E75
+PC   : 00009512
+xPSR : 01000000
+PSP  : 20002008
+MSP  : 2002FFD8
+CPUID: 410FC241
+HFSR : 40000000
+MMFSR: 00000000
+BFSR : 00000000
+UFSR : 00000100
+DFSR : 00000008
+AFSR : 00000000
+SHCSR: 00000000
+
+Thread Info:
+Current:
+State: 00000002 EntryFn: 0000ADF5 Stack Size: 00001000 Mem: 20001070 SP: 20002030
+Next:
+State: 00000002 EntryFn: 0000ADF5 Stack Size: 00001000 Mem: 20001070 SP: 20002030
+Wait Threads:
+State: 00000083 EntryFn: 0000AA1D Stack Size: 00000300 Mem: 20000548 SP: 200007D8
+Delay Threads:
+Idle Thread:
+State: 00000001 EntryFn: 00009F59 Stack Size: 00000200 Mem: 20000348 SP: 20000508
+
+-- MbedOS Fault Handler --
+
+
+To generate more information copy and save this crash information to a text file and run the crash_log_parser.py tool as below.
+NOTE: Make sure you copy the section with text "MbedOS Fault Handler" as the this tool looks for that header.
+
+## Running the Crash Log Parser
+crash_log_parser.py <Path to Crash log> <Path to Elf/Axf file of the build> <Path to Map file of the build>
+For example:
+crashlogparse.py crash.log C:\MyProject\BUILD\k64f\arm\mbed-os-hf-handler.elf C:\MyProject\BUILD\k64f\arm\mbed-os-hf-handler.map
+
+An example output from running crash_log_parser is shown below.
+
+Parsed Crash Info:
+        Crash location = zero_div_test() [0000693E]
+        Caller location = $Super$$main [00009E99]
+        Stack Pointer at the time of crash = [20001CC0]
+        Target/Fault Info:
+                Processor Arch: ARM-V7M or above
+                Processor Variant: C24
+                Forced exception, a fault with configurable priority has been escalated to HardFault
+                Divide by zero error has occurred
+
+Done parsing...
+