On 05/13/2011 03:30 AM, Elad Yosef wrote:
Hi,
I have 1 UART on my target and whenever I have some crash in the
system I get some strings to the serial
something like:
$O4D6172732D4170706C69636174696F6E20666C6173682076616C69642072616E67652069732030
786231303030303030202D20307862313033666666660A#15
Use the attached program to decode this:
$ decode_gdb.py '$O4D6172732D4170706C69636174696F6E20666C6173682076616C69642072616E67652069732030786231303030303030202D20307862313033666666660A#15'
Mars-Application flash valid range is 0xb1000000 - 0xb103ffff
OR (for CYGSEM_HAL_USE_ROM_MONITOR = generic):
$T0b25:e4850080;1d:104b40a0;#86$T0b25:e4850080;1d:104b40a0;#86$T0b25:e4850080;1d
:104b40a0;#86$T0b25:e4850080;1d:104b40a0;#86$T0b25:e4850080;1d:104b40a0;#86$T0b2
5:e4850080;1d:104b40a0;#86$T0b25:e4850080;1d:104b40a0;#86$T0b25:e4850080;1d:104b
40a0;#86$T0b25:e4850080;1d:104b40a0;#86$T0b25:e4850080;1d:104b40a0;#86$T0b25:e48
50080;1d:104b40a0;#86$T0b25:e4850080;1d:104b40a0;
What I don't understand is how to parse this error string
It looks like some GDB stuff so my direction is that my
CYGSEM_HAL_USE_ROM_MONITOR is wrong.
What should I configure in the RedBoot and in the application?
If you're using RedBoot, I think you are probably configured correctly.
The problem is that some messages may be printed _before_ RedBoot takes
over the printing channel. This is such a message.
Better to just fix the problem :-)
--
------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
------------------------------------------------------------
#! /usr/bin/env python
import sys, os
def hex_chr(ch):
if ((ch >= '0') & (ch <= '9')):
return ord(ch) - ord('0')
if ((ch >= 'a') & (ch <= 'f')):
return ord(ch) - ord('a') + 0x0a
if ((ch >= 'A') & (ch <= 'F')):
return ord(ch) - ord('A') + 0x0A
def gdb_char(str):
_hex = (hex_chr(str[0]) << 4) | hex_chr(str[1])
return chr(_hex)
if len(sys.argv) == 1:
gdb_string = "$O5B6379675F6E65745F696E69745D20496E69743A206D62696E69742830783030303030303030290A#60"
gdb_string = "$O464C4153482049443A2030312032323765203232313320323230310A#98"
gdb_string = "$O68616C5F6D7063383378785F6932635F7075745F62797465732E3333370A#33"
else:
gdb_string = sys.argv[1]
human_string = ""
if gdb_string.find("$") < 0:
print "*** incomplete string '%s': try using \"'\" to quote it" % gdb_string
os._exit(1)
gdb_string = gdb_string[2:] # Strip $O
while gdb_string[0] != '#':
human_string += gdb_char(gdb_string[0:2])
gdb_string = gdb_string[2:]
print human_string
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
[Linux Embedded]
[U-Boot V2]
[Linux Kernel]
[Linux MIPS]
[Linux ARM]
[Linux for the Blind]
[Linux Resources]
[Photo]
[Yosemite]
[ISDN Cause Codes]
[ECOS Home]
[Site Home]