Re: Help with building gdb with BDM support for the Coldfire
"Mark Giacobbe" <[email protected]> Thu, 22 May 2008 08:45:13 -0400
| Newsgroups | gmane.comp.hardware.motorola.microcontrollers.coldfire |
|---|---|
| Message-ID | <[email protected]> |
Using the attached script, although I am still testing, it seems that my
debugging system is working. My memory issues are gone, and I can access
the correct memory locations, with the correct access sizes.
I had to add the
monitor bdm-ctl-set
command for the mbar and rambar addresses. The old way of "set $mbar" did
not work with the new gdbserver.
Later this week, or beginning of next week, I will download CoLiLo to my
target and see if it works. I will then test the breakpoints, watches, etc.
Thanks for your help
Mark
On Wed, May 21, 2008 at 9:10 PM, Chris Johns <[email protected]>
wrote:
> Hi Mark,
>
> I am starting to suspect the register cache again. I have someone else with
> a problem related to this. Looks like I need to fix it. I will see what I
> can do.
>
> Regards
> Chris
>
> Mark Giacobbe wrote:
>
>> Well I got your tarball and it seemed to work, but I still couldn't get
>> the memory stuff to work correctly. So going back and re-re-re-reading the
>> README files, I realized that my gdb script was still of the old version,
>> and I wasn't obvious to me that I had to change my script. I attached the
>> new gdb script below for everyone's reference.
>>
>> #
>> # gdb script for the MCF5307
>> #
>>
>> define addresses
>>
>> echo \nSetup internal registers\n
>>
>> set $mbar = 0x10000001
>> # Needed for the new bdm gdbserver
>> monitor bdm-ctl-set 0xc0f 0x10000001
>> set $rsr = $mbar - 1 + 0x000
>> set $sypcr = $mbar - 1 + 0x001
>> set $swivr = $mbar - 1 + 0x002
>> set $swsr = $mbar - 1 + 0x003
>> set $simr = $mbar - 1 + 0x003
>> set $par = $mbar - 1 + 0x004
>> set $irqpar= $mbar - 1 + 0x006
>> set $pllcr = $mbar - 1 + 0x008
>> set $mpark = $mbar - 1 + 0x00c
>> set $ipr = $mbar - 1 + 0x040
>> set $imr = $mbar - 1 + 0x044
>>
>> set $icr0 = $mbar - 1 + 0x04c
>> set $icr1 = $mbar - 1 + 0x04d
>> set $icr2 = $mbar - 1 + 0x04e
>> set $icr3 = $mbar - 1 + 0x04f
>> set $icr4 = $mbar - 1 + 0x050
>> set $icr5 = $mbar - 1 + 0x051
>> set $icr6 = $mbar - 1 + 0x052
>> set $icr7 = $mbar - 1 + 0x053
>> set $icr8 = $mbar - 1 + 0x054
>> set $icr9 = $mbar - 1 + 0x055
>> set $icr10 = $mbar - 1 + 0x056
>> set $icr11 = $mbar - 1 + 0x057
>>
>> set $csar0 = $mbar - 1 + 0x080
>> set $csmr0 = $mbar - 1 + 0x084
>> set $cscr0 = $mbar - 1 + 0x08a
>> set $csar1 = $mbar - 1 + 0x08c
>> set $csmr1 = $mbar - 1 + 0x090
>> set $cscr1 = $mbar - 1 + 0x096
>> set $csar2 = $mbar - 1 + 0x098
>> set $csmr2 = $mbar - 1 + 0x09c
>> set $cscr2 = $mbar - 1 + 0x0a2
>> set $csar3 = $mbar - 1 + 0x0a4
>> set $csmr3 = $mbar - 1 + 0x0a8
>> set $cscr3 = $mbar - 1 + 0x0ae
>> set $csar4 = $mbar - 1 + 0x0b0
>> set $csmr4 = $mbar - 1 + 0x0b4
>> set $cscr4 = $mbar - 1 + 0x0ba
>> set $csar5 = $mbar - 1 + 0x0bc
>> set $csmr5 = $mbar - 1 + 0x0c0
>> set $cscr5 = $mbar - 1 + 0x0c4
>> set $csar6 = $mbar - 1 + 0x0c6
>> set $csmr6 = $mbar - 1 + 0x0d0
>> set $cscr6 = $mbar - 1 + 0x0d2
>> set $csar7 = $mbar - 1 + 0x0d4
>> set $csmr7 = $mbar - 1 + 0x0d8
>> set $cscr7 = $mbar - 1 + 0x0de
>>
>> set $dcr = $mbar - 1 + 0x100
>> set $dacr0 = $mbar - 1 + 0x108
>> set $dmr0 = $mbar - 1 + 0x10c
>> set $dacr1 = $mbar - 1 + 0x110
>> set $dmr1 = $mbar - 1 + 0x114
>>
>> set $tmr1 = $mbar - 1 + 0x140
>> set $trr1 = $mbar - 1 + 0x144
>> set $tcr1 = $mbar - 1 + 0x148
>> set $tcn1 = $mbar - 1 + 0x14C
>> set $ter1 = $mbar - 1 + 0x151
>> set $tmr2 = $mbar - 1 + 0x180
>> set $trr2 = $mbar - 1 + 0x184
>> set $tcr2 = $mbar - 1 + 0x188
>> set $tcn2 = $mbar - 1 + 0x18C
>> set $ter2 = $mbar - 1 + 0x191
>>
>> set $paddr = $mbar - 1 + 0x244
>> set $padat = $mbar - 1 + 0x248
>>
>> end
>>
>> #
>> # Setup RAMBAR for the internal SRAM.
>> #
>>
>> define setup-sram
>>
>> echo \nSetup internal SRAM\n
>>
>> set $rambar = 0x20000001
>> # Needed for the new bdm gdbserver
>> monitor bdm-ctl-set 0xc04 0x20000001
>> end
>>
>>
>> #
>> # Setup Parallel I/O ports...
>> #
>>
>> define setup-pp
>>
>> echo \nSetup GPIO\n
>>
>> set *((unsigned short *) $par) = 0x0100
>> set *((unsigned short *) $paddr) = 0xb0ec
>> set *((unsigned short *) $padat) = 0x76fd
>> end
>>
>>
>> #
>> # Setup chip selects...
>> #
>>
>> define setup-cs
>>
>> echo \nSetup Chip Selects\n
>>
>> # CS1
>> set *((unsigned short *) $csar1) = 0xA080
>> set *((unsigned long *) $csmr1) = 0x00010047
>> set *((unsigned short *) $cscr1) = 0x1540
>>
>> # CS2
>> set *((unsigned short *) $csar2) = 0xA004
>> set *((unsigned long *) $csmr2) = 0x00000047
>> set *((unsigned short *) $cscr2) = 0x2940
>>
>> # CS3
>> set *((unsigned short *) $csar3) = 0x0070
>> set *((unsigned long *) $csmr3) = 0x00070047
>> set *((unsigned short *) $cscr3) = 0x0970
>>
>> # CS4
>> set *((unsigned short *) $csar4) = 0xA090
>> set *((unsigned long *) $csmr4) = 0x00010047
>> set *((unsigned short *) $cscr4) = 0x1DA0
>>
>> # CS5
>> set *((unsigned short *) $csar5) = 0xA000
>> set *((unsigned long *) $csmr5) = 0x00010047
>> set *((unsigned short *) $cscr5) = 0x0D80
>>
>> # CS6
>> set *((unsigned short *) $csar6) = 0xA070
>> set *((unsigned long *) $csmr6) = 0x00010047
>> set *((unsigned short *) $cscr6) = 0x0940
>>
>> # CS7
>> set *((unsigned short *) $csar7) = 0xA0C0
>> set *((unsigned long *) $csmr7) = 0x00030047
>> set *((unsigned short *) $cscr7) = 0x0980
>>
>> # CS0
>> set *((unsigned short *) $csar0) = 0x0000
>> set *((unsigned long *) $csmr0) = 0x001f0047
>> set *((unsigned short *) $cscr0) = 0x0500
>>
>> end
>>
>> #
>> # Set up SDRAM
>> #
>> define setup-sdram
>>
>> echo \nSetup SDRAM\n
>>
>> # Power up sequence
>> set *((unsigned short *) $dcr) = 0x8002
>> set *((unsigned long *) $dacr0) = 0xB0001404
>> set *((unsigned long *) $dmr0) = 0x01FC0001
>> # Pre-charge sequence
>> set *((unsigned long *) $dacr0) = 0xB000140C
>> set *((unsigned long *) 0xB0000000) = 0xBEADDEED
>> # Refresh Sequence
>> echo \n SDRAM refresh\n
>> # Mode register init sequence
>> set *((unsigned long *) $dacr0) = 0xB0009444
>> set *((unsigned long *) 0xB0000400) = 0xB0009444
>> set *((unsigned long *) $dacr0) = 0xB0009404
>>
>> end
>>
>> #
>> # Some useful tools
>> #
>> define set8
>> set *((unsigned char*) $arg0) = $arg1
>> end
>>
>> document set8
>> Set 8bit memory: set8 ADDRESS VALUE
>> end
>>
>> define set16
>> set *((unsigned short*) $arg0) = $arg1
>> end
>>
>> document set16
>> Set 16bit memory: set16 ADDRESS VALUE
>> end
>>
>> define set32
>> set *((unsigned long*) $arg0) = $arg1
>> end
>>
>> document set32
>> Set 32bit memory: set32 ADDRESS VALUE
>> end
>>
>> define d8
>> x /$arg1b $arg0
>> end
>>
>> document d8
>> Dump 8bit memory: d8 ADDRESS LENGTH
>> end
>>
>> define d16
>> x /$arg1h $arg0
>> end
>>
>> document d16
>> Dump 16bit memory: d16 ADDRESS LENGTH
>> end
>>
>> define d32
>> x /$arg1w $arg0
>> end
>>
>> document d32
>> Dump 32bit memory: d32 ADDRESS LENGTH
>> end
>>
>>
>> #
>> # Init the target...
>> #
>> target remote | m68k-bdm-gdbserver pipe /dev/bdmcf0
>>
>> echo\nResetting uP\n
>> monitor bdm-reset
>> addresses
>> setup-sram
>> setup-cs
>> setup-pp
>> setup-sdram
>>
>> set print pretty
>> set print asm-demangle
>> display/i $pc
>> select-frame 0
>>
>> So is there any other "gotcha" that I have to look out for in my script?
>>
>> I will continue testing, but things are looking a lot better then they
>> were.
>>
>> I am also documenting all of this. When I am finished, I will post it
>> here, and if you want to Chris, you can include it in the distro for the
>> bdm.
>>
>> Chris - feel free to include the above script in the distro for the bdm.
>>
>>
>> Thanks for all of your help!
>> Mark
>>
>> On Tue, May 20, 2008 at 2:40 AM, Chris Johns <[email protected]<mailto:
>> [email protected]>> wrote:
>>
>> X-SpamDetect-Info: ------------- Start ASpam results ---------------
>> X-SpamDetect-Info: This message may be spam. This message BODY has
>> been altered to show you the spam information X-SpamDetect: *****:
>> 5.664000 URL contains username and (optional) password=1.3,
>> From3consonants=0.3, URL contains username=2.9, Uses non-standard
>> port number for HTTP=1.3, X-Verify-SMTP present=0.6, Aspam=-0.8
>>
>> X-SpamDetect-Info: ------------- End ASpam results -----------------
>>
>> Mark Giacobbe wrote:
>>
>> Hi Chris -
>>
>> Did you find anything that I missed?
>>
>>
>> I do not think so. I have not test the 5307 code.
>>
>> And is there a trick to using cvs for sourceforge? I tried
>> several times, and keep getting:
>>
>> [pcmadm@localhost ~]$ cvs
>> -d:pserver:[email protected]:/cvsroot/bdm login
>> Logging in to
>> :pserver:[email protected]:2401/cvsroot/bdm
>> <http://pserver:[email protected]:2401/cvsroot/bdm
>> >
>> <http://pserver:[email protected]:2401/cvsroot/bdm
>> >
>> CVS password:
>> cvs [login aborted]: connect to [bdm.cvs.sourceforge.net
>> <http://bdm.cvs.sourceforge.net>
>> <http://bdm.cvs.sourceforge.net>]:2401 failed: Connection timed
>> out
>>
>> [pcmadm@localhost ~]$
>>
>> I hit "ENTER" for the password.
>>
>>
>> Do you have a firewall blocking this port ?
>>
>> I have uploaded a tarball of my CVS work area here:
>>
>> http://www.rtems.org/ftp/pub/rtems/people/chrisj/bdm/
>>
>> Can you try this code and let me know how it goes ?
>>
>>
>> Regards
>> Chris
>> ---
>> [email protected] <mailto:[email protected]>
>> Send a post to the list.
>> [email protected] <mailto:[email protected]>
>> Join the list.
>> [email protected] <mailto:[email protected]>
>> Join the list in digest mode.
>> [email protected] <mailto:[email protected]>
>> Leave the list.
>>
>>
>> [email protected] Send a post to the list. [email protected] the list.
>> [email protected] Join the list in digest mode.
>> [email protected] Leave the list.
>>
> ---
> [email protected] Send a post to the list.
> [email protected] Join the list.
> [email protected] Join the list in digest mode.
> [email protected] Leave the list.
>
>