Shop OBEX P1 Docs P2 Docs Learn Events
New to propeller, Propeller tool suggestions and questions — Parallax Forums

New to propeller, Propeller tool suggestions and questions

AleAle Posts: 2,363
edited 2007-06-22 08:48 in Propeller 1
Hello,

Did I said that the propeller is great ?, no ?, it is GREAT !, Why did I not use it before ?

I built myself a proto board with a propeller and VGA output, and Propeller Clip Clone to develop an application for my doctoral Thesis (Chemistry).

As I use linux exclusively, I run the Propeller Tool on wxp under VMWare on a P-M 1.73 GHz laptop. That works flawlessly.

After years of IDEs (Turbo line, NetBeans and RHIDE), I find that the propeller Tool lacks some very useful (on my eyes) features:

- Projects.
- Folder setup
- Dissasembly view, you can hide the meaning of spin mnemonics/byte code if you like, but knowing exactly were asm and objects begin and end etc. is very helpful, especially
if you want to make an application that needs more than one 32 kbyte page.
- Assembler only projects, to build and load separately, via an SD Card or other media.

I still think that a set of command line tools would be most helpful (just fopen/fclose/fread/fwrite/malloc/free/signal and exit are needed, nothing unportable).

If you want to compile just assembler files to build an eeprom image to load beyond the 32kbyte, how do you do it ? because you never know the starting address of anything

I'm just curious on how some things work, and this tools hides too much from the user, good for programming starters, but not for seasoned ones, IMHO.



I'm still working on my simulator/asm.

Comments

  • KaioKaio Posts: 253
    edited 2007-06-21 14:34
    Ale,

    fine that you find the Propeller is a great chip as we all. You are welcome.

    >As I use linux exclusively, I run the Propeller Tool on wxp under VMWare on a P-M 1.73 GHz laptop. That works flawlessly.

    You are the first guy who is reporting this, I believe.


    >Assembler only projects, to build and load separately, via an SD Card or other media.

    You can do this of course if you would using the SD card driver from Object Exchange.


    >I still think that a set of command line tools would be most helpful (just fopen/fclose/fread/fwrite/malloc/free/signal and exit are needed, nothing unportable).

    Do you mean an OS running on the prop board which has this features? Then have a look at the Propeller OS.
    http://forums.parallax.com/showthread.php?p=605819


    >If you want to compile just assembler files to build an eeprom image to load beyond the 32kbyte, how do you do it ? because you never know the starting address of anything

    You can not compile just assembly code with the Prop Tool. You must use one method of Spin code to start your application.


    >I'm still working on my simulator/asm.

    Did you know that some sort of this tools exist?
    GEAR - Propeller Debugging Environment an Propeller emulator
    http://forums.parallax.com/showthread.php?p=624986

    POD - Propeller On-chip Debugger for assembly code
    http://forums.parallax.com/showthread.php?p=639020

    Thomas
  • Mike GreenMike Green Posts: 23,101
    edited 2007-06-21 15:00
    Ale,
    Regarding "command line tools" ... What you've listed are library functions for simple file access, memory allocation, and process/program termination.
    The simple file access stuff only makes sense when there's a file system and, in that case, the library routines for PC-compatible SD card access do provide the equivalent. Have a look. There are other I/O drivers for use with "mass storage" devices like EEPROM, but they generally don't provide a file system.
    The memory allocation calls don't make a lot of sense due to the very limited memory space available (< 32K). Someone did write a memory management package to support a string manipulation library, but it's of limited usefulness.
    In Spin, there are already operators (ABORT and "\") that are the equivalent of throw/catch and can function as signal/exit.
    There has been a 3rd party C compiler announced with availability around the end of the year. It looks like it will use what's called the "Large Memory Model" which uses some native instructions and some subroutine calls in a sort-of threaded execution system that should be nearly as fast as native assembly, but with all of the main (hub) memory available for programs.
    Have a look at the Hydra Asset Manager thread in the Hydra forum. It allows you to load up an EEPROM with various items, some programs and some data. The Windows-based GUI lets you lay things out in memory and there's a loader that you run that transfers the stuff from the PC to the Propeller's EEPROM.
    The Propeller Tool does run under various OS virtualization systems as long as you do use Windows. I use Parallels Desktop on a Mac all the time. I've tried CodeWeavers' CrossOver Mac and it partially works, but it doesn't actually use Windows, just some of the DLLs (and is based on Wine). It does work well enough to compile programs, but not download them to the Propeller. It would work well enough for those that don't want to run Windows on their MacOS or Linux systems. There is a Python download program that's been posted here that could handle that part of the job.
  • AleAle Posts: 2,363
    edited 2007-06-21 19:27
    Thanks for the info.

    Seems that "the command line tools" where not understood :-(, I meant a compiler that can be run from the command line, like bash, csh, or cmd.exe on winblows. Not on the propeller. The propeller OS seem like a really neat idea, I have to connect a keyboard to my board to be able to test it completely, though.

    From there the confusion, sorry. Anyway your points Mike, are valid and very interesting. I read the code of the OS, very interesting indeed.

    I have a question:

    Can the propeller under some circumstances "hang" ?

    The org directive seem not to work the second time when used twice, is that possible ?, like:

    org

    init mov a,data
    ....


    org 256

    data long $deadbeef


    The data label does not end up in the address 256 ! (or needs a #, that I did not test)

    The Gear I did not test, I'm reluctant to install the .net framework. I'm not going to connect an unpatched, not even sp1 winxp to the internet (like the one running on vmware that I use).
    If it is possible to get it via a normal download, it can be. But I really don't like visiting ms site.

    I don't have parallels, but I'd love to use my mac for something, besides collect dust :-((

    Post Edited (Ale) : 6/21/2007 7:32:20 PM GMT
  • Mike GreenMike Green Posts: 23,101
    edited 2007-06-21 19:49
    Ale,
    The Propeller can indeed "hang", but a hardware reset can always fix that unless the problem is in the reset circuitry itself.

    An individual cog can "hang", but any other cog can force a reset of that single cog (with COGSTOP).

    How are you checking the address of "data"? There are two addresses associated with a label in a DAT section. One is the assembly (cog) address which is set by the ORG and is used when the label is referenced in an assembly instruction. The other is used by the Spin operator "@" and is the address where the data associated with the label is loaded into main memory. Look at the discussion of the "@" and "@@" operators in the Spin manual.
  • CardboardGuruCardboardGuru Posts: 443
    edited 2007-06-21 19:57
    What you are describing is what you'd expect for org. All org (and res) do is adjust the counter which is used to generate labels. Instructions and data go into main memory in the order they are declared, with no gaps. Then when you call coginit or cognew, you get 496 longs transferred from the address in main memory you give into cog memory. Any usage that you made of org doesn't come into it.
  • KaioKaio Posts: 253
    edited 2007-06-22 08:48
    Ale,

    there are some sort of command line tools, but currently only to compile assembly code.
    PropAsm - Standalone, cross-platform Propeller assembler
    http://forums.parallax.com/showthread.php?p=611536

    Cross Platform Propeller Macro Assembler and Loader
    http://forums.parallax.com/showthread.php?p=645706


    >The propeller OS seem like a really neat idea, I have to connect a keyboard to my board to be able to test it completely, though.

    You could use the keyboard on your PC to control any Propeller application which requires a keyboard if you would use the PropTerminal via serial connection. You have only to replace the keyboard driver in the Propeller application by the PC_Keyboard driver delivered with PropTerminal. You can also use PropTerminal as TV output with the replacement driver.
    http://forums.parallax.com/showthread.php?p=649540


    I find the org behavior also awful. The compiler calculates only the addresses but the code is not moved at the right location. You have to do this by yourself.

    Thomas
Sign In or Register to comment.