Mac and Linux native development - rosco-pc/propeller-wiki GitHub Wiki
BST: Brad Spin Tool
The bst tool suite is a cross-platform tool set to help non-windows users get the most out of their Propellers. BST also runs on Windows.
Binaries are provided for i386 Linux i386 Windows 95->XP Universal Mac Binaries for OSX 10.4, 10.5 & 10.6
The Linux command line binaries are completely statically linked and will run without issue on x86_64 systems. The Linux binaries have been tested down to 2.4 kernels, so pretty much anything made in the last 6-7 years will work fine. If it doesn't, then let me know and I'll fix it!
I'm particular about supporting MacOS Intel & PowerPC and Linux. Windows bugs and features are welcome also. Just an update. The bst suite now has a homepage (such as it is) http://www.fnarfbargle.com/bst.html
Download it here : http://www.fnarfbargle.com/bst after reading the bits below!
The suite consists of :
bstl : The propeller loader
This little application does nothing more than allow you to load pre-compiled .binary and .eeprom files into your propeller. It is a command line application that takes a couple of optional parameters and a file name. Nothing more, nothing less. Use bstl -h to get a list of what does what.
bstc : The Spin Compiler
bstc has bstl built in, in addition to a completely Parallax compatible SPIN and PASM compiler and linker. It has a few extra features (like being able to emit a list file, some basic optimisation, and zip file generation) As with bstl, use bstc -h for a list of what does what.
bst : The IDE
This is the top of the food chain. A complete windowed IDE that aims (and still falls short) to be comparable with the Parallax Propeller Tool. It's simply an environment for developing your propeller code, downloading and monitoring the results.
bst is structured to be a work-alike to the Parallax Propeller Tool so that new users will find the Parallax documentation familiar enough to be able to start from scratch without being plunged into an unfamiliar environment.
The biggest hurdle in getting bst functioning up to scratch is the installation of a suitable Font. A modified version of the Parallax Propeller Font can be found linked from this Wiki here : http://propeller.wikispaces.com/Propeller+Font Please install this font prior to running bst the first time and it will ensure the smoothest installation.
bst has a basic serial terminal built in. It's not fantastic but it does the job. Suggestions warmly welcomed. Copy and paste as well as saving the contents is supported.
The development of bstl, bstc and bst can be followed on the Parallax forums linked below, and release notes and Changelogs are often posted in the top post.
Extensions to the Official Spin Compiler in PropTool
A number of extensions have been added. In BST they can be enabled using the Optimisation Panel in the Tools->Compiler Preferences Item. This extensions are not compatible with PropTool that means that the code generated is not going to be byte by byte the same as the one produced by PropTool (whereas when they are not enable bst strives to generate bit for bit identical code).
One of the most interesting extensions is conditional compilation. It works is a similar manner to C's, using the same syntax. Text replacement and macro expansion are not yet supported (v 0.18.4).
The syntax is similar to homespun's:
* #define symbol
* #undef symbol
* #ifdef symbol
* #ifndef symbol
* #elseifdef symbol
* #elseifndef symbol
* #else
* #endif
* #info I'm an information message
* #warn I'm a warning message
* #error I'm an error message and will abort compilation
bst[c] passes the defines down to sub-objects as they compile. You will get an error if you try to define a symbol twice.
#ifdef and #elseifdef check to see if symbol has been defined using #define (see below). Example:
#define HYDRA
#ifdef HYDRA
_clkmode = xtal1 + pll8x
_xinfreq = 10_000_000
#elseifdef HYBRID
_clkmode = xtal1 + pll16x
_xinfreq = 6_000_000
#else
_clkmode = xtal1 + pll16x
_xinfreq = 5_000_000
#endif
Another interesting extension is the @@@ operator. It returns the HUB address of the specified symbol.
Any comments, questions and suggestions are more than welcome to : proptools at fnarfbargle -dot- com Note: Do not edit the wiki to post questions, just email me at the above address or use the parallax forum Thread.
Hints about running BSTC (not BST) on non-PC systems: