Shop OBEX P1 Docs P2 Docs Learn Events
Spin Unit Debugger (SPUD) WIN32 Cut — Parallax Forums

Spin Unit Debugger (SPUD) WIN32 Cut

jazzedjazzed Posts: 11,803
edited 2010-02-03 19:19 in Propeller 1
SPUD stands for Spin PASM Unit Debugger. PASM debug will be added after Spin is done.

Spud is a spin debugger that is similar to gdb, and is available for Linux and Windows running Cygwin.

All you need to add for Spud debug ability is to add code like below and run the spud debugger:

obj
  v : "SpudVMM"
  s : "SpudSerial"

pub FirstMethod
   s.start(31,30,0,115200)
   v.start
   ' your code starts here





The serial port is added separately as a convenience. To remove the debugger, comment out v.start (and optionally comment v: "SpudVMM"). For normal serial port use, you can change SpudSerial to FullDuplexSerial if you like, but you don't have to. Spud needs SpudSerial to function because of the per/line checksum it provides.

Spin debugging is currently single COG only, and selecting a COG by spin "thread" may be supported later. Some thought has been given to adding COG PASM debug ability which would also be selectable by "thread". Both of these will require more invasive spin/pasm code changes than I like though.

Spud uses BSTC to build spin and a simple loader to download the spin program.

The attached spud_linux_aug20.tar includes the spud program, bstc, and SpudDemo.spin (etc...).
Users should tar -xvf spud_linux_aug20.tar . This will create a directory called release.
Forum software will not allow attaching tar.gz files.

SPUD takes parameters as:
C:\>spud
Usage: spud -c <ComPort[noparse][[/noparse]:baud]> -l <Loader> [noparse][[/noparse]-b <Compiler> -o <CompilerOptions> -s <StartupFile>] <Top Spin File>


If you specify a baud-rate, it must match the debugger startup serial port rate.

To run SPUD on an i686 linux box with a FTDI USB port PropPlug, use the command:
./spud -b ./bstc -c "/deb/ttyUSB0" spin/SpudDemo.spin

To run SPUD on an i686 linux box with a standard serial port ttyS0, use the command:
/spud -b ./bstc -c "/deb/ttyS0" spin/SpudDemo.spin




Today SPUD will work with the main Spin program. There is no provision for swapping SPIN COG "threads" or debugging COG code yet. I do plan to add multiple COG support later.

Examples of using SPUD are in this forum topic. A user guide will be crafted in time. Meanwhile, play with the program using some of the interaction examples and post feedback.

A windows command line version with Cygwin is attached as spud_rel_aug20.zip.

To run SPUD on a cygwin enabled Windows PC with Propeller on COM1 use the command:
./spud -c COM1 spin/SpudDemo.spin

To run SPUD on a cygwin enabled Windows PC with PropPlug on COM8 use the command:
./spud -c COM8 spin/SpudDemo.spin




A generic Windows 32 variant is now available. Please download winspud.zip (not the cygwin zip).
Windows 64 bit platform users should use Cygwin and the spud_cygwin* package.

A Windows 32 command line version is attached as winspud.zip.

To run SPUD on a Windows 32 PC with Propeller on COM1 use the command:
winspud -c COM1 SpudDemo.spin

To run SPUD on a Windows 32 with PropPlug on COM8 use the command:
winspud -c COM8 SpudDemo.spin

On windows, COM10+ will not work.

The windows BSTC spin compiler (v.15) is now included.





Cheers.

Post Edited (jazzed) : 2/1/2010 4:24:39 PM GMT
«1

Comments

  • jazzedjazzed Posts: 11,803
    edited 2009-08-14 01:07
    Please refer to this post for latest screen dumps, etc. Other posts may contain outdated information.

    Here is a current startup example:

    C:\_Propeller_Debugger_\spud\release>spud -c com8 spin/SpudDemo.spin
    
    Starting up with COM port 'com8'
    Top Spin File Path: 'spin/'
    Top List File: 'spin/SpudDemo.list'
    Brads Spin Tool Compiler v0.15.3 - Copyright 2008,2009 All rights reserved
    Compiled for i386 Win32 at 08:17:48 on 2009/07/20
    Loading Object SpudDemo
    Loading Object SpudVMM
    Loading Object SpudDebugger
    Loading Object SpudSerial
    Loading Object Tv_Text
    Loading Object tv
    Program size is 8544 longs
    Compiled 1730 Lines of Code in 0.188 Seconds
    Downloading 8548 bytes of 'spin/SpudDemo.binary'
    Propeller Version 1 on COM8
    Writing 8548 bytes to Propeller RAM.
    Verifying ... Upload OK!
    Waiting for connection ... ready!
    spud 0> ?
    
    Command Help:
    
     b line       Set breakpoint to 'line' as below.
     c            Continue program to breakpoint.
     d line | all Delete breakpoint line or all.
     f            Finish current method.
     g            Run program without break.
     h            Show command History.
     k            Use serial konsole. ESC & Enter to stop.
     l [noparse][[/noparse]line]     List program at current PC or line.
     n            Step over method ('s' steps by lines).
     p [noparse][[/noparse]=N]       Print (or change) variable.
     q            Quit the debugger program.
     r            Rebuild and reset program.
     s            Step program line by line.
     u            Step program until a new line.
     v            Dump reversed stack contents.
     x adr[noparse][[/noparse]=N]    Examine (or change) memory.
     y            Toggle transaction printing.
     !!           Repeats last command.
     !#           Repeats command number #.
     ^s^r         Repeat search and replace last command.
     Enter        Repeats last command.
     ?            Print command help.
    
    The a number 'N' is N (decimal) $N (hex) %N (binary) %%N (base-4).
    A 'line' is N, <file.spin>:N, or <file.spin>:method '.spin' optional.
    Indexed arrays (array[noparse][[/noparse]n]) are not supported by 'p' command, but the
     address of the array is printed so you can use the 'x' command to
     examine the array. Strings are also not supported by 'p' command.
    Users can stop a program running with 'g' by using 'l' or other commands;
     this is very useful in finding out what the current state is for the program.
    The 'u' command will be faster than 'n', but can hang if on last code line.
    The 'c' command may hang if there are no more breakpoints. Use 'g' instead.
    The 'c' command may timeout before breakpoint. Repeat if breakpoint expected.
    Press CTRL-C to end the program if it hangs.
    
    spud 1>
    



    Below is a step/debug example.
    In this example I have to change the Tv_Text:start(basepin) with "p basepin=20"
    so my monitor will work with my PropellerProtoboard.

    spud 1> l
    
    
      spin/SpudDemo.spin:24
    
        14
        15 obj
        16   v : "SpudVMM"
        17   s : "SpudSerial"
        18   t : "Tv_Text"
        19
        20 con
        21   tvpin = 12
        22
        23 pub main
    ->  24   s.start(31,30,0,115200)
        25   v.start
        26
        27   t.start(tvpin)
        28   t.str(string("Hello World!"))
        29
        30   repeat
        31
        32 {{
        33  TERMS OF USE: MIT License
    
    spud 2> n
    
    
      spin/SpudDemo.spin:25
    
        15 obj
        16   v : "SpudVMM"
        17   s : "SpudSerial"
        18   t : "Tv_Text"
        19
        20 con
        21   tvpin = 12
        22
        23 pub main
        24   s.start(31,30,0,115200)
    ->  25   v.start
        26
        27   t.start(tvpin)
        28   t.str(string("Hello World!"))
        29
        30   repeat
        31
        32 {{
        33  TERMS OF USE: MIT License
        34
    
    spud 3>
    n
    
    
      spin/SpudDemo.spin:27
    
        17   s : "SpudSerial"
        18   t : "Tv_Text"
        19
        20 con
        21   tvpin = 12
        22
        23 pub main
        24   s.start(31,30,0,115200)
        25   v.start
        26
    ->  27   t.start(tvpin)
        28   t.str(string("Hello World!"))
        29
        30   repeat
        31
        32 {{
        33  TERMS OF USE: MIT License
        34
        35  Permission is hereby granted, free of charge, to any person obtaining a copy
        36  of this software and associated documentation files (the "Software"), to deal
    
    spud 4> s
    
    
      spin/Tv_Text.spin:61
    
        51 OBJ
        52
        53   tv : "tv"
        54
        55
        56 PUB start(basepin) : okay
        57
        58 '' Start terminal - starts a cog
        59 '' returns false if no cog available
        60
    ->  61   setcolors(@palette)
        62   out(0)
        63
        64   longmove(@tv_status, @tv_params, tv_count)
        65   tv_pins := (basepin & $38) << 1 | (basepin & 4 == 4) & %0101
        66   tv_screen := @screen
        67   tv_colors := @colors
        68
        69   okay := tv.start(@tv_status)
        70
    
    spud 5> p basepin
     basepin = $c 12
    
    spud 6> p basepin=20
     basepin = $14 20
    
    spud 7> f
    
    
      spin/SpudDemo.spin:28
    
        18   t : "Tv_Text"
        19
        20 con
        21   tvpin = 12
        22
        23 pub main
        24   s.start(31,30,0,115200)
        25   v.start
        26
        27   t.start(tvpin)
    ->  28   t.str(string("Hello World!"))
        29
        30   repeat
        31
        32 {{
        33  TERMS OF USE: MIT License
        34
        35  Permission is hereby granted, free of charge, to any person obtaining a copy
        36  of this software and associated documentation files (the "Software"), to deal
        37  in the Software without restriction, including without limitation the rights
    
    spud 8> n
    
    
      spin/SpudDemo.spin:28
    
        18   t : "Tv_Text"
        19
        20 con
        21   tvpin = 12
        22
        23 pub main
        24   s.start(31,30,0,115200)
        25   v.start
        26
        27   t.start(tvpin)
    ->  28   t.str(string("Hello World!"))
        29
        30   repeat
        31
        32 {{
        33  TERMS OF USE: MIT License
        34
        35  Permission is hereby granted, free of charge, to any person obtaining a copy
        36  of this software and associated documentation files (the "Software"), to deal
        37  in the Software without restriction, including without limitation the rights
    
    spud 9>
    
    

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    --Steve


    Propalyzer: Propeller PC Logic Analyzer
    http://forums.parallax.com/showthread.php?p=788230

    Post Edited (jazzed) : 8/20/2009 5:28:06 PM GMT
  • MicrocontrolledMicrocontrolled Posts: 2,461
    edited 2009-08-14 02:14
    Awesome job, jazzed!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Computers are microcontrolled.

    Robots are microcontrolled.
    I am microcontrolled.

    But you·can·call me micro.

    If it's not Parallax then don't even bother.

    I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)



  • jazzedjazzed Posts: 11,803
    edited 2009-08-15 03:40
    Weird name huh? SPUD stands for Spin PASM Unit Debugger. It's only Spin only now. Features are being added daily.
    I was thinking about converting this to Perl at some point. Maybe Phil P. can whip out a C -> Perl converter ?

    Here is a new screen dump update.
    The variable running shows starting up as -1 because the debugger has already been initialized (a la Cluso99).

    Out of date spud screen dumps removed.
    
    

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    --Steve


    Propalyzer: Propeller PC Logic Analyzer
    http://forums.parallax.com/showthread.php?p=788230

    Post Edited (jazzed) : 8/20/2009 5:29:07 PM GMT
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2009-08-15 03:54
    jazzed said...
    I was thinking about converting this to Perl at some point.
    YES!!
    jazzed said...
    Maybe Phil P. can whip out a C -> Perl converter ?
    Aaaah, nooooo!

    I don't know C. smile.gif

    -Phil
  • jazzedjazzed Posts: 11,803
    edited 2009-08-16 17:31
    Any i686 Linux testers for spud? I can build, etc on my remote server, but need to test the serial port access ....

    TIA

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    --Steve


    Propalyzer: Propeller PC Logic Analyzer
    http://forums.parallax.com/showthread.php?p=788230
  • Bill HenningBill Henning Posts: 6,445
    edited 2009-08-16 20:37
    Congrats, can't wait to try it!

    Any idea if it would compile with Catalina? (XMM version ofcourse)
    jazzed said...
    Weird name huh? SPUD stands for Spin PASM Unit Debugger. It's only Spin only now. Features are being added daily.
    I was thinking about converting this to Perl at some point. Maybe Phil P. can whip out a C -> Perl converter ?

    Here is a new screen dump update.
    The variable running shows starting up as -1 because the debugger has already been initialized (a la Cluso99).

    C:\>spud -c com8 spin/BigSpin_Demo.spin
    Brads Spin Tool Compiler v0.15.3 - Copyright 2008,2009 All rights reserved
    Compiled for i386 Win32 at 08:17:48 on 2009/07/20
    Loading Object BigSpin_Demo
    Loading Object BigSpinVMM
    Loading Object BigSpinVmmHandler
    Loading Object BigSpinDebugger
    Loading Object BigSpinHardware
    Loading Object FullDuplexSerial
    Loading Object BigSpinInterpreter
    Loading Object BigSpinEEPROM
    Loading Object Tv_Text
    Loading Object tv
    Program size is 9636 longs
    Compiled 2027 Lines of Code in 0.264 Seconds
    Downloading 9640 bytes of 'spin/BigSpin_Demo.binary'
    Propeller Version 1 on COM8
    Writing 9640 bytes to Propeller RAM.
    Verifying ... Upload OK!
    Waiting for connection ...  Ready!
    spud 0> l
    
    
      spin/BigSpin_Demo.spin:18
    
         8   _CLKMODE      = XTAL1 + PLL16x
         9   _XINFREQ      = 5_000_000
        10
        11 obj
        12   big : "BigSpinVMM"
        13   tv  : "Tv_Text"
        14   'ut  : "API_UtilObject"
        15
        16 pub main | n
        17
    ->  18   big.start  ' always the first spin statement if using BigSpin or the debugger
        19
        20   tv.start(20)
        21   tv.str(string($d,"Hello World",$d))
        22   'repeat 100
        23   '  tv.str(ut.gettime)
        24   tv.str(string($d,"Goodbye",$d))
        25
        26   n++
        27   repeat
    
    spud 1> s
    
    
      spin/BigSpinVMM.spin:42
    
        32 obj
        33   vmm  : "BigSpinVmmHandler"
        34   bint : "BigSpinInterpreter"
        35   swap : "BigSpinEEPROM"        ' could be a SPI-Flash, SD-Card, or XMM device
        36
        37 var
        38   long  running
        39
        40 pub start | addr
        41
    ->  42   ifnot running                 'run interpreter init only once
        43     running := true
        44     vmm.start(swap.cmdptr)
        45     swap.start
        46     addr  := bint.GetPasmAddr   'get the Pasm start address of the interpreter
        47     coginit(0, addr, $0004)     'restart cog 0 with the working RamInterpreter
        48
        49   running := true
        50
        51 ' no stop method ... chip would shutdown
    
    spud 2> p running
    VAR 'running' @25a8 = $ffffffff -1
    
    spud 3> p addr
    'addr' = $0098 152
    
    spud 4> s
    
    
      spin/BigSpinVMM.spin:49
    
        39
        40 pub start | addr
        41
        42   ifnot running                 'run interpreter init only once
        43     running := true
        44     vmm.start(swap.cmdptr)
        45     swap.start
        46     addr  := bint.GetPasmAddr   'get the Pasm start address of the interpreter
        47     coginit(0, addr, $0004)     'restart cog 0 with the working RamInterpreter
        48
    ->  49   running := true
        50
        51 ' no stop method ... chip would shutdown
        52
        53
        54 {{
        55 pub exec(execval)
        56   execval := $38    ' this gives the sequence $38_38_65_32
        57
        58 {
    
    spud 5>
    
    

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Please use mikronauts _at_ gmail _dot_ com to contact me off-forum, my PM is almost totally full
    Morpheus & Mem+dual Prop SBC w/ 512KB kit $119.95, 2MB memory IO board kit $89.95, both kits $189.95
    www.mikronauts.com - my site 6.250MHz custom Crystals for running Propellers at 100MHz
    Las - Large model assembler for the Propeller Largos - a feature full nano operating system for the Propeller
  • jazzedjazzed Posts: 11,803
    edited 2009-08-16 20:42
    You have good timing Bill [noparse]:)[/noparse] I just verified spud works with my ubuntu linux box.
    Having a little trouble for some reason with "/dev/ttyS0" but "/dev/ttyUSB0" works.
    Object file names are a little case sensitive [noparse]:)[/noparse]

    I'll post a package link later today.

    steve@subuntu:~/spud$ ./spud -c "/dev/ttyS0" -b ./bstc spin/BigSpin_Demo.spin
    Top Spin File Path: 'spin/'
    Top List File: 'spin/BigSpin_Demo.list'
    Found a USB Serial Device
    Brads Spin Tool Compiler v0.15.3 - Copyright 2008,2009 All rights reserved
    Compiled for i386 Linux at 08:17:46 on 2009/07/20
    Loading Object BigSpin_Demo
    Loading Object BigSpinVMM
    Loading Object BigSpinVmmHandler
    Loading Object BigSpinDebugger
    Loading Object BigSpinHardware
    Loading Object FullDuplexSerial
    Loading Object BigSpinInterpreter
    Loading Object BigSpinEEPROM
    Loading Object Tv_Text
    Loading Object tv
    Program size is 9716 longs
    Compiled 2042 Lines of Code in 0.31 Seconds
    Downloading 9720 bytes of 'spin/BigSpin_Demo.binary'
    Propeller Version 1 on /dev/ttyS0
    Writing 9720 bytes to Propeller RAM.
    Verifying ... Upload Timeout Error!Waiting for connection ... ready!
    spud 0> 
    steve@subuntu:~/spud$ ./spud -c "/dev/ttyUSB0" -b ./bstc spin/BigSpin_Demo.spin
    Top Spin File Path: 'spin/'
    Top List File: 'spin/BigSpin_Demo.list'
    Found a USB Serial Device
    Brads Spin Tool Compiler v0.15.3 - Copyright 2008,2009 All rights reserved
    Compiled for i386 Linux at 08:17:46 on 2009/07/20
    Loading Object BigSpin_Demo
    Loading Object BigSpinVMM
    Loading Object BigSpinVmmHandler
    Loading Object BigSpinDebugger
    Loading Object BigSpinHardware
    Loading Object FullDuplexSerial
    Loading Object BigSpinInterpreter
    Loading Object BigSpinEEPROM
    Loading Object Tv_Text
    Loading Object tv
    Program size is 9716 longs
    Compiled 2042 Lines of Code in 0.296 Seconds
    Downloading 9720 bytes of 'spin/BigSpin_Demo.binary'
    Propeller Version 1 on /dev/ttyUSB0
    Writing 9720 bytes to Propeller RAM.
    Verifying ... Upload OK!
    Waiting for connection ... ready!
    spud 0> 
    
    Out of date spud screen dump edited.
    
    
    



    Edit: Fixed menu alignment that didn't copy paste very well from xterm.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    --Steve


    Propalyzer: Propeller PC Logic Analyzer
    http://forums.parallax.com/showthread.php?p=788230

    Post Edited (jazzed) : 8/20/2009 5:30:04 PM GMT
  • Bill HenningBill Henning Posts: 6,445
    edited 2009-08-16 20:46
    Excellent!

    My main machine is an Ubuntu box. Cad box is an XP64 box, that also runs ViewPort and PropTool.

    I recently started using BST on my Ubuntu box, and I really like it... now a debugger under Ubuntu too!

    And yes, I admit I asked Hanno about a version of ViewPort that will run on Ubuntu.

    Thanks,

    Bill
    jazzed said...
    You have good timing Bill [noparse]:)[/noparse] I just verified spud works with my ubuntu linux box.
    Having a little trouble for some reason with "/dev/ttyS0" but "/dev/ttyUSB0" works.
    Object file names are a little case sensitive [noparse]:)[/noparse]

    I'll post a package link later today.
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Please use mikronauts _at_ gmail _dot_ com to contact me off-forum, my PM is almost totally full
    Morpheus & Mem+dual Prop SBC w/ 512KB kit $119.95, 2MB memory IO board kit $89.95, both kits $189.95
    www.mikronauts.com - my site 6.250MHz custom Crystals for running Propellers at 100MHz
    Las - Large model assembler for the Propeller Largos - a feature full nano operating system for the Propeller
  • jazzedjazzed Posts: 11,803
    edited 2009-08-18 02:05
    Hi Bill and others who may be trying SPUD. There is a bug that keeps variables from being found and printed in one of those "last minute changes." I'll post a fix in the morning. Meanwhile, you can still step through spin code ... which is of questionable value without variable inspection [noparse]:)[/noparse].

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    --Steve


    Propalyzer: Propeller PC Logic Analyzer
    http://forums.parallax.com/showthread.php?p=788230
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-08-18 06:43
    Congratulations Steve. Another good tool smile.gif

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBladeProp, RamBlade, TwinBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: Micros eg Altair, and Terminals eg VT100 (Index) ZiCog (Z80), MoCog (6809)
    · Search the Propeller forums (via Google)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
  • jazzedjazzed Posts: 11,803
    edited 2009-08-20 17:34
    Hi again!

    SPUD second cut is available in thread's first post. Normal windows command line program is not and probably won't be made available. Windows Cygwin users will however be able to use spud from the cygwin zip package. Both Cygwin and linux packages include copies of bstc and a spin/SpudDemo.spin example. I highly recommend using the spin directory for your spin files.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    --Steve


    Propalyzer: Propeller PC Logic Analyzer
    http://forums.parallax.com/showthread.php?p=788230
  • jazzedjazzed Posts: 11,803
    edited 2009-08-26 20:30
    A Windows 32 command line version of SPUD is now available in the first post of this thread.
    A "native" Windows 64 bit version will not be created, but Cygwin makes spud possible on Windows 64 bit platforms.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    --Steve

    Propeller Tools Post Edited (jazzed) : 8/27/2009 4:50:52 PM GMT
  • jazzedjazzed Posts: 11,803
    edited 2009-08-27 19:36
    The Cygwin version of SPUD has been updated. The com port hang problem should be gone.
    Thanks to the users who downloaded 8 copies of the aug20 version. Wish I had some feedback.

    A Mac version of this tool will never be created. I'm considering a cross-platform Python GUI variation.
    Java for me would naturally go faster, but I don't know how kind that would be for users.

    Integrating BMA PASM debugger features should be on my priority list, but for some reason that is motivationally challenging.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    --Steve

    Propeller Tools
  • CounterRotatingPropsCounterRotatingProps Posts: 1,132
    edited 2009-08-30 22:07
    Steve,

    I'm trying it out now, but being a SPUD newBud and a bit of a PASM NOOB, I'm running into some dependency(?) issues at the get go:

    whereever\winspud>spud spindemo.spin

    Top Spin File Path: '.\'
    Top List File: 'spindemo.list'
    'bstc' is not recognized as an internal or external command,
    operable program or batch file.
    Can't open BSTC list file 'spindemo.list'

    Does BSTC need to be in SPUD's exe dir, or can it be set in a command line parm - using the win variant of the linux parm above? I tried several versions, but still get the same errror.

    thanks - H

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
  • jazzedjazzed Posts: 11,803
    edited 2009-08-30 22:33
    Oops, I forgot to include bstc.exe in the winspud.zip. I'll attach it here and add it to the package in a while. For PASM, you might be more interested in the BMA Debugger until I fully integrate PASM threads in SPUD. I keep a copy of bstc.exe in my working directory; I haven't tried many directory combinations .... For now just use a directory called say "c:\spud" and put winspud.exe, bstc.exe, and a spin directory there (I'm pretty sure you can have spin in the same directory with this version of winspud though).

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    --Steve

    Propeller Tools Post Edited (jazzed) : 8/30/2009 10:46:06 PM GMT
    bstc.exe 117.5K
  • CounterRotatingPropsCounterRotatingProps Posts: 1,132
    edited 2009-08-30 22:46
    Thanks for the prompt reply

    OK I had Brads BSTC in another dir - and for whoknows why copying into the spud dir didn't work (weird). So I just overwrote it with the attachment you posted. And BINGO! it works (weirder still)

    > For PASM, you might be more interested in the BMA Debugger until I fully integrate PASM threads in SPUD.

    Actually, I skimmed over the very first line in your OP - and didn't notice that's pending %-)

    Very nice app --- I'll noodle with it over the next week and give you some feedback as I go. Is there anything in particular you'd like us to hammer on?

    - H

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
  • jazzedjazzed Posts: 11,803
    edited 2009-08-30 22:56
    Hi Howard. Thanks for your effort. Having someone use an app other than me is priceless for weeding out issues. If you type '?' and enter, you will get the user menu. Everything mentioned there should work. If you find any trouble with printing or changing local variables, please dump the stack 'v' and post it here. Also if you don't mind turn on the com port trace facility with the 'y' command ... ignore the extra output unless you run into a problem ... the 'y' command is "Gee y did that happen?" feature. Thanks.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    --Steve

    Propeller Tools
  • CounterRotatingPropsCounterRotatingProps Posts: 1,132
    edited 2009-08-30 23:33
    10-4

    " Having someone use an app other than me is priceless for weeding out issues "

    My former coworkers used to say: "give it to Howard - if it can be broken, he'll find a way to do it" [noparse]:)[/noparse])

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
  • CounterRotatingPropsCounterRotatingProps Posts: 1,132
    edited 2009-09-14 22:58
    Hey Steve,

    what's the correct command line syntax for passing options to the compiler? Whatever I put after the '-o' doesn't seem to take.

    thanks
    - Howard

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
  • jazzedjazzed Posts: 11,803
    edited 2009-09-15 00:07
    Hi Howard.

    The minimum requirement for -o is "-bls -o" example: spud -c com8 -o "-bls -o" spin/SpudDemo.spin
    That translates into a compile as: bstc -bls -o spin/SpudDemo spin/SpudDemo.spin
    I left that there in case I got in trouble. One could use "-els -o" I guess for an eeprom file, but spud looks for a .binary .

    I've attached winspud.howard (rename it to winspud.exe) you can try if you have connection problems.
    You can also specify a library with it if necessary. It also fixes some problems with with local variables

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    --Steve

    Propeller Tools Post Edited (jazzed) : 9/15/2009 12:28:54 AM GMT
  • CounterRotatingPropsCounterRotatingProps Posts: 1,132
    edited 2009-09-15 16:21
    Great - got it, thanks!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
  • CassLanCassLan Posts: 586
    edited 2010-02-01 15:11
    Hey Jazzed,

    Been playing with this this morning and I really like it.

    On your screen dumps, it prints the actual lines of Spin Code, whenever I use the "l" command I just get the Line #s, anything I'm doing wrong?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    PrEditor·- Text Editor


    NYC Area Prop Club
    857 x 667 - 82K
  • jazzedjazzed Posts: 11,803
    edited 2010-02-01 16:44
    Hi Rick.

    The example package is working for me - no stepping into the serial port start of course[noparse]:)[/noparse] The demo package is rather simple though. Can you post your .zip example so I can try to reproduce your problem? PMs for problems are welcome.

    Cheers.
    Steve
  • CassLanCassLan Posts: 586
    edited 2010-02-01 16:56
    Hey Steve thanks for the quick reply,

    I just gave it a whirl with the Demo Program and it lists the Code along with the Line#'s as expected.

    With my code it still works, I can, stop, run,·step, peek and change variables etc, just the code listing issue.

    I appreciate your help.

    Rick

    PS - here is what I'm working with, I have had to reduce some functionality and some buffer sizes to make room, (I'm hoping your tool will help with that)

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    PrEditor·- Text Editor


    NYC Area Prop Club







    Post Edited (CassLan) : 2/1/2010 5:04:06 PM GMT
  • AleAle Posts: 2,363
    edited 2010-02-01 18:21
    Jazzed: Why no Mac version ?

    It should be a re-compile... sort of. I'm willing to compile it if you want. yeah.gif

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Visit some of my articles at Propeller Wiki:
    MATH on the propeller propeller.wikispaces.com/MATH
    pPropQL: propeller.wikispaces.com/pPropQL
    pPropQL020: propeller.wikispaces.com/pPropQL020
    OMU for the pPropQL/020 propeller.wikispaces.com/OMU
  • CassLanCassLan Posts: 586
    edited 2010-02-01 19:13
    Hey I figured it out!

    I have lots of "Special" Characters in my program, I·pasted it into notepad, saved with a different filename, lost the Unicode stuff and now it behaves like the Demo you provided [noparse]:)[/noparse]



    Rick

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    PrEditor·- Text Editor


    NYC Area Prop Club





    ·
  • jazzedjazzed Posts: 11,803
    edited 2010-02-01 19:22
    @CassLan, you beat me to the punch [noparse]:)[/noparse] Can you post the updated version ?

    @Ale, I didn't really think about it. I figured Mac users only want GUI programs. The program works under wine with linux, but I've never tried it on Mac.
  • CassLanCassLan Posts: 586
    edited 2010-02-01 19:27
    Somebody said...
    @CassLan, you beat me to the punch [noparse]:)[/noparse] Can you post the updated version ?
    Sure Steve,

    Just replace Pred_Alpha.Spin with test.spin

    One other little thing, when I use the p command:

    p CursorRow=3

    It will make it equal to $b3

    p CursorRow=03 works well though



    Rick


    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    PrEditor·- Text Editor


    NYC Area Prop Club
  • jazzedjazzed Posts: 11,803
    edited 2010-02-01 20:13
    You should pre-append hex values with $.

    spud 26> p CursorRow=$b3
     CursorRow @ $660c = $b3 179
    
    



    I have bad news for this: I was building winspud with MSVC++ 6.0 on my old PC which crashed. I can not get it to install on my laptop (CD problems). This means I can't do bug fixes for winspud. If you want to continue using Spud, I suggest you switch to the Cygwin version. Considering the performance problems I've seen in either version, it might be difficult for me to continue developing/supporting this. You should consider using ViewPort instead.
  • CassLanCassLan Posts: 586
    edited 2010-02-01 20:34
    jazzed said...
    I have bad news for this: I was building winspud with MSVC++ 6.0 on my old PC which crashed. I can not get it to install on my laptop (CD problems). This means I can't do bug fixes for winspud. If you want to continue using Spud, I suggest you switch to the Cygwin version. Considering the performance problems I've seen in either version, it might be difficult for me to continue developing/supporting this. You should consider using ViewPort instead.
    I have considered using ViewPort, I just have not been able to get the debuging feature to work yet.

    After realizing the cause of the Unicode issue with SPUD, I also changed to ANSI and reloaded with ViewPort...it says my object has exceeded by 5374 longs..., I don't get it. I can connect to my running Prop with ViewPort, see memory changes etc..but when I go to debug it says it can't. Its very frustrating, but thats for another thread.

    Are you yourself using ViewPort?

    Rick

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    PrEditor·- Text Editor


    NYC Area Prop Club





    ·
Sign In or Register to comment.