Re: Help with CYGSEM_HAL_USE_ROM_MONITOR

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


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]

Add to Google Powered by Linux