Shop OBEX P1 Docs P2 Docs Learn Events
watch window implementation — Parallax Forums

watch window implementation

Larry MartinLarry Martin Posts: 101
edited 2010-09-08 05:18 in Propeller 1
I am thinking about implementing a Watch window for my Propeller based system. I have designed a custom realtime board for an industrial sensor based on Propeller, programmed in SPIN. It goes with a PC program that sets it up and logs results. As the system becomes more complex (it started as an SX52), I need to debug it in the field, without my 'scope and other crutches. I have tried ViewPort, but think I need something different. For example, my SPIN code has one master Long that is packed with bitflags, and I need those decoded into mnemonics.

So I want to create a Watch window in my PC application. On a click, the PC would send a request to dump memory, the Propeller system would dump memory to the PC, and the PC would display the memory per a symbol table. Since Propeller Tool does not generate symbol tables, I would have to write a separate program to generate symbols from my SPIN source.

Questions:

1. Does anyone know if something like this exists already?

2. Does DAT memory always start at offset 0x0000018C ?

3. Is the start of VAR memory always saved to offset 0000000A ?

Thanks,
Larry

Comments

  • Heater.Heater. Posts: 21,230
    edited 2010-08-31 08:38
    I you use the BST compiler from BradC, a Propeller tool clone, you can generate list files of your compiled program. The list file has all the symbol table information you need. Like so:
    VBASE : 0000 LONG Size 0004 Variable par_zpu_memory_addr
    VBASE : 0004 LONG Size 0004 Variable par_zpu_memory_sz
    VBASE : 0008 LONG Size 0004 Variable par_initial_pc
    VBASE : 000C LONG Size 0004 Variable par_initial_sp
    VBASE : 0010 LONG Size 0004 Variable par_dispatch_tab_addr
    VBASE : 0014 LONG Size 0004 Variable par_pasm_addr
    VBASE : 0018 LONG Size 0004 Variable par_zog_mbox_addr
    VBASE : 001C LONG Size 0004 Variable par_vm_mbox_addr
    

    This shows the address relative to the object base. Object addresses are also in there:
    Object FullDuplexSerialPlus
    Object Base is 0FF4
    
  • Larry MartinLarry Martin Posts: 101
    edited 2010-09-08 05:18
    Heater, thanks for the hint. Other things have edged in front of this task for now. I will post when I do something interesting.

    Larry
Sign In or Register to comment.