Parallax Propellent Library and Executable v1.0
Jeff Martin
Posts: 760
UPDATE 5/29/2008: I just updated the attachment to include the Propellent Executable.pdf (sorry for the oversight, but even so, you can always get that information by running the executable with the /help switch).
Hi,
Today Parallax, Inc. is releasing the Propellent software; a Windows-based library and executable that allows compiling and downloading to the Propeller chip without using the Propeller Tool software (link the DLL into your own application, or run the executable from a command-line or a shortcut, for example).
It will be posted on the Propeller Downloads page of our website soon:
http://www.parallax.com/tabid/442/Default.aspx
But in the mean-time you can get it here (attached to this post).
Here's some more information about it:
Propellent Library and Executable Version 1.0
The Parallax Propellent software is a Windows-based tool for compiling and downloading to the Parallax Propeller chip (without using the Propeller Tool development software).· Propellent is available as both a library (Propellent.dll) and as an executable (Propellent.exe).·
······· The Propellent Library (DLL) is for software developers to link into applications enabling immediate support of the Propeller using the same functions as the Parallax-made Propeller Tool development software.
······· The Propellent Executable (EXE) is a program that includes the Propellent Library within it and provides many of the same functions to anyone wishing for command-line support of the Propeller chip.
·
Features of the Propellent Library (Propellent.dll):
······· Can download Propeller Application images (.binary or .eeprom) to Propeller chips.
······· Can compile Propeller source (.spin) for downloading, for saving as a binary or eeprom image, for retrieval of source document, or just for syntax checking.
······· Includes the Propeller Tool's multi-threaded serial port handling and Propeller chip communication functionality.
······· Includes the Propeller Tool's dialogs for indicating serial port access and download progress as well as the user-customizable serial port search options.
······· Automatically stores user-modified preferences in the Windows Registry for use in future sessions.· This can be disabled if desired.
······· Allows access to current list of available serial ports.
······· Allows calling application to view and/or specify preferences such as Library Path, Reset Signal (DTR, RTS, or both) and Serial Search Method (AUTO or specific port).
······· Supports Win2K (and later) operating systems.
·
Features of the Propellent Executable (Propellent.exe):
······· Small, command-line driven application that includes the Propellent Library inside of it; there’s no need to have the Propellent.dll file to use the Propellent.exe.
······· Compiles and downloads Propeller source (.spin), and downloads Propeller Application images (.binary or .eeprom) to Propeller chips.
······· Allows saving of compiled source as a binary or EEPROM image.
······· Includes the Propeller Tool's multi-threaded serial port handling and Propeller chip communication functionality.
······· Includes the Propeller Tool's dialogs for indicating serial port access and download progress as well as the user-customizable serial port search options.
······· Stores user-modified preferences in the Windows Registry for use in future sessions; Source Library path, Reset Signal (DTR, RTS, or both), and Serial Search Method (AUTO or specific port).
······· Supports Win2K (and later) operating systems.
Examples of Command Line Usage:
Of course, that's just the tip of the iceberg.
Take care,
·
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Jeff Martin
· Sr. Software Engineer
· Parallax, Inc.
Post Edited (Jeff Martin (Parallax)) : 5/29/2008 3:20:31 PM GMT
Hi,
Today Parallax, Inc. is releasing the Propellent software; a Windows-based library and executable that allows compiling and downloading to the Propeller chip without using the Propeller Tool software (link the DLL into your own application, or run the executable from a command-line or a shortcut, for example).
It will be posted on the Propeller Downloads page of our website soon:
http://www.parallax.com/tabid/442/Default.aspx
But in the mean-time you can get it here (attached to this post).
Here's some more information about it:
Propellent Library and Executable Version 1.0
The Parallax Propellent software is a Windows-based tool for compiling and downloading to the Parallax Propeller chip (without using the Propeller Tool development software).· Propellent is available as both a library (Propellent.dll) and as an executable (Propellent.exe).·
······· The Propellent Library (DLL) is for software developers to link into applications enabling immediate support of the Propeller using the same functions as the Parallax-made Propeller Tool development software.
······· The Propellent Executable (EXE) is a program that includes the Propellent Library within it and provides many of the same functions to anyone wishing for command-line support of the Propeller chip.
·
Features of the Propellent Library (Propellent.dll):
······· Can download Propeller Application images (.binary or .eeprom) to Propeller chips.
······· Can compile Propeller source (.spin) for downloading, for saving as a binary or eeprom image, for retrieval of source document, or just for syntax checking.
······· Includes the Propeller Tool's multi-threaded serial port handling and Propeller chip communication functionality.
······· Includes the Propeller Tool's dialogs for indicating serial port access and download progress as well as the user-customizable serial port search options.
······· Automatically stores user-modified preferences in the Windows Registry for use in future sessions.· This can be disabled if desired.
······· Allows access to current list of available serial ports.
······· Allows calling application to view and/or specify preferences such as Library Path, Reset Signal (DTR, RTS, or both) and Serial Search Method (AUTO or specific port).
······· Supports Win2K (and later) operating systems.
·
Features of the Propellent Executable (Propellent.exe):
······· Small, command-line driven application that includes the Propellent Library inside of it; there’s no need to have the Propellent.dll file to use the Propellent.exe.
······· Compiles and downloads Propeller source (.spin), and downloads Propeller Application images (.binary or .eeprom) to Propeller chips.
······· Allows saving of compiled source as a binary or EEPROM image.
······· Includes the Propeller Tool's multi-threaded serial port handling and Propeller chip communication functionality.
······· Includes the Propeller Tool's dialogs for indicating serial port access and download progress as well as the user-customizable serial port search options.
······· Stores user-modified preferences in the Windows Registry for use in future sessions; Source Library path, Reset Signal (DTR, RTS, or both), and Serial Search Method (AUTO or specific port).
······· Supports Win2K (and later) operating systems.
Examples of Command Line Usage:
- ...somefolder> ·Propellent.exe· ·Graphics_Demo.spin············· - Compiles and downloads the Graphics_Demo application.
- ...somefolder> ·Propellent.exe· ·/compile· /savebinary· Graphics_Demo.spin············ - Compiles and·saves·a binary image "Graphics_Demo.binary".
...somefolder> ·Propellent.exe···/ID············ - Searches for and identifies a connected Propeller chip.- ...somefolder> ·Propellent.exe· ·/PORT· COM2· Graphics_Demo.binary············ -·Downloads the Graphics_Demo application from image file to Propeller on COM2.
Of course, that's just the tip of the iceberg.
Take care,
·
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Jeff Martin
· Sr. Software Engineer
· Parallax, Inc.
Post Edited (Jeff Martin (Parallax)) : 5/29/2008 3:20:31 PM GMT
zip
517K
Comments
Nice work! This opens the door for various editors.
Has anyone had a chance to try this under WINE yet?
Thank You!!
OBC
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?
Getting started with the Protoboard? - Propeller Cookbook 1.4
Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us
Got an SD card? - PropDOS
Need a part? Got spare electronics? - The Electronics Exchange
Nice work, makes the wait worth it.
Regards
Azlan
PS. I have included here the exe PDF that I received earlier for those who can't wait for the website to be updated.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
Thanks Parallax! (although I thing Jeff has done most work)
This opens up the IDE for others to do and improve without reinventing the wheel (or should I say Cog)
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
http://www.propgfx.co.uk/forum/·home of the PropGFX Lite
·
Graham
Thank you, thank you, thank you.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Cheers,
Simon
www.norfolkhelicopterclub.co.uk
You'll always have as many take-offs as landings, the trick is to be sure you can take-off again ;-)
BTW: I type as I'm thinking, so please don't take any offense at my writing style
Would Parallax consider releasing the code for the IDE (presuming it uses the dll - or if not, cut that bit out so that it could be modified to use the dll)?
Then the IDE could be improved to add other features. Obviously it couldn't be called the same! The modified source would have to be made available with any version.
I would like to see a terminal window to communicate with the propeller after downloading code into RAM. This window would also include the capability to capture or send a file. Others have suggested improvements with the default file structure. I wouldn't like to have to reinvent the "wheel" for the IDE Editor.
Currently I am using Hyperterminal on another port.
Any comments?
You can find a by Parallax created terminal window here:
http://www.parallax.com/Portals/0/Downloads/docs/prod/prop/PE-Lab-Objects-v1.1.zip
There is some other stuff in that file, but I don't know a download that contains only the terminal.
It has some features to automatically close the COM port when you switch to an other window.
So you don't have to close it or disable it when you want to program the Propeller with the IDE.
Thanks for the link. I have downloaded the PST. Unfortunately it doesn't capture the data into a file. My application logs data (see DataLogger article) and uploads to the PC and is captured in a file. I now have this formatted into a *.spin format and then I open this file in the IDE and I get a timing diagram
My preference is to be able to do this all within the one IDE and it would save having to switch apps on the fly. Unfortunately Hyperterminal raises DTR so it resets the propeller, so currently I use a different com port (FT2232 which has 2 ports).
This opens up the possibility of "firmware" updates via a custom interface!
James
Post Edited (Agent420) : 5/30/2008 12:25:18 PM GMT
Basically, it's a command-line version and a dll version of the Propeller Tool without the Editor section. The dll is available for others to write windows software without having to worry about the compiler and downloader sections.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Michael Park
PS, BTW, and FYI:
To search the forum, use search.parallax.com (do not use the Search button).
Check out the Propeller Wiki: propeller.wikispaces.com/
Different word!!
Adj. 1. propellent - tending to or capable of propelling; "propellant fuel for submarines"; "the faster a jet plane goes the greater its propulsive efficiency"; "universities...the seats of propulsive thought"
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
SOURCE SOURCE SOURCE SOURCE SOURCE SOURCE SOURCE SOURCE SOURCE
Anyway, cool beans. Considering this release, I wonder if there's any way to get to a
Linux/Mac command-line compiler through this route, rather than reinventing it from
scratch. I wonder if dosbox is sufficient to run it.
It says it only works with Win2000 and its successors, so it wouldn't work under DOSBox.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Paul Baker
Propeller Applications Engineer
Parallax, Inc.
This is great stuff Jeff! Thanks for the release of it!!
On a side note: I prefer to use C# and the .Net framework. So, I wrote a wrapper around the Propellent.dll using the 2.0 framework (I'll also make a 1.1 and 3.0). I also wrote a small proof of concept around it. this POC only implements a few of the functions but the wrapper has all of them. This has VERY little testing (being that I don't have a propeller around me while writing this) so when it bombs on you, feel free to modify the source.
Over the weekend I'll clean this all up and post a release 1.0 of the wrapper and make the POC interface nice 'n pretty.
Let me know what you all think.
Thanks again Jeff for making this possible!
Jason
··· Wood
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Post Edited (JWood) : 6/1/2008 3:14:40 AM GMT
I was curious, so I tried it under Linux with Wine. No luck again with the serial ports (as to be expected), but the "compille" option works perfectly. Using this with the Python loader and a makefile, this makes Linux development possible with no real nasty workarounds.
Score!
Now, all I can think about is making my own IDE! I've griped before about how I'd do things and now they can just tell me to make my own if I don't like it...
I've very tempted to make a IDE that uses SPIN in a more C like syntax and then convert this to SPIN on the fly and use the dll to compile it. A map could be used to translate error positions back to the source...
I think some things like converting "=" to ":=" and "'" to "//" and making the ";" the eol character and using brackets instead of indentation would make things much better for those of us used to C syntax...
I just got Visual Studio 2008 with the MFC expansion pack going and it would make for a very cool interface...
If only I had more spare time [noparse]:([/noparse]
Would Parallax consider releasing just the code editor section so we could put it in our own IDE, or is this considered too big an ask at this point in time??
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Paul Baker
Propeller Applications Engineer
Parallax, Inc.
Post Edited (Paul Baker (Parallax)) : 5/31/2008 4:51:37 AM GMT
* Alternative IDE's
* Pre-Processing of Spin files to allow conditional compilation.
* Propeller compilation of other languages using transparent conversion to Spin.
* Ability to use non-standard downloaders; over ethernet, via wireless / XBee, two-wire serial, etc.
For me, I'm excited about ...
* Conditional compilation
* Adding function pointers !!!
* Being able to compile <some source>, generate an LMM system and have that come out as a standard Propeller .eeprom file.
* Easy embedding of ImageCraft C with Spin
One thing I would recommend is that anyone using Propellant makes that programmable so it can be easily changed. Whatever back-end tool chain is used it should be transparent to the front-end.
My suggestion would be to create 'PropellantWrapper.dll' and 'PropellantWrapper.exe' from the off which are default wrappers to Propellant ( or whatever ) always closest to the front-end which means front-end designers only ever need worry about calling PropellantWrapper and don't need to select which actual wrapper(s) / tool chain are used.
That way, someone writes a Conditional Compilation or other wrapper and every IDE can instantly use it with no change. I'll think on infrastructure design ( command line switches, API, calling conventions ) which will make it easy to pass things down the tool-chain and have the front-end easily determine / control whatever is in the tool-chain.
It's a real shame Propellant won't work on Windows 98 / pre Windows 2K but I'll limit my complaint to just saying that.
The .exe does seem to work under Windows 98 so far, but not extensively tested, just a simple self-contained few-lines program.
Now the slightly bad news ...
Errors pop-up as Message Boxes : To be useful for anything beyond simple IDE replacement there needs to be some means to silently redirect those to a named file. That shouldn't be too hard to add. A /VERSION should redirect to file as well if specified
Switches to Windows GUI : If run from MS-DOS Command Line in Full-Screen Mode, a switch is made back to Windows GUI on completion. Very annoying for command line programs which call Propellant.exe
Confirmation Pop-ups : Delete the .eeprom/.binary file before running to avoid the confirmation pop-up.
No Error Result : The ERRORLEVEL doesn't get set for the comamnd line. If the .eeprom/.binary is deleted before it won't be there if failed. Presumably an error file would not be present or be zero bytes on success as well.
Whatever, it's a definite move in the right direction.
Using /? doesn't work for me ( screwed formatting, black text forced on my black background ) so a rough and ready .HTM version of the switches attached ( rename after download ) ...
Post Edited (hippy) : 5/31/2008 3:24:30 PM GMT
This will permit conditional compile! (On the editor side of course)
Anyone working on an editor already?
OBC
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?
Getting started with the Protoboard? - Propeller Cookbook 1.4
Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us
Got an SD card? - PropDOS
Need a part? Got spare electronics? - The Electronics Exchange