avr-gcc-list
[Top][All Lists]
Advanced

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

Re: [avr-gcc-list] Software JTAGICE using simulavr / limited simulavr IC


From: Mike Hudson
Subject: Re: [avr-gcc-list] Software JTAGICE using simulavr / limited simulavr ICE
Date: Fri, 22 Aug 2003 18:36:17 -0400
User-agent: KMail/1.5.2

On August 22, 2003 05:57 pm, you wrote:
> On Fri, 22 Aug 2003, Mike Hudson wrote:
> > Here's something to ponder over the weekend, it came up during the
> > usual Friday afternoon clock-watching banter. To the best of my
> > knowledge, it hasn't been discussed before:
> >
> >     Would it be possible to modify simulavr (or create an external
> > interface plugin) in order to create a PC hosted version of the
> > JTAGICE using the parallel port? You would likely need to extern
> > simulavr to emulate parallel I/O lines and a single serial port, as
> > well as add support for saving the contents of the flash memory.
>
> I'm not sure I understand the logic in this. Please correct me if I'm
> mistaken.
>
> You want to have one computer running the dev tools and another
> running simulavr with simulavr acting like a jtagice box with the two
> computers communicating via the parallel port?
>

No. Everything would be running on a single PC. The user would execute a 
script which would run the simulated JTAGICE interfaced to a pseudo 
serial port. 

On unix systems, avarice would then interface with a pty instead of the 
actual serial port.

On windows systems, I'm sure there's some sort of software serial port 
driver that would provide some sort of emulation. AVR Studio would 
detect the simulated JTAGICE and use that instead of the actual 
hardware.

The goal is to allow the user to connect their development system 
directly to the AVR's JTAG port using their parallel port - without the 
need for any external hardware or cash expenditure. 

> >     Although this approach would run slower (and be less reliable)
> > than the hardware JTAGICE, it would have near zero hardware cost. (
> > Although we really should resolve the whole firmware issue with
> > Atmel. My personal opinion is that they should just sell a
> > non-commercial firmware license for $20)
>
> I don't think the problem has anything to do with the jtagice
> firmware, but more to do with the AVR jtag on-chip debug protocol
> which is proprietary to Atmel. Having the firmware does us no good
> here, since we don't know what the signals to emulate are, or even
> what is going on inside the device.
>

By simulating a JTAGICE box in software, we don't _need_ to understand 
the specifics of the protocol. We simply emulate a physical hardware on 
which the atmel firmware runs, using the host CPU, parallel port, and a 
software serial port much in the way that the M16 on my bootice 
emulates the m163 inside the real jtagice. 

> >     A side effect of adding this support would likely be the
> > acceleration of development on simulavr's external peripheral
> > interface, and the ability to use it as a limited ICE.
> >
> >     This could be enough for many educational environments, and people
> > starting out with AVRs. I know that most high-school students would
> > be completely satisfied with a few I/O lines and a serial port.
>
> Wouldn't this goal be more easily achieved via running gdb with
> simulavr on a single PC? There are many possibilities for displaying
> pin state (graphically or even via the parallel port and a led
> dongle) and even sending UART data out the real serial ports.
>

Yes, it would be simpler to simply do everything in software for actual 
devel. However, physical input and output is far more impressive from a 
educational standpoint. In the context of high school students, if you 
simply sit them down in front of a PC and say 'this simulates part x', 
they'll quickly get bored. If you let them build something, they'll 
stay interested longer.  For engineering students, just add a few shiny 
objects to the mix. :)

-- 
Mike Hudson

Attachment: pgpNEj9ykh9Db.pgp
Description: signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]