EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

Port 1 of LPC 2148 completely switched to GPIO does not work.

Started by "joerg.nagel" June 28, 2006
Just for a test try writing zero to PINSEL2, which is the way
my software is running, even though it is not correct.

Have you checked to make sure your FIO1 registers are defined to
be at the correct addresses? I only seem to use FIO1SET, and
FIO1CLR to set and clear bits, I don't use FIO1PIN, so that may be
an issue.

If you don't do anything out of reset, and don't have anything connected
to P1.20, then P1.16 to P1.25, should be GPIO. Have you set the
FIO1DIR register properly for the pins you want as outputs? Remember
that if you want P1.16 as an output (for example), you have to set bit 16,
or use the FIO1DIR2 register, and set bit 0.

Mike
> -----Original Message-----
> From: l...
> [mailto:l...]On Behalf
> Of bobtransformer
> Sent: Tuesday, September 12, 2006 9:02 PM
> To: l...
> Subject: [lpc2000] Re: Port 1 of LPC 2148 completely switched to GPIO
> does not work.
>
> Well... I've pulled up P1.20 (it was at GND) and
> ANDed in bits 4-5 of PINSEL2 and STILL can't get
> Port 1 GPIO to go high.
>
> Damn !
>
> boB
> --- In l..., "bobtransformer" wrote:
> >
> >
> > Yes, you're right. I read that note many times now and it went right
> > over me... So I would ignore their cut and pasted (most likely)
> > generic reserved bits note and use the warning note instead. I
> would
> > include bits 4 and 5 too:
> >
> > (PINSEL2 = (PINSEL2 & 0x0000003F) | value)
> >
> > boB
> >
> >
> >
> >
> > --- In l..., "Michael Anton" wrote:
> > >
> > > Except that you are ignoring the note about bits 4 and 5,
> > > which should not be written to zero, and you still can't
> > > trust the read value, so you don't know if you should
> > > write them to one.
> > >
> > > Mike
> > >
> > >
> > > > -----Original Message-----
> > > > From: l...
> > > > [mailto:l...]On Behalf
> > > > Of bobtransformer
> > > > Sent: Tuesday, September 12, 2006 7:47 PM
> > > > To: l...
> > > > Subject: [lpc2000] Re: Port 1 of LPC 2148 completely switched
> to
> > GPIO
> > > > does not work.
> > > >
> > > >
> > > >
> > > >
> > > > WRITING 0's to reserved bits is fine. It's the READING of the
> > > > reserved bits that cannot be trusted. Anding to mask them off
> > > > should be just fine.
> > > >
> > > >
> > > > Quote from manual:
> > > > Reserved, user software should not write ones to
> > > > reserved bits. The value read from a reserved bit is
> > > > not defined.
> > > >
> > > > boB
> > > >
> > > >
> > > > --- In l..., "Michael Anton" wrote:
> > > > >
> > > > >
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: l...
> > > > > > [mailto:l...]On Behalf
> > > > > > Of bobtransformer
> > > > > > Sent: Tuesday, September 12, 2006 6:55 PM
> > > > > > To: l...
> > > > > > Subject: [lpc2000] Re: Port 1 of LPC 2148 completely
> switched
> > to
> > > > GPIO
> > > > > > does not work.
> > > > > >
> > > > > >
> > > > > >
> > > > > > Using RMW (PINSEL2 = (PINSEL2 & 0x0F) | value)
> > > > > > should take care of the high reserved bits. I'm not doing
> > the
> > > > AND
> > > > > > though... Now that you mention this, I think I better do it
> > too.
> > > > > >
> > > > > > I am using the JTAG port working though so don't want to
> clear
> > > > > > bit 2. Maye I should try resetting it and see if my JTAG
> > debug
> > > > > > goes away.
> > > > > >
> > > > > > I will pull up that P1.20 bit too and see if it fixes P1.
> > > > > >
> > > > > > boB
> > > > > >
> > > > >
> > > > > The catch is that even bits 4 and 5 are reserved, so how do
> you
> > > > handle
> > > > > them? You are not supposed to write them to zeros if they
> are
> > 1,
> > > > > reserved bits are not to be written to 1, and the read value
> is
> > > > > undefined.
> > > > >
> > > > > Mike
> > > > >
> > > > >
> > > > > >
> > > > > > --- In l..., "Michael Anton"
> > wrote:
> > > > > > >
> > > > > >
> > > > > > > On the design I have that uses Port 1, I have a pullup on
> > P1.20,
> > > > > > > though as I understand it, this should not be necessary.
> > In
> > > > > > software,
> > > > > > > I write 0 to PINSEL2. It turns out that this is a small
> > bug
> > > > as, I
> > > > > > had
> > > > > > > intended to leave the debug port active, but didn't,
> which
> > I
> > > > just
> > > > > > > discovered in writing this. Maybe this is what makes my
> > design
> > > > > > work.
> > > > > > >
> > > > > > > It is interesting to read the description of PINSEL2 in
> the
> > most
> > > > > > > recent copy of the User's Manual. It states:
> > > > > > >
> > > > > > > "Warning: use read-modify-write operation when accessing
> > PINSEL2
> > > > > > > register. Accidental write of 0 to bit 2 and/or bit 3
> > results in
> > > > > > > loss of debug and/or trace functionality! Changing of
> > either bit
> > > > > > > 4 or bit 5 from 1 to 0 may cause an incorrect code
> > execution!"
> > > > > > >
> > > > > > > But, then in the description of the reserved bits which
> are
> > bits
> > > > > > > 0, 1, and 4 to 31, the manual states:
> > > > > > >
> > > > > > > "Reserved, user software should not write ones
> > > > > > > to reserved bits. The value read from a reserved
> > > > > > > bit is not defined."
> > > > > > >
> > > > > > > So, can anybody tell me how we are to preserve the bits 4
> > and 5,
> > > > > > > without reading them (which is undefined), and without
> > writing
> > > > > > > a one or a zero? The info here is rather contradictory.
> > > > Writing
> > > > > > > bits 4 and 5 from a 1 to a 0 can cause problems, but
> > reserved
> > > > bits
> > > > > > > are not to have a 1 written to them, and the reading of
> > > > reserved
> > > > > > bits
> > > > > > > is undefined. Perhaps the Philips/NXP crew can shed some
> > light
> > > > on
> > > > > > this.
> > > > > > >
> > > > > > > Thanks,
> > > > > > >
> > > > > > > Mike
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >

An Engineer's Guide to the LPC2100 Series

> -----Original Message-----
> From: l...
> [mailto:l...]On Behalf
> Of bobtransformer
> Sent: Tuesday, September 12, 2006 8:52 PM
> To: l...
> Subject: [lpc2000] Re: Port 1 of LPC 2148 completely switched to GPIO
> does not work.
>
> Yes, you're right. I read that note many times now and it went right
> over me... So I would ignore their cut and pasted (most likely)
> generic reserved bits note and use the warning note instead. I would
> include bits 4 and 5 too:
>
> (PINSEL2 = (PINSEL2 & 0x0000003F) | value)
>
> boB
>

I believe this should be:
PINSEL2 = (PINSEL2 & 0x00000030) | value
as you don't want to keep bits 0 and 1, and bits 2 and 3 need to be
cleared befor you set them.

Another thing that is maybe different, is that I treat PINSEL2 as
an 8 bit wide register, rather than 32, so that I am not writing
to the upper 24 bits at all.

Mike
Have you enabled FIO for port 1 in the SCS register?

Mike
> -----Original Message-----
> From: l...
> [mailto:l...]On Behalf
> Of bobtransformer
> Sent: Tuesday, September 12, 2006 9:15 PM
> To: l...
> Subject: [lpc2000] Re: Port 1 of LPC 2148 completely switched to GPIO
> does not work.
>
> Well, I ~may~ have hurt P1.20. I pulled it up to 3.3V, but forgot
> to include a resistor. It looks like P1.20 was being an output
> instead of input, however FIO1DIR2 has it as an input in my
> initialization. It doesn't go high with a 10K Ohm pullup but
> input power supply current does go up ever so slightly if
> I connect to 3.3V. It might be current limited enough that
> it's OK. Don't know.
>
> SO why do they even include FIO1DIR0 and FIO1DIR1 registers
> in these parts without those port 1 GPIO pins anyway ??
>
> boB
>
> --- In l..., "bobtransformer" wrote:
> >
> >
> > Well... I've pulled up P1.20 (it was at GND) and
> > ANDed in bits 4-5 of PINSEL2 and STILL can't get
> > Port 1 GPIO to go high.
> >
> > Damn !
> >
> > boB
> >
> >
> > --- In l..., "bobtransformer" wrote:
> > >
> > >
> > > Yes, you're right. I read that note many times now and it went
> right
> > > over me... So I would ignore their cut and pasted (most likely)
> > > generic reserved bits note and use the warning note instead. I
> > would
> > > include bits 4 and 5 too:
> > >
> > > (PINSEL2 = (PINSEL2 & 0x0000003F) | value)
> > >
> > > boB
> > >
> > >
> > >
> > >
> > > --- In l..., "Michael Anton" wrote:
> > > >
> > > > Except that you are ignoring the note about bits 4 and 5,
> > > > which should not be written to zero, and you still can't
> > > > trust the read value, so you don't know if you should
> > > > write them to one.
> > > >
> > > > Mike
> > > >
> > > >
> > > > > -----Original Message-----
> > > > > From: l...
> > > > > [mailto:l...]On Behalf
> > > > > Of bobtransformer
> > > > > Sent: Tuesday, September 12, 2006 7:47 PM
> > > > > To: l...
> > > > > Subject: [lpc2000] Re: Port 1 of LPC 2148 completely switched
> > to
> > > GPIO
> > > > > does not work.
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > WRITING 0's to reserved bits is fine. It's the READING of
> the
> > > > > reserved bits that cannot be trusted. Anding to mask them off
> > > > > should be just fine.
> > > > >
> > > > >
> > > > > Quote from manual:
> > > > > Reserved, user software should not write ones to
> > > > > reserved bits. The value read from a reserved bit is
> > > > > not defined.
> > > > >
> > > > > boB
> > > > >
> > > > >
> > > > > --- In l..., "Michael Anton"
> wrote:
> > > > > >
> > > > > >
> > > > > >
> > > > > > > -----Original Message-----
> > > > > > > From: l...
> > > > > > > [mailto:l...]On Behalf
> > > > > > > Of bobtransformer
> > > > > > > Sent: Tuesday, September 12, 2006 6:55 PM
> > > > > > > To: l...
> > > > > > > Subject: [lpc2000] Re: Port 1 of LPC 2148 completely
> > switched
> > > to
> > > > > GPIO
> > > > > > > does not work.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Using RMW (PINSEL2 = (PINSEL2 & 0x0F) | value)
> > > > > > > should take care of the high reserved bits. I'm not
> doing
> > > the
> > > > > AND
> > > > > > > though... Now that you mention this, I think I better do
> it
> > > too.
> > > > > > >
> > > > > > > I am using the JTAG port working though so don't want to
> > clear
> > > > > > > bit 2. Maye I should try resetting it and see if my
> JTAG
> > > debug
> > > > > > > goes away.
> > > > > > >
> > > > > > > I will pull up that P1.20 bit too and see if it fixes P1.
> > > > > > >
> > > > > > > boB
> > > > > > >
> > > > > >
> > > > > > The catch is that even bits 4 and 5 are reserved, so how do
> > you
> > > > > handle
> > > > > > them? You are not supposed to write them to zeros if they
> > are
> > > 1,
> > > > > > reserved bits are not to be written to 1, and the read
> value
> > is
> > > > > > undefined.
> > > > > >
> > > > > > Mike
> > > > > >
> > > > > >
> > > > > > >
> > > > > > > --- In l..., "Michael Anton"
> > > wrote:
> > > > > > > >
> > > > > > >
> > > > > > > > On the design I have that uses Port 1, I have a pullup
> on
> > > P1.20,
> > > > > > > > though as I understand it, this should not be
> necessary.
> > > In
> > > > > > > software,
> > > > > > > > I write 0 to PINSEL2. It turns out that this is a
> small
> > > bug
> > > > > as, I
> > > > > > > had
> > > > > > > > intended to leave the debug port active, but didn't,
> > which
> > > I
> > > > > just
> > > > > > > > discovered in writing this. Maybe this is what makes
> my
> > > design
> > > > > > > work.
> > > > > > > >
> > > > > > > > It is interesting to read the description of PINSEL2 in
> > the
> > > most
> > > > > > > > recent copy of the User's Manual. It states:
> > > > > > > >
> > > > > > > > "Warning: use read-modify-write operation when
> accessing
> > > PINSEL2
> > > > > > > > register. Accidental write of 0 to bit 2 and/or bit 3
> > > results in
> > > > > > > > loss of debug and/or trace functionality! Changing of
> > > either bit
> > > > > > > > 4 or bit 5 from 1 to 0 may cause an incorrect code
> > > execution!"
> > > > > > > >
> > > > > > > > But, then in the description of the reserved bits which
> > are
> > > bits
> > > > > > > > 0, 1, and 4 to 31, the manual states:
> > > > > > > >
> > > > > > > > "Reserved, user software should not write ones
> > > > > > > > to reserved bits. The value read from a reserved
> > > > > > > > bit is not defined."
> > > > > > > >
> > > > > > > > So, can anybody tell me how we are to preserve the bits
> 4
> > > and 5,
> > > > > > > > without reading them (which is undefined), and without
> > > writing
> > > > > > > > a one or a zero? The info here is rather
> contradictory.
> > > > > Writing
> > > > > > > > bits 4 and 5 from a 1 to a 0 can cause problems, but
> > > reserved
> > > > > bits
> > > > > > > > are not to have a 1 written to them, and the reading of
> > > > > reserved
> > > > > > > bits
> > > > > > > > is undefined. Perhaps the Philips/NXP crew can shed
> some
> > > light
> > > > > on
> > > > > > > this.
> > > > > > > >
> > > > > > > > Thanks,
> > > > > > > >
> > > > > > > > Mike
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> I believe this should be:
> PINSEL2 = (PINSEL2 & 0x00000030) | value
> as you don't want to keep bits 0 and 1, and bits 2 and 3 need to be
> cleared befor you set them.
Yes, you're right there !

And SCS bits are correct. I just changed the chip.
Now some FIO1 bits aren't setting. 1 at least...
WIll try setting PINSEL2 to 0 now.

No I won't ! My JTAG's broken now.

Thanks for the help, Michael.

boB

--- In l..., "Michael Anton" wrote:
>
> > -----Original Message-----
> > From: l...
> > [mailto:l...]On Behalf
> > Of bobtransformer
> > Sent: Tuesday, September 12, 2006 8:52 PM
> > To: l...
> > Subject: [lpc2000] Re: Port 1 of LPC 2148 completely switched to
GPIO
> > does not work.
> >
> >
> >
> > Yes, you're right. I read that note many times now and it went
right
> > over me... So I would ignore their cut and pasted (most likely)
> > generic reserved bits note and use the warning note instead. I
would
> > include bits 4 and 5 too:
> >
> > (PINSEL2 = (PINSEL2 & 0x0000003F) | value)
> >
> > boB
> >
> >
> > I believe this should be:
> PINSEL2 = (PINSEL2 & 0x00000030) | value
> as you don't want to keep bits 0 and 1, and bits 2 and 3 need to be
> cleared befor you set them.
>
> Another thing that is maybe different, is that I treat PINSEL2 as
> an 8 bit wide register, rather than 32, so that I am not writing
> to the upper 24 bits at all.
>
> Mike
>
I looked through a couple of Philips applications that used
P1.16 through P1.23 and I noticed that they never used
PINSEL2 and they accessed those bits through the
FIO1CLR 32 bit register and FIO1DIR 32 bit register (or IO1CLR etc)
rather than the FIO1CLR2 or FIO1DIR2 8 bit methods.

Just an observation. I guess I'll try it this way myself
tonight to see if it makes any difference on my unit.

Comments welcomed... :)

boB

--- In l..., "bobtransformer" wrote:
> > I believe this should be:
> > PINSEL2 = (PINSEL2 & 0x00000030) | value
> > as you don't want to keep bits 0 and 1, and bits 2 and 3 need to
be
> > cleared befor you set them.
> Yes, you're right there !
>
> And SCS bits are correct. I just changed the chip.
> Now some FIO1 bits aren't setting. 1 at least...
> WIll try setting PINSEL2 to 0 now.
>
> No I won't ! My JTAG's broken now.
>
> Thanks for the help, Michael.
>
> boB
>
> --- In l..., "Michael Anton" wrote:
> >
> >
> >
> > > -----Original Message-----
> > > From: l...
> > > [mailto:l...]On Behalf
> > > Of bobtransformer
> > > Sent: Tuesday, September 12, 2006 8:52 PM
> > > To: l...
> > > Subject: [lpc2000] Re: Port 1 of LPC 2148 completely switched
to
> GPIO
> > > does not work.
> > >
> > >
> > >
> > > Yes, you're right. I read that note many times now and it went
> right
> > > over me... So I would ignore their cut and pasted (most
likely)
> > > generic reserved bits note and use the warning note instead. I
> would
> > > include bits 4 and 5 too:
> > >
> > > (PINSEL2 = (PINSEL2 & 0x0000003F) | value)
> > >
> > > boB
> > >
> > >
> > >
> >
> > I believe this should be:
> > PINSEL2 = (PINSEL2 & 0x00000030) | value
> > as you don't want to keep bits 0 and 1, and bits 2 and 3 need to
be
> > cleared befor you set them.
> >
> > Another thing that is maybe different, is that I treat PINSEL2 as
> > an 8 bit wide register, rather than 32, so that I am not writing
> > to the upper 24 bits at all.
> >
> > Mike
>
I finally got P1.16 - P1.18 to toggle (LPC2144)

I can only seem to get it to work by using legacy
GPIO IO1SET IO1CLR IO1DIR etc. (not FIO) I also
accessed Port1 by the entire port (32 bit) register,
not the IO1SET2 IO1CLR2 IO1DIR2 8 bit at a time
method. I had tried FIO with GPIO1M =1 in SCS before.

Have others really got FIO to work on port 1 ??
Not that I really need it I suppose....

boB
--- In l..., "bobtransformer" wrote:
>
> I looked through a couple of Philips applications that used
> P1.16 through P1.23 and I noticed that they never used
> PINSEL2 and they accessed those bits through the
> FIO1CLR 32 bit register and FIO1DIR 32 bit register (or IO1CLR etc)
> rather than the FIO1CLR2 or FIO1DIR2 8 bit methods.
>
> Just an observation. I guess I'll try it this way myself
> tonight to see if it makes any difference on my unit.
>
> Comments welcomed... :)
>
> boB
>
> --- In l..., "bobtransformer" wrote:
> >
> >
> > > I believe this should be:
> > > PINSEL2 = (PINSEL2 & 0x00000030) | value
> > > as you don't want to keep bits 0 and 1, and bits 2 and 3 need
to
> be
> > > cleared befor you set them.
> >
> >
> > Yes, you're right there !
> >
> > And SCS bits are correct. I just changed the chip.
> > Now some FIO1 bits aren't setting. 1 at least...
> > WIll try setting PINSEL2 to 0 now.
> >
> > No I won't ! My JTAG's broken now.
> >
> > Thanks for the help, Michael.
> >
> > boB
> >
> >
> >
> > --- In l..., "Michael Anton" wrote:
> > >
> > >
> > >
> > > > -----Original Message-----
> > > > From: l...
> > > > [mailto:l...]On Behalf
> > > > Of bobtransformer
> > > > Sent: Tuesday, September 12, 2006 8:52 PM
> > > > To: l...
> > > > Subject: [lpc2000] Re: Port 1 of LPC 2148 completely switched
> to
> > GPIO
> > > > does not work.
> > > >
> > > >
> > > >
> > > > Yes, you're right. I read that note many times now and it
went
> > right
> > > > over me... So I would ignore their cut and pasted (most
> likely)
> > > > generic reserved bits note and use the warning note instead.
I
> > would
> > > > include bits 4 and 5 too:
> > > >
> > > > (PINSEL2 = (PINSEL2 & 0x0000003F) | value)
> > > >
> > > > boB
> > > >
> > > >
> > > >
> > >
> > > I believe this should be:
> > > PINSEL2 = (PINSEL2 & 0x00000030) | value
> > > as you don't want to keep bits 0 and 1, and bits 2 and 3 need
to
> be
> > > cleared befor you set them.
> > >
> > > Another thing that is maybe different, is that I treat PINSEL2
as
> > > an 8 bit wide register, rather than 32, so that I am not writing
> > > to the upper 24 bits at all.
> > >
> > > Mike
> > >
>
Hi Bob, I haven't really had the time to read this thread but if you
want you can just download my Forth for the lpc2148 and probe
interactively with a few simple commands or one line routines. There
really isn't any better tool for exploring and debugging hardware than
Forth. Just type things like "FIO1MASK ?" to view the contents or
"FIODIR 20 DUMP". The base (radix) is set to hex on startup and all the
register names are predefined so there is nothing you need but a terminal.

http://www.pbjtech.com/downloads/IVOS2148.ZIP

*Peter*
bobtransformer wrote:
>
> I finally got P1.16 - P1.18 to toggle (LPC2144)
>
> I can only seem to get it to work by using legacy
> GPIO IO1SET IO1CLR IO1DIR etc. (not FIO) I also
> accessed Port1 by the entire port (32 bit) register,
> not the IO1SET2 IO1CLR2 IO1DIR2 8 bit at a time
> method. I had tried FIO with GPIO1M =1 in SCS before.
>
> Have others really got FIO to work on port 1 ??
> Not that I really need it I suppose....
Quote: "There really isn't any better tool for exploring and
debugging hardware than Forth."

Well, I'm pretty happy with my Keil tool (using the debugger and the
peripheral view feature, beats everything else !) and a Keil uLink
JTAG probe.....

Regards,
Carsten
--- In l..., Peter Jakacki wrote:
>
> Hi Bob, I haven't really had the time to read this thread but if
you
> want you can just download my Forth for the lpc2148 and probe
> interactively with a few simple commands or one line routines.
There
> really isn't any better tool for exploring and debugging hardware
than
> Forth. Just type things like "FIO1MASK ?" to view the contents or
> "FIODIR 20 DUMP". The base (radix) is set to hex on startup and
all the
> register names are predefined so there is nothing you need but a
terminal.
>
> http://www.pbjtech.com/downloads/IVOS2148.ZIP
>
> *Peter*
Carsten Gr wrote:
> Quote: "There really isn't any better tool for exploring and
> debugging hardware than Forth."
>
> Well, I'm pretty happy with my Keil tool (using the debugger and the
> peripheral view feature, beats everything else !) and a Keil uLink
> JTAG probe.....

Ahh, the old JTAG probe, nothing like a sharp stick to get a response :)
At the assembler level the probe certainly is good for debugging code
and as a consequence the hardware to a certain extent. I was talking
more about interacting with the hardware a little bit more than just a
"peek" or a "poke".

It is not at all unusual for me to write a one-liner to exercise
hardware. This does not entail any of the usual compile/download/probe
cycles, just talking to the hardware and getting responses, a bit like
having a conversation. If I had a funny problem like the GPIO not
responding it would have been sorted out within minutes but instead I
see so many of these "problems" and the resultant long threads
cluttering the group unnecessarily.

I am a solder sniffer hardware guy as much as I am a keyboard pecker and
I have used all kinds of debugger tools. The digital scope comes in
handy every second day.

However, an interactive programming environment that can access bare
silicon quickly and easily is surely a good thing, no? Just because we
have a really good pair of tweezers in our toolkit doesn't mean we
should not bother with pliers or screwdrivers. Sometimes, occasionally,
I even resort to JTAG probes if that is the right tool to use at the time.

*Peter*
Peter,
you are partly right :o)
However, the Keil "peripheral view" dialog is very handy as
a "testbed" of the processors internal hardware, timers, adc etc etc
etc. In the dialogs, you have all the registers shown, even the
single control/status bits are there as simple checkboxex, it is a
piece of cake to activate the different registers and see the
effect. That way you dont have to remember all the register for a
peripheral, they are listed right on the screen for you, ready to
be "clicked"....

I also once used Forth (and I liked it !), although it is 15+ years
ago.

Regards,
Carsten
--- In l..., Peter Jakacki wrote:
>
> Carsten Gr wrote:
> > Quote: "There really isn't any better tool for exploring and
> > debugging hardware than Forth."
> >
> > Well, I'm pretty happy with my Keil tool (using the debugger and
the
> > peripheral view feature, beats everything else !) and a Keil
uLink
> > JTAG probe.....
>
> Ahh, the old JTAG probe, nothing like a sharp stick to get a
response :)
> At the assembler level the probe certainly is good for debugging
code
> and as a consequence the hardware to a certain extent. I was
talking
> more about interacting with the hardware a little bit more than
just a
> "peek" or a "poke".
>
> It is not at all unusual for me to write a one-liner to exercise
> hardware. This does not entail any of the usual
compile/download/probe
> cycles, just talking to the hardware and getting responses, a bit
like
> having a conversation. If I had a funny problem like the GPIO not
> responding it would have been sorted out within minutes but
instead I
> see so many of these "problems" and the resultant long threads
> cluttering the group unnecessarily.
>
> I am a solder sniffer hardware guy as much as I am a keyboard
pecker and
> I have used all kinds of debugger tools. The digital scope comes
in
> handy every second day.
>
> However, an interactive programming environment that can access
bare
> silicon quickly and easily is surely a good thing, no? Just
because we
> have a really good pair of tweezers in our toolkit doesn't mean we
> should not bother with pliers or screwdrivers. Sometimes,
occasionally,
> I even resort to JTAG probes if that is the right tool to use at
the time.
>
> *Peter*
>




The 2024 Embedded Online Conference