Attached is a file intended to be used as a "wrapper" for the Propeller-specific functions implemented in both Catalina and ICC (e.g. accessing the special registers, or performing low-level hardware-dependent functions such as WAITCNT or LOCKSET). This file is intended to allow C programs to be written independently of the C compiler used.
As an example of its use, here is how the first test program in this ICC-specific thread would look if written to use the macros contained in the file:
//test1.c
// This is the header file that contains
// macros which hide the differences between
// ICC and Catalina
#include "catalina_icc.h"
// Every 'C' program has to have
// a main function.
void main()
{
long count;
// This is for use with the demo board.
// This turns on pin 16 (LED), pauses for a second
// and then turns off the pin.
set_dira(1 << 16); // This sets up the pin
set_outa(1 << 16); // This turns on the pin.
msleep(1000); // Make it pause for a second.
clr_outa(1 << 16); // This turns off the pin.
}
The program could then be compiled using either the Catalina or ICC compiler.
All that the attached file contains is a set of macros - you have to tell it whether to generate either Catalina or ICC code (see the file itself for more details). It is also very much a work in progress, and has not been tested much yet, and there are a few functions not yet implemented. However, if there is any interest in this kind of thing I will maintain it as a standard part of the next Catalina release.
Ross.
EDIT: attachment deleted - please download Catalina 2.3 Patch Release 16 Feb 10, which contains an updated version of "catalina_icc.h".
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
I have had a couple of questions about using the Propeller special registers in Catalina, so I thought I'd post the answer here.
Catalina provides built-in functions to access registers. These are defined in the include file "catalina_cog.h" (in the normal include directory).
These functions include such things as _ina() and _cnt(). Note that these are functions, not constant addresses or variables. To use them you would say something like:
#include <catalina_cog.h>
main() {
unsigned a;
unsigned count;
unsigned mask = 0x8001; // mask to identify the bits of interest (bits 15 and 0 in this case)
unsigned value = 0x0001; // value to set in the bits of interest (clear bit 15, set bit 0 in this case)
a = _ina(); // get the value if input register INA
_outa(mask, value); // set the values of the bits of interest indicated by the mask
count = _cnt(); // get value of system counter
}
See "catalna_cog.h" for a list of all the functions. Also, see the patch release for Catalina 2.3 issued on 16 Feb 10, which contains a set of macro definitions that should work under either Catalina or ICC compiler.
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
I've just added a small patch release to Catalina 2.3 (Patch Release 16 Feb 10). You can find it attached to the first post of this thread. Here are the details:
- add _clockmode(), _clockfreq() and _clockinit() library functions to fetch the current clock mode, fetch the current frequency, or set the clock mode and frequency. See the inlcude file "catalina_cog.h" for more detail. There is also a new demo program that uses them - test_freq.c
- add include file "catalina_icc.h" which contains a set of macros to allow code to be written that can be compiled using either Catalina or the ICC compiler (from ImageCraft). Note that if you downloaded the previous version, you should overwrite it with the version in this patch release.
Note that this is a cumulative patch - i.e. it includes all previous patches. Just unzip the patch over a Catalina Release 2.3 installation and rebuild any affected C programs - no need to rebuild either Catalina or the libraries.
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
The attached files contain a binary-only pre-release of Catalina 2.4, including support for the BlackCat source level debugger developed by Bob Anderson.
Please do not download these files unless you are instructed to do so. They are encrypted and you will not be able to use them!
If you are an alpha tester of BlackCat, I will PM you with the password required to unencrypt the files. Note that the files were compressed and encrypted with 7-Zip (which is free and available here) - you will probably need to use that program to unencrypt and uncompress them.
Ross.
P.S. The BlackCat document included with this release says you have to install Catalina 2.4 first, then install BlackCat. In fact, both Catalina 2.4 and BlackCat will be installed simply by installing this single binary release.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
One of the alpha testers Bob Anderson and I had lined up for the new Catalina BlackCat source level debugger has bailed due to unforseen work commitments (although I can't imagine how anything could possibly be more important than this!).
We're therefore looking for a replacement to do some initial BlackCat testing - before we issue a more general beta release (which will probably be in about 3-4 weeks).
To participate you should have:
general familiarity with the Propeller (e.g. how to load programs etc)
some familiarity with C (Catalina experience is useful but not really necessary)
some familiarity with using a source level debugger (especially on an embedded processor)
A windows PC (Linux is not supported yet) and a suitable Propeller platform (Hydra, Hybrid, Demo board, TriBladeProp, Morpheus or DracBlade)
We don't expect anything too formal - we would just like you to write some simple ANSI C programs of your own devising, debug them with BlackCat - then report back any problems, issues or limitations you find (other than those we already know about). Suggestions on general user interface or functional improvements are also encouraged.
I'm attaching the short tutorial document I wrote to introduce BlackCat to the other alpha testers - so you'll know a little about what you might be getting into.
Please PM me if you're interested.
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
Thanks. Bob's on holiday at present, so thanks on his behalf as well (after the stress of getting the first BlackCat release out, I think he needed one ).
Interested in being an alpha tester?
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
Jazzed has just alerted me to a known bug in both Vista and Windows 7 which will affect Catalina. If you use those operating systems you will only be able to compile Catalina programs when logged in as Administrator. This bug does not affect Windows XP.
When logged in using a non-admin account you will get messages such as "cannot open temporary files" and "Error <filename>: No PUB routines found in Catalina.spin".
I will try and fix this in the next release.
Thanks Jazzed!
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
The README.codeblocks install instructions step 3 needs improvement.
On Windows XP the codeblocks directory will be under the "hidden" Application Data folder.
C:\Documents and Settings\<user>\Application Data\codeblocks
I wanted to set a "baseline" by running Code:Blocks without BlackCat support.
It seems there is no simple serial port I/O option for using the Propellent loader and Parallax Serial Terminal PST.
I see the PropTerminal thingy, but I have never had a good reason to use it and don't expect I ever will.
What did I miss? How can I turn on simple serial port I/O?
Thanks - I'll update the code::blocks install document.
On the serial terminal issue, I use the Parallax Serial Terminal a lot. It works with the "PC" HMI option. For example:
catalina test_suite.c -lc -D PC
Then load your program, start PST and away you go! (If you haven't modified Catalina_Common_input.spin, you should select 115,200 baud). Also note that if your program starts generating output as soon as it is started, there's a good chance you will miss the initial output while you are starting up PST.
By the way, neither Catalina nor Code::Blocks currently provide you a way to load a binary program into the Prop - that's coming in the next release. I currently use the Parallax Spin Tool - but Propellent should work ok as well (although I've never used it).
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
I got something working with Code::Blocks anyway. Add this to post build step assuming you have propellent and it will load your program without requiring that extra step: propellent .\$exe_output.binary
Thanks for the -D PC tip. It never occurred to me that PC would mean use serial IO ... oh well at least that works ....
That initial output problem is overcome with one second of sleep [noparse]:)[/noparse]
PC means "use a PC-based terminal emulator". I didn't call it "serial" or "IO" or anything like that because have intentions of building a proper serial device handler for Catalina in the near future.
I don't use Propellent because it is Windows only. If anyone knows of an equivalent that works under both Linux and Windows I'd gladly add it to Code::Blocks. I was just about to start writing my own [noparse]:([/noparse]
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
RossH: BradC may be willing to share his download code.
I always put a delay in my code at the start which allows time to switch to PST or the terminal in bst. 2-3 seconds is a good value if you are used to it, otherwise you may need 5.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ Links to other interesting threads:
RossH said...
Hi Jazzed,
I don't use Propellent because it is Windows only. If anyone knows of an equivalent that works under both Linux and Windows I'd gladly add it to Code::Blocks. I was just about to start writing my own [noparse]:([/noparse]
I think you missed the point of my post. Using the variable $exe_output in code::blocks allows you to use any loader in the post-build step that returns 0 on success or non-zero on failure.
I wrote a loader C package that supports Linux and WIDOWS APIs. It does not enumerate the ports though. I'll zip it to you in email later today.
I find 1 second delay more than adequate with PST since it can be started at the same time the propeller is loading. What I find in-adequate there is not allowing '\n' -> '\r\n' translation. Of course the best scenario is not having to use a separate open/close port step, etc... at all (something I use in my dev-tools) [noparse]:)[/noparse]
Ok, got it. But I'd still prefer a common windows/linux loader so people didn't have to mess with setting this up. Brad's bstl (as suggested by Cluso99) would work for LMM programs - but of course it can't load Catalina XMM programs.
I've just started working on a loader of my own that will do what I need. If you already have one, that would be great!
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
Is there a one-step installation for Catalina with Code Blocks? Even flash drives can handle truly monstrous builds there days.
Could you provide a batch script for a total rebuild?
The BlackCat alpha documentation says it does not support XMM programs on the Hydra or the Hybrid because of the contention between the HX512 SRAM module and the serial comms on pins 30 and 31. This issue has now been resolved (actually, Bob Anderson had already fixed it on BlackCat, but I had not had time to incorporate it into the alpha release).
BlackCat can now use any 2 available pins for debugging. On the Hydra/Hybrid I wired up a simple cable to use the mouse port. You could also use the keyboard port, or any other pins not used in the program to be debugged. This also allows programs that themselves use serial comms to be debugged - e.g. if the program needs to to interact with a PC, or with another Prop (on a TriBladeProp or Morpheus you can now debug programs running on all Props at the same time from a single PC).
While I was messing about with this, I wrote a new loader program that allows SPIN/PASM, Catalina LMM and Catalina XMM programs to be loaded directly from the PC into the Propeller. This loader works on any Prop, including the Hydra/Hybrid (using the same trick - i.e. a cable plugged into the mouse port. Once the program is loaded, you can replace this cable with the normal mouse if you need it).
This means no more messing about with SD cards or EEPROMS just to run XMM programs, which has always been a pain (at least for me!).
I will add all this stuff to the forthcoming Catalina 2.4 release, currently expected to coincide with the first public release of Bob's BlackCat souce level debugger. However, in the meantime if anyone with a Hydra or Hybrid wants to become a BlackCat alpha tester I will update the current alpha release - just let me know.
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
Hi @all,
I'm new to the Propeller, though I spent a few days reading all the fascinating details about it. I actually don't even have one yet, just ordered a prototyping board today. Anyway, I intend to use Ross' C compiler on Linux soon. While setting up the linux_binary_x.tgz files and looking through the LMM code in Catalina_LMM.spin (in order to understand how it works) I saw the implementation of f_cali has an avoidable jump to #f_jmpi, if you'd move the f_jmpi code right after (into) f_cali.
Comments
Attached is a file intended to be used as a "wrapper" for the Propeller-specific functions implemented in both Catalina and ICC (e.g. accessing the special registers, or performing low-level hardware-dependent functions such as WAITCNT or LOCKSET). This file is intended to allow C programs to be written independently of the C compiler used.
As an example of its use, here is how the first test program in this ICC-specific thread would look if written to use the macros contained in the file:
The program could then be compiled using either the Catalina or ICC compiler.
All that the attached file contains is a set of macros - you have to tell it whether to generate either Catalina or ICC code (see the file itself for more details). It is also very much a work in progress, and has not been tested much yet, and there are a few functions not yet implemented. However, if there is any interest in this kind of thing I will maintain it as a standard part of the next Catalina release.
Ross.
EDIT: attachment deleted - please download Catalina 2.3 Patch Release 16 Feb 10, which contains an updated version of "catalina_icc.h".
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
Post Edited (RossH) : 2/15/2010 11:05:49 PM GMT
Ross.
P.S. I realized just after I posted that I had uploaded the wrong version - if you already downloaded it, please download it again.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
Oops! Thanks - now corrected.
I did warn people I hadn't tested the ICC part!
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
I have had a couple of questions about using the Propeller special registers in Catalina, so I thought I'd post the answer here.
Catalina provides built-in functions to access registers. These are defined in the include file "catalina_cog.h" (in the normal include directory).
These functions include such things as _ina() and _cnt(). Note that these are functions, not constant addresses or variables. To use them you would say something like:
See "catalna_cog.h" for a list of all the functions. Also, see the patch release for Catalina 2.3 issued on 16 Feb 10, which contains a set of macro definitions that should work under either Catalina or ICC compiler.
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
Post Edited (RossH) : 2/15/2010 11:07:49 PM GMT
If you read this, please send me a PM with some contact details.
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
I've just added a small patch release to Catalina 2.3 (Patch Release 16 Feb 10). You can find it attached to the first post of this thread. Here are the details:
- add _clockmode(), _clockfreq() and _clockinit() library functions to fetch the current clock mode, fetch the current frequency, or set the clock mode and frequency. See the inlcude file "catalina_cog.h" for more detail. There is also a new demo program that uses them - test_freq.c
- add include file "catalina_icc.h" which contains a set of macros to allow code to be written that can be compiled using either Catalina or the ICC compiler (from ImageCraft). Note that if you downloaded the previous version, you should overwrite it with the version in this patch release.
Note that this is a cumulative patch - i.e. it includes all previous patches. Just unzip the patch over a Catalina Release 2.3 installation and rebuild any affected C programs - no need to rebuild either Catalina or the libraries.
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
Post Edited (RossH) : 2/16/2010 5:24:48 AM GMT
The attached files contain a binary-only pre-release of Catalina 2.4, including support for the BlackCat source level debugger developed by Bob Anderson.
Please do not download these files unless you are instructed to do so. They are encrypted and you will not be able to use them!
If you are an alpha tester of BlackCat, I will PM you with the password required to unencrypt the files. Note that the files were compressed and encrypted with 7-Zip (which is free and available here) - you will probably need to use that program to unencrypt and uncompress them.
Ross.
P.S. The BlackCat document included with this release says you have to install Catalina 2.4 first, then install BlackCat. In fact, both Catalina 2.4 and BlackCat will be installed simply by installing this single binary release.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
Post Edited (RossH) : 2/16/2010 4:53:17 AM GMT
One of the alpha testers Bob Anderson and I had lined up for the new Catalina BlackCat source level debugger has bailed due to unforseen work commitments (although I can't imagine how anything could possibly be more important than this!).
We're therefore looking for a replacement to do some initial BlackCat testing - before we issue a more general beta release (which will probably be in about 3-4 weeks).
To participate you should have:
- general familiarity with the Propeller (e.g. how to load programs etc)
- some familiarity with C (Catalina experience is useful but not really necessary)
- some familiarity with using a source level debugger (especially on an embedded processor)
- A windows PC (Linux is not supported yet) and a suitable Propeller platform (Hydra, Hybrid, Demo board, TriBladeProp, Morpheus or DracBlade)
We don't expect anything too formal - we would just like you to write some simple ANSI C programs of your own devising, debug them with BlackCat - then report back any problems, issues or limitations you find (other than those we already know about). Suggestions on general user interface or functional improvements are also encouraged.I'm attaching the short tutorial document I wrote to introduce BlackCat to the other alpha testers - so you'll know a little about what you might be getting into.
Please PM me if you're interested.
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
Thanks. Bob's on holiday at present, so thanks on his behalf as well (after the stress of getting the first BlackCat release out, I think he needed one
Interested in being an alpha tester?
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
Sorry I cancelled the Sydney Propfest last Friday evening. Maybe I will have time this w/e - I'll call you when I know for sure.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
The documentation for BlackCat says the XMM SMALL mode hasn't been tested - well it has now, and it seems to work perfectly.
This means BlackCat can debug all the Catalina memory modes - LMM (TINY) and XMM (SMALL and LARGE).
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
Jazzed has just alerted me to a known bug in both Vista and Windows 7 which will affect Catalina. If you use those operating systems you will only be able to compile Catalina programs when logged in as Administrator. This bug does not affect Windows XP.
When logged in using a non-admin account you will get messages such as "cannot open temporary files" and "Error <filename>: No PUB routines found in Catalina.spin".
I will try and fix this in the next release.
Thanks Jazzed!
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
Post Edited (RossH) : 2/19/2010 12:13:04 AM GMT
On Windows XP the codeblocks directory will be under the "hidden" Application Data folder.
C:\Documents and Settings\<user>\Application Data\codeblocks
I wanted to set a "baseline" by running Code:Blocks without BlackCat support.
It seems there is no simple serial port I/O option for using the Propellent loader and Parallax Serial Terminal PST.
I see the PropTerminal thingy, but I have never had a good reason to use it and don't expect I ever will.
What did I miss? How can I turn on simple serial port I/O?
Thanks - I'll update the code::blocks install document.
On the serial terminal issue, I use the Parallax Serial Terminal a lot. It works with the "PC" HMI option. For example:
Then load your program, start PST and away you go! (If you haven't modified Catalina_Common_input.spin, you should select 115,200 baud). Also note that if your program starts generating output as soon as it is started, there's a good chance you will miss the initial output while you are starting up PST.
By the way, neither Catalina nor Code::Blocks currently provide you a way to load a binary program into the Prop - that's coming in the next release. I currently use the Parallax Spin Tool - but Propellent should work ok as well (although I've never used it).
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
Thanks for the -D PC tip. It never occurred to me that PC would mean use serial IO ... oh well at least that works ....
That initial output problem is overcome with one second of sleep [noparse]:)[/noparse]
PC means "use a PC-based terminal emulator". I didn't call it "serial" or "IO" or anything like that because have intentions of building a proper serial device handler for Catalina in the near future.
I don't use Propellent because it is Windows only. If anyone knows of an equivalent that works under both Linux and Windows I'd gladly add it to Code::Blocks. I was just about to start writing my own [noparse]:([/noparse]
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
Post Edited (RossH) : 2/20/2010 10:39:29 AM GMT
I always put a delay in my code at the start which allows time to switch to PST or the terminal in bst. 2-3 seconds is a good value if you are used to it, otherwise you may need 5.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
I think you missed the point of my post. Using the variable $exe_output in code::blocks allows you to use any loader in the post-build step that returns 0 on success or non-zero on failure.
I wrote a loader C package that supports Linux and WIDOWS APIs. It does not enumerate the ports though. I'll zip it to you in email later today.
I find 1 second delay more than adequate with PST since it can be started at the same time the propeller is loading. What I find in-adequate there is not allowing '\n' -> '\r\n' translation. Of course the best scenario is not having to use a separate open/close port step, etc... at all (something I use in my dev-tools) [noparse]:)[/noparse]
Ok, got it. But I'd still prefer a common windows/linux loader so people didn't have to mess with setting this up. Brad's bstl (as suggested by Cluso99) would work for LMM programs - but of course it can't load Catalina XMM programs.
I've just started working on a loader of my own that will do what I need. If you already have one, that would be great!
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
Could you provide a batch script for a total rebuild?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
JMH
There are batch scripts provided for rebuilding Catalina. Please see page 39 of the Reference Manual for more detail.
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
JMH
The BlackCat alpha documentation says it does not support XMM programs on the Hydra or the Hybrid because of the contention between the HX512 SRAM module and the serial comms on pins 30 and 31. This issue has now been resolved (actually, Bob Anderson had already fixed it on BlackCat, but I had not had time to incorporate it into the alpha release).
BlackCat can now use any 2 available pins for debugging. On the Hydra/Hybrid I wired up a simple cable to use the mouse port. You could also use the keyboard port, or any other pins not used in the program to be debugged. This also allows programs that themselves use serial comms to be debugged - e.g. if the program needs to to interact with a PC, or with another Prop (on a TriBladeProp or Morpheus you can now debug programs running on all Props at the same time from a single PC).
While I was messing about with this, I wrote a new loader program that allows SPIN/PASM, Catalina LMM and Catalina XMM programs to be loaded directly from the PC into the Propeller. This loader works on any Prop, including the Hydra/Hybrid (using the same trick - i.e. a cable plugged into the mouse port. Once the program is loaded, you can replace this cable with the normal mouse if you need it).
This means no more messing about with SD cards or EEPROMS just to run XMM programs, which has always been a pain (at least for me!).
I will add all this stuff to the forthcoming Catalina 2.4 release, currently expected to coincide with the first public release of Bob's BlackCat souce level debugger. However, in the meantime if anyone with a Hydra or Hybrid wants to become a BlackCat alpha tester I will update the current alpha release - just let me know.
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
Post Edited (RossH) : 2/24/2010 1:33:46 AM GMT
I'm new to the Propeller, though I spent a few days reading all the fascinating details about it. I actually don't even have one yet, just ordered a prototyping board today. Anyway, I intend to use Ross' C compiler on Linux soon. While setting up the linux_binary_x.tgz files and looking through the LMM code in Catalina_LMM.spin (in order to understand how it works) I saw the implementation of f_cali has an avoidable jump to #f_jmpi, if you'd move the f_jmpi code right after (into) f_cali.
It may be just 4 clock cycles, but why waste them?
I'm keen to start coding on the prop and see what I can achieve and perhaps contribute to this community.
Juergen
Post Edited (pullmoll) : 3/2/2010 10:24:35 PM GMT