This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PowerPC debugging with Macraigor Raven


Hello,

I am having some trouble with setting and responding to breakpoints while
attempting to port eCos over to a MPC860 based platform using a Macraigor
Raven BDM pod.  I can load  insight and get the board initialized so that I
have full access to the SDRAM, but when I set a breakpoint after downloading
the code, I cannot break at that location.  The code is properly downloaded
and I can do some tricks to get breakpoints to work, but it is not at all
usable.   The main problem is that I do not have an Ethernet port available
for GDB/Redboot and serial debugging would be far too time consuming to be
practical.

I have followed all the directions from Macraigor (both their GCC/Insight
images as well as ones I built myself).  I have also seen most the emails
related to this and it appears some people are using the Raven, but I must
be missing some special settings in my ECC file or in the gdb init script.
Using an Xscale based JTAG debugger from Macraigor (with libremote) on a
different project seem to work with respect to debugging eCos based
applications, so I feel certain that there may be an easy way to get this
done.

If anyone should happen to know this solution, I would appreciate it.  It
looks like my only two solutions is to can eCos/gnu or to covert my ELF file
to DWARF and try to debug under Green Hill's MULTI environment.

	- Chip Boling


Attached below is a edited version of my gdb init file in case it is of
interest or help with this problem.  If anyone is using the Raven pod
successfully, a copy of your init script as well as your ECC file would be
helpful.  I may just be missing some checkmark or option.

###################  begin GDB script  #################

set endian big
target remote localhost:8888

# We need reset to do; system reset, freeze timers,
# and single instruction execution.
#
monitor reset
monitor endian big

# set the IMMR (spr638)

monitor spr638 = 0xff000000

# turn off the watchdog timer --- disable always, enable
# bus monitor timeout with maximum time setting
#
# to disable watchdog   ->  0xffffff88
# for 2.6 second timeout->  0xffffff8d
# for 2 second timeout  ->  0xbebcff8d
# for 1.5 second timeout->  0x8f0dff8d
# for 1 second timeout  ->  0x5f5eff8d
# for 500 mS timeout    ->  0x2fafff8d
# for 250 mS timeout    ->  0x17d7ff8d
# for 100 mS timeout    ->  0x0989ff8d
#
monitor long 0xff000004 0xffffff88

# disable the cache (ic_cst = 560) (dc_cst = spr 568)

monitor spr560 = 0x04000000
monitor spr568 = 0x04000000

# Place the processor in its fundamental operating mode (deals with internal
pipeline, etc)
# ISCT_SER = 0:  serialized with instruction fetch show cycles
# ISCT_SER = 3:  serialized with no instruction fetch show cycles
# ISCT_SER = 7:  non-serialized with no instruction fetch show cycles
(normal mode)
# (ictrl = spr158)

monitor spr158 = 0x00000007

# Program the SIUMCR:  Data Show Cycles disabled

monitor long 0xff000000 0x00200400

# Program clock-related registers
# The Multiplication Factor must be changed separately.  It
# will not work when changed within this script. It is only
# here for completness.  The write to the SCCR does work

monitor long 0xff000280 0x01800000
monitor long 0xff000284 0x00400000

# TBD comment out the following code in order to make the setup code do it
#     later on.
# Program miscellaneous SIU registers

monitor long 0xff000320 0x55ccaa33
monitor long 0xff000324 0x55ccaa33
monitor long 0xff000328 0x55ccaa33
monitor long 0xff00032c 0x55ccaa33
monitor long 0xff000340 0x55ccaa33
monitor long 0xff000344 0x55ccaa33
monitor short 0xff000240 0x0080
monitor short 0xff000220 0x00c0
monitor short 0xff000200 0x00c0

# Setup UPM tables in order to initialize SDRAM

# ***  Note  MDR, MCR, and MAR code deleted here to make this posting
#            a little shorter.  Also commented out the BR/OR register
#		     settings for the same reason.

########################################################################
# load our file

load   c:/cygwin/tmp/ecosTest/hello.elf
symbol c:/cygwin/tmp/ecosTest/hello.elf

########################################################################
# set up some breakpoints

b main
b hal_hardware_init



-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]