Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
06/15/05 23:14
Read: times


 
#95045 - back to the original question
Responding to: ???'s previous message
Well, a lot of things have been discussed in this loooong thread, even abundant opcodes and a completely different question... So what about getting back to the original question.

While the answer to it is clearly "NO" (or at least nothing readily available), let me elaborate on it a little bit further. Richard, please, correct me.

First, let us put aside the question if it is useful to have a monitor or not. Enough said on that.
Then, let us stress the reason - it is intended to be used on multiple platforms, with as similar user interface as possible across them. (This mostly rules out available emulators and most of the monitors, as the user interfaces for them vary wildly.)
It is not intended to develop new products, rather, to maintain (long)existing and sometimes unique products (again, let us not discuss further the reasonability of supporting an old product and possibility to replace an old product with a new one). It is required, that the debugged program maintains exact timing. Therefore it is required that the monitor runs on the original processor or an equivalent replacement (this is where the SiLabs are ruled out as an emulator for standard '51, as it does not keep the timing of instructions).
It is assumed that there are (relatively) ample resources of ROM space at each target (tens of kB), and there is an UART available (or can be attached in some means) to connect to COM port on a PC. Programming on PC is to be avoided.
It is required that the monitor should have a disassembler, a line-assembler, SFR and memories display and manipulation; then single-step and run process with breakpoints.

The original idea is the full monitor implemented on the target in C (for portability).
Plus: on PC, any dumb terminal is all that is required. One can even do without PC - a terminal is on virtually any platform, including various handhelds - a bonus when working in field.
Minus: The interface - let's face it, by now we all got used to it - no clickable menus and windows :-)
Other minus: Lot of work to be done. Let's analyze: memories and SFR manipulation IS platform dependent. Single step and breakpoints ARE platform dependent. Disassembler and assembler are PARTIALLY platform dependent, if table driven. Displaying and user interface IS NOT platform dependent, but that's the easiest part of the job. And the C itself is rather platform dependent. Seems that not too much of the job can be "recycled" it this way... Also, there is some shlight risk that the monitor would be too big and would not fit within the spare ROM space of each target (OK in this case some of the "luxury" can be spared out, but that's extra work).

IMHO it would be better to have a minimal core in the target, performing just memory/SFR transmit and receive and jump to given address - that's all what's necessary (plus necessary infrastructure - initialisations/connecting, saving/restoring context when entering/exiting monitor/core). The major work is "pushed up" to PC.
Minus: Work on PC inevitable, portability (to to other GUI-enabled platforms (e.g. the handheld)) questionable.
Plus: Most of the job (although the same amount of it platform dependent, but portability of code across various C's is now out of question) can be done on PC where resources are abundant and pre-cooked development tools are readily available. User interface can be more fancy. Minimal core fits to more target systems (with less resources). The core is small enough to justify the job done in asm, if preferred.

The work on PC can be avoided in two ways: the less practical is to insert an another microcontroller between the target and the PC, performing the gro of the work. Then, the PC would again run only a dumb terminal.

The smarter way is to utilise available minimal core systems, where the PC-job is already done (at least mostly). I am aware of two of such: Keil's MON51+uVision, and NoIce.

Keil's is '51 oriented and not too probable that they are willing to implement anything else. They don't publish source code of the target core, so it's not easy to implement it in a non-standard target system; and it's not easy to port it (accepting certain limitations arising from the strict '51 orientation of the PC part) to different targets. In fact, it is enough to know the protocol, but it is not published, either... (but maybe obtainable?). There is a code size limit for the trial version, but for experimenting it is good enough.

NoIce comes with sources for the targets, published protocol, and quite a lot of documentation. It is implemented on similar targets than the required, and the author(s) is(are) willing to port it to other platforms. There is a DOS and a Windows version. Not free, but quite cheap. I don't remember if there is any trial (maybe the DOS version?).


Jan Waclawek


PS. I have a bunch of spare XCHDs here, in good condition, anybody interested?

List of 115 messages in thread
TopicAuthorDate
Full-function debugger?            01/01/70 00:00      
   Keil uVision?            01/01/70 00:00      
      Full-function resident debuger            01/01/70 00:00      
         Oh...            01/01/70 00:00      
   Proteus6 or ISIS 5.2 Professional            01/01/70 00:00      
      full-function resident debugger            01/01/70 00:00      
         Like a Dream!            01/01/70 00:00      
   paulmon?            01/01/70 00:00      
   many possibilities            01/01/70 00:00      
      resident monitor vs. simulator/ICE            01/01/70 00:00      
         pray tell which            01/01/70 00:00      
         Nonsense!            01/01/70 00:00      
   best rethink this ...            01/01/70 00:00      
      comments            01/01/70 00:00      
      Nonsense!            01/01/70 00:00      
      Slow?            01/01/70 00:00      
         there's the rub...            01/01/70 00:00      
            I think I know what you're asking for            01/01/70 00:00      
               so what if JTAG is dead slow            01/01/70 00:00      
                  exactly            01/01/70 00:00      
                  full function debugger            01/01/70 00:00      
               Full-Function debug monitor            01/01/70 00:00      
                  answers and questions            01/01/70 00:00      
                     Full-Function debugger            01/01/70 00:00      
                  Does size matter??            01/01/70 00:00      
                     Full-Function resident debug monitor            01/01/70 00:00      
                  JTAG is the INTERFACE ..            01/01/70 00:00      
                     Full-Function resident debug monitor            01/01/70 00:00      
            You Call That Convenient???            01/01/70 00:00      
               A Men !!!            01/01/70 00:00      
                  sadly not            01/01/70 00:00      
                     be specific            01/01/70 00:00      
                        specifics            01/01/70 00:00      
                        Specifics....            01/01/70 00:00      
               Full Function Resident Debugger            01/01/70 00:00      
   JTAG vs On-Chip Debug            01/01/70 00:00      
   Full-Function Resident Debug Monitor            01/01/70 00:00      
      fried baloney            01/01/70 00:00      
         full-function debugger            01/01/70 00:00      
            a few questions            01/01/70 00:00      
               Full-Function resident debug monitor            01/01/70 00:00      
                  Still don't see why it needs to be...            01/01/70 00:00      
                     Full-Function resident debug monitor            01/01/70 00:00      
                        nope.            01/01/70 00:00      
                           Full-function resident debug monitor            01/01/70 00:00      
                              NASA            01/01/70 00:00      
                                 Full-function resident debug monitor            01/01/70 00:00      
                                    JTAG ?            01/01/70 00:00      
                                       Sometimes not            01/01/70 00:00      
                                       JTAG            01/01/70 00:00      
                                    OH!            01/01/70 00:00      
                                       Synchronization            01/01/70 00:00      
                                          what does that have to do with            01/01/70 00:00      
                                             synchronization            01/01/70 00:00      
                                                that is not "synchronization"            01/01/70 00:00      
                                                   synchronization            01/01/70 00:00      
                                                      more            01/01/70 00:00      
                                                         and more            01/01/70 00:00      
                                                            re: and more (was "Synchronization:)            01/01/70 00:00      
                                                         re: more (was Synchronization)            01/01/70 00:00      
                                                            ask about sim, get answer about mon            01/01/70 00:00      
                                                               simulator vs. debugger            01/01/70 00:00      
                                                                  The end            01/01/70 00:00      
                                                                     thank goodness!            01/01/70 00:00      
                        ancient?            01/01/70 00:00      
                  different targets            01/01/70 00:00      
                     Full-function resident debug monitor            01/01/70 00:00      
                        I know what that is            01/01/70 00:00      
      But Why?            01/01/70 00:00      
         Full-function debugger            01/01/70 00:00      
            limitatitions?            01/01/70 00:00      
   to Richard            01/01/70 00:00      
      full-function resident debug monitor            01/01/70 00:00      
         Time Warp            01/01/70 00:00      
            Multiple target            01/01/70 00:00      
               Full-function resident debug monitor            01/01/70 00:00      
            Full Function resident debug monitor            01/01/70 00:00      
               This is a discussion forum            01/01/70 00:00      
                  Problem in resolution            01/01/70 00:00      
                     Off-Topic!            01/01/70 00:00      
               So you got a free bonus!            01/01/70 00:00      
                  beating a dead horse            01/01/70 00:00      
         seek and ye shall find            01/01/70 00:00      
   Dunfield Development Systems ??            01/01/70 00:00      
      Full-Function Debug Monitor            01/01/70 00:00      
   Some barebone monitors            01/01/70 00:00      
      BASIC            01/01/70 00:00      
         BASIC ???            01/01/70 00:00      
            Not pretending it is            01/01/70 00:00      
            on BASIC            01/01/70 00:00      
               Acorn ?            01/01/70 00:00      
                  asm in basic            01/01/70 00:00      
      Full function resident debug monitor            01/01/70 00:00      
         source            01/01/70 00:00      
            Full function resident debugger C-source            01/01/70 00:00      
            Giving away source            01/01/70 00:00      
               of course you would            01/01/70 00:00      
                  Ha            01/01/70 00:00      
                     Poor DA A            01/01/70 00:00      
                        Here is my stock            01/01/70 00:00      
                           DA A            01/01/70 00:00      
      seasoned hands??            01/01/70 00:00      
         ROM-emulator + debug monitor            01/01/70 00:00      
         In ROM monitor.            01/01/70 00:00      
            emulators            01/01/70 00:00      
         Seasoned hands            01/01/70 00:00      
      BASIC - and - MONITOR-51            01/01/70 00:00      
   Timer 0 isr howto            01/01/70 00:00      
      to Jonzon Yeow            01/01/70 00:00      
   back to the original question            01/01/70 00:00      
      There's an echo in here...            01/01/70 00:00      
         sorry for not crediting you            01/01/70 00:00      
      XCHD instructions.            01/01/70 00:00      
      Original question            01/01/70 00:00      
   re;synchronization            01/01/70 00:00      

Back to Subject List