public inbox for insight@sourceware.org
 help / color / mirror / Atom feed
From: Fernando Nasser <fnasser@redhat.com>
To: duane_ellis@franklin.com
Cc: insight@sources.redhat.com
Subject: Re: Current Status of Insight
Date: Tue, 17 May 2005 19:38:00 -0000	[thread overview]
Message-ID: <428A4823.6@redhat.com> (raw)
In-Reply-To: <200505141454.j4EEsMot014323@monster.franklin.com>

Duane Ellis wrote:
> 
> Perhaps explaining why Insight is the killer app for me
> would be helpful to others.
> 
> --------------------------------------------------
> 
> Insight is really 
> 
>    gdb     - a very configurable debugger
>    Tk      - the gui front end
>    Tcl	   - the script that binds the two
> 
> For us - the sum of the parts are a greater benifit.
> 

So far so good.


>From a software department management view point I have one
> debugger that most people can use both on the host
> environment, the target environment, and in our case, a
> simulation environment.
> 

Tcl/Tk and Java share this advantages.


 From now on, you are mentioning the advantages of GDB.  It would be the 
same GDB, so whatever GUI we use the god olde GDB will there to provide 
all this.


I think the greatest advantage of Insight is that it is a simple and 
very intuitive User Interface that seems to be unchallenged after all 
these years.

Perhaps it is because it very closely follow the GDB "User Model" 
without trying to add fancy abstractions, nicely named artifacts or 
anything.  It is just a graphical GDB, but still very GDBish.
If you know how to use the GDB command line, you know how to use Insight.


Regards,
Fernando




> ie: At the end of the day - the basic commands in GDB
> work in all 3 environments.
> 
> --------------------------------------------------
> SIMULATION
> 
> If I factor in simulation - I get an even better
> bang for my buck.
> 
> I don't need cycle accurate 100% perfect simulation with all
> kinds of feed back.... Thats my world. Other worlds are very
> different.
> 
> The real feature that the GDB Tcl/Tk combo shines in is
> simulation.  I've done a number of smoke & mirrors front
> ends for product development. I've also done 95% hardware
> accurate simulations
> 
> The truth of it is - GDB's macro language sucks, it is very
> limited then too - it is very task specific.
> 
> --------------------------------------------------
> MODEL SIM
> 
> Perhaps if people had a chance to see/use the VHDL simulator
> from Model Technologies which uses Tcl/Tk as it's front end
> you'd see what I mean.
> 
> One of the modelsim examples/tutorial is a traffic light
> controller. In their case - they are hooking up a (chip)
> hardware simulation to fancy little lights and buttons.
> 
> There is great benifit to this - expecially in the embedded
> software environment. However - the benifit is really only
> found if and only if the customer is willing or can really
> make a few scarafices. You can't always do that.
> 
> Historically - it is hard to convince somebody they should
> do this. It is like the classic argument - write your design
> document, then write your code. People don't always see the
> benifit until it is too late.
> 
> It also has to do with the size of your customer base and
> how common are things they are working on... for some items
> it is not worth it.
> 
> --------------------------------------------------
> IN MY CASE
> 
> In our case - it works really nicely. Think: PALM simulator
> which - used GDB but has a completely different GUI front
> end on it.
> 
> I did this:
> 
>  Create a tk canvas with a picture of the device.
> 
>  Create tk ovals or rects on the canvas
>         Right over the buttons on the device
> 
>  Create a 'tksim' command implimented in C.
>  
>     Write/bind tcl scripts to those buttons
>     that execute the tksim command, ie:
> 	 tksim button press $row $col 
> 	 tksim button release $row $col
> 
>  Create a tk Photo on the canvas
>       This becomes the LCD simulation
> 
>       in C - get access to that photo, follow the example in
>       the Tcl/Tk books & docs.. that is all I did. When the
>       simulation writes to memory calculate what pixel that
>       translates to convert the value to RGB and update the
>       photo.
> 
>  Create/bind mouse events on the LCD photo
> 
>       ie: mouse button 1 press & drag becomes nothing more
>       then tksim mouse down $oldx $oldy $newx $newy
>  
>       Now you have a touch screen simulation.
> 
> To use a different platform or device - it's a different
> tcl/tk skin, nothing more....
> 
> ----------------------------------------
> SIMPLE HARDWARE SIMULATION is sometimes enough..
> 
> To do simple hardware simulation it requires a little change
> in the memory read/write simulation functions. For example -
> GDB's ARMulator has two core functions: PutWord() and
> GetWord() all memory reads & writes go through these
> functions.  You change them like this:
> 
> 
> 
>>>   ARMword
>>>   GetWord( ..., ARMword address, ARMword data, ... ) 
>>>   {
>>>      switch( address ){
>>>      case SIM_KEYBOARD_STATUS_REG_ADDRESS:
>>>	    return simulated_keyboard_fifo_status();
>>>	    break;
>>>      case SIM_KEYBOARD_DATA_REG_ADDRESS:
>>>	    return simulated_keyboard_fifo_getkey();
>>>	    break;
>>>	.....
>>>      }
>>>      ... normal arm code goes here ...
>>>   }    
> 
> 
> ----------------------------------------
> Using a HAL layer.
> 
> In some embeded systems its hard/impossible to simulate.
> For example - realtime mechanical feedback - ie: Turn on
> motor, read position feedback, track acceleration... - it
> depends on what you are doing. It is not always the same as
> the hardware - you are not bit banging SPI stuff or little
> serial eproms, or programing a flash memory.
> 
> But - you can do quite a bit... You can simulate slow ADC
> voltage inputs with a tcl/tk slider, or an DAC output with a
> progress bar.
> 
> We have a fairly good hardware abstraction layer. We either
> link with the simulation library, or the hardware.
> Somethings can only be done on the hardware.
> 
> ----------------------------------------
> Java Vrs Tcl - I need a command line.
> 
> For me - the above is the true benifit of Insight.
> 
> I believe Java can do the same thing.
> 
> But what Java does not have - is a command line it is
> compiled langauge Tcl/Tk - it is some what enherent.
> 
> ----------------------------------------
> 
> PREVIOUSLY - Turn GDB inside out.
> 
> When this came up previously, somebody made this observation
> and suggestion: (I forget who)
> 
> Today - tcl/tk is bolted onto GDB. In effect, GDB is the first
> class citizen, Tcl/Tk is 2nd class.
> 
> The suggestion was to turn Insight inside out - and make the
> GDB commands tcl commands, and tcl objects.
> 
> The macro ability that Tcl would give GDB is huge.
> 
> The trick is that the GUI (TK) portion becomes optional.
> 
> If you've ever done a lot with ModelSim you'll see what I
> mean. My hunch is - doing exactly that - turing Insight/GDB
> inside out is probably the better solution.
> 
> That's my 3.5 cents.
> 
> -Duane.
> 
> 
> 

-- 
Fernando Nasser
Red Hat Canada Ltd.                     E-Mail:  fnasser@redhat.com
2323 Yonge Street, Suite #300
Toronto, Ontario   M4P 2C9

  parent reply	other threads:[~2005-05-17 19:38 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1115992411.3092.ezmlm@sources.redhat.com>
2005-05-13 15:44 ` E. Weddington
2005-05-13 17:15   ` Christopher Faylor
2005-05-13 17:35     ` Bernhard Walle
2005-05-13 17:45       ` Christopher Faylor
2005-05-13 17:58         ` Bernhard Walle
2005-05-13 21:51           ` Fernando Nasser
2005-05-14 14:54             ` Duane Ellis
2005-05-14 17:25               ` Bernhard Walle
2005-05-17 19:38               ` Fernando Nasser [this message]
2005-05-17  8:26 Roland Schwingel
2005-05-17 10:18 ` Steven Johnson
  -- strict thread matches above, loose matches on Subject: below --
2005-05-16 23:45 Paul Schlie
2005-05-14 22:13 Paul Schlie
2005-05-16  5:35 ` Steven Johnson
2005-05-17 19:33   ` Fernando Nasser
2005-05-16 16:10 ` Christopher Faylor
2005-05-16 17:18   ` Paul Schlie
2005-05-13  8:14 Roland Schwingel
2005-05-13  1:15 Paul Schlie
2005-05-12 10:07 Steven Johnson
2005-05-12 10:13 ` Jon Beniston
     [not found]   ` <2636500f05051203276a294e8f@mail.gmail.com>
2005-05-12 10:29     ` Nickolay Kolchin
2005-05-12 15:17 ` Keith Seitz
2005-05-12 21:46   ` Steven Johnson
2005-05-12 22:42     ` Duane Ellis
2005-05-12 22:45     ` Duane Ellis
2005-05-13  2:09     ` Christopher Faylor
2005-05-13  2:19       ` Keith Seitz
2005-05-13 13:53         ` Steven Johnson
2005-05-13 14:05           ` Christopher Faylor
2005-05-13 14:18             ` Jon Beniston
2005-05-13 14:21               ` Christopher Faylor
2005-05-13 14:16           ` Hans W. Horn
2005-05-13 14:29             ` Christopher Faylor
2005-05-13 14:33           ` James Lemke
2005-05-14 11:14           ` Nickolay Kolchin
2005-05-17 12:51             ` Fernando Nasser
2005-05-16 22:07         ` Steven Johnson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=428A4823.6@redhat.com \
    --to=fnasser@redhat.com \
    --cc=duane_ellis@franklin.com \
    --cc=insight@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).