Shop OBEX P1 Docs P2 Docs Learn Events
Catalina - a C compiler for the Propeller (now with TriBladeProp support) - Page 6 — Parallax Forums

Catalina - a C compiler for the Propeller (now with TriBladeProp support)

123468

Comments

  • RossHRossH Posts: 5,516
    edited 2009-06-03 07:44
    @Infinity,

    On linux the executable files don't have the .exe extension - i.e. they are not called 'rcc.exe', 'lcc.exe' etc, they are just called 'rcc' and 'lcc'

    If the make file is trying to move rcc.exe then it is possible the makefile has a problem. I did have this issue once before but thought I had fixed it. If you look in the custom.mk file in the source\lcc subdirectory you should see something like:

    install:
        cp $Brcc$E /usr/local/lib/catalina
        cp $Blcc$E /usr/local/lib/catalina
        cp $Bcpp$E /usr/local/lib/catalina
    
    



    If instead you see something like:

    install:
        cp $Brcc.exe /usr/local/lib/catalina
        cp $Blcc.exe /usr/local/lib/catalina
        cp $Bcpp.exe /usr/local/lib/catalina
    
    



    then that's the problem - fix this file and try again. If you still have problems then PM me and I'll send you my email address to send me a listing of the actual build ouptut.

    Ross.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
  • InfinityInfinity Posts: 10
    edited 2009-06-03 08:34
    Thanks now there is no extension and the lcc is compiled on Mac OSX, but there are problems with the lib so you get a PM.

    ,Infinity
  • grahamreitzgrahamreitz Posts: 56
    edited 2009-06-03 12:10
    @HollyMinkowski

    I've been using the Imagecraft ICC C compiler for a little over a month or and it works quite nicely.

    The upside is that ICC uses the LMM model (no extra hardware, memory, necessary) and it's quite mature relative to Catalina. Rich at ImageCraft has been ultra helpful. I had one minor issue, which was remedied almost immediately. Had this been most other compiler companies it could have been weeks or months before I had a fix.

    The downside it that it's not free, $99 for the non-commercial version. It's slightly pricey, in my opinion, but not outrageous either by any means. I bet $50-75 for the NC version and $150-$175 for the commercial version would be the sweet spot.

    I would like to give the Catalina C compiler a try, but I lack a board with the extra hardware, and Ross has not indicated whether or not he will provide it under a license that doesn't require releasing your product's source code. I suspect the reason is that the stdlibs are compiled and statically linked. Compiling code itself with GPL compilers like GCC doesn't require you to release your source.

    Good luck and enjoy the Propeller it is a real treat to work with!

    graham
  • RossHRossH Posts: 5,516
    edited 2009-06-03 13:26
    @greitz

    I'm not sure what you're talking about. Perhaps you should re-read the Catalina documentation.

    Catalina doesn't need any extra hardware to run C programs - it also uses an LMM memory model. Catalina will run "as is" on a Hydra, or on a Demo board. It will also run on an ABC board or an XYZ board. You just need to set a few constant values (i.e. the clock frequency and I/O pin numbers) - the same way you do with any other Propeller program. No doubt the same way you do with ImageCraft.

    On other hand, Catalina can use external RAM if you happen to have a Hydra Xtreme board.

    As for the licensing, it has nothing to do with the libraries, which are freely distributable and modifiable in both source and binary form. It is currently my choice to offer Catalina under the GPL. I have previously indicated that when it is ready for a non-beta release, I will release the Kernel under the "lesser" or "modified" GPL so that you don't have to release your own source code just to use it. I will probably not do that with either the Code Generator or the Binder, so that you cannot release your own compiler based on Catalina without also releasing the source code.

    Ross.

    P.S. It is quite true to describe Catalina as immature compared to ImageCraft. I have said this myself.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
  • grahamreitzgrahamreitz Posts: 56
    edited 2009-06-03 16:01
    @RossH,
    RossH said...
    Catalina doesn't need any extra hardware to run C programs - it also uses an LMM memory model. Catalina will run "as is" on a Hydra, or on a Demo board. It will also run on an ABC board or an XYZ board. You just need to set a few constant values (i.e. the clock frequency and I/O pin numbers) - the same way you do with any other Propeller program. No doubt the same way you do with ImageCraft.

    Sorry about that, I was completely mistaken or misinformed. I am certain I gathered a little ignorance due to reading many Catalina/Hydra posts, and inferred a dependency.
    RossH said...
    Since others will no doubt bring it up again, I should mention the licensing. Parts of Catalina (including the Kernel and the Binder) are currently issued under the GNU Public Licence (GPL). This doesn't mean you can't use them in commercial products and charge money for products that use them, but it does mean that if you use them you must (a) acknowledge their origin and (b) make your source code available. I have already said that when I'm ready to take Catalina out of beta status I may revisit this (at least for the Kernel, so you don't have to release your products source code), but that is how things stand at present. Partly, this is my choice to avoid undercutting the good work that ImageCraft have done.

    This was not a definitive answer. It sounded like you were thinking about it and had not decided. There might be a newer post (after 5/20/09) that I missed where you clarified your intentions, thanks for making that clear now.

    Kindly,
    graham
  • RossHRossH Posts: 5,516
    edited 2009-06-07 04:09
    @All,

    The fourth beta release of Catalina is now available. See the first few entries in this thread for sources and binaries.

    With this release, Catalina is now substantially complete hop.gif

    This is therefore expected to be the final 'beta' release. Unless a major problem emerges with this release, the next one will be the first 'offical' release. Between now and then I will be concentrating on adding support for various different hardware configurations - including various platforms with XMM hardware and SD Card slots.

    New features in beta 4 include:
    • A tutorial document has been added which describes in detail how to use most of the major features of Catalina.
    • The ANSI C library is now complete (and can now be built under Win32). Newly implemented C library functions include:
        - Functions related to non-local goto - setjmp and longjmp. - Functions related to signals - signal, raise, abort etc. - Functions related to time - clock, time, asctime, mktime etc.
    • A new Real-Time Clock (RTC) plugin has been added. This is used to support the ANSI-compliant time functions. Some additonal non-ANSI functions are also provided - e.g. to allow the time to be set programatically.
    • A new EMM program mode has been added to support Propellers with 64k (or larger) external EEPROMS. This mode allows larger LMM C programs to be created, since EMM programs can use the entire 32k of Hub RAM for application C code. Previously, this space had to be shared between the C code and the the target/plugin code.
    • Configuration for different Propeller platforms has been made much simpler. All platform-dependent options (e.g. clock frequency, I/O PIN definitions etc) are now combined in a single SPIN file.
    • The Hydra Asset Manager (HAM) is no longer required to build XMM programs. Now the Catalina Binder combines the XMM target file with the program file to produce a single "ready to execute" output file.
    • Catalina now supports many new output formats in addition to the standard eeprom and binary files - e.g. Motorola S-records or Intel Hex records.
    • A new version of Homespun (0.26) is included, which fixes a problem generating large binary files, and also allows the listing output file to be renamed with the '-o' option (many thanks as usual to Michael Park!).
    • Some bugs have been fixed:
        - A bug converting constant numbers to addresses has been fixed. - A bug defining static symbols with file scope has been fixed. - A bug in line termination handling has been fixed. - A bug in ungetc not being called correctly has been fixed. - A bug resolving symbols in functions with file scope has been fixed.
    For more details, see the Catalina documents.


    To clear up any confusion, this beta release is still licensed under the Gnu General Public License (GPL). However, in the forthcoming 'offical' releases, the Catalnia Kernel will be released under the GNU Lesser General Public License (LGPL) so that programs compiled with Catalina can be used in commercial products without requiring the release of program source code.

    Again, to clear up some apparent confusion, Catalina now supports three different compilation modes:
    • LMM mode, which can generate C programs that are completely self-contained within 32k. The space available for C application code is the normal Propeller 32k RAM minus any space required for the target initialization code and the various plugins - but the program should be able to execute on any Propeller platform without any additional external hardware.
    • EMM mode, which can support larger C programs than is possible with just LMM. The space available for C application code can be the entire Propeller 32k RAM since the C program does not need to share this space with the target initialization or plugin code. However, this mode requires a Propeller with an external EEPROM of 64k (or larger).
    • XMM mode, which can be used to build C programs of arbitrary size (depending primarily on the capabilities of the XMM hardware). However, this mode requires additional compatible XMM hardware. In this release, the only XMM hardware supported is the Hydra Xtreme - this allows C application code to be up to 512K, but (due to the limitations of the Xtreme) programs larger than 64K may be substantially slower to execute than programs of 64K or less.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina

    Post Edited (RossH) : 6/7/2009 7:09:04 AM GMT
  • Bill HenningBill Henning Posts: 6,445
    edited 2009-06-07 04:35
    Excellent work Ross...

    After UPEW I'll see about getting it running... my assembler is written in C, and with XMM, I think it will be able to run natively under Largos under an XLMM kernel if compiled with Catalina.

    Do you have any idea how large the Catalina executable would be as XLMM code? I need to know how much ram I'll have to attach to my propellers smile.gifsmile.gifsmile.gif

    Best Regards,

    Bill

    p.s.

    I benchmarked the Largos prototype messaging system... almost 2300 empty messages served per second by a prototype Spin kernel and messaging object!

    I expect a roughly 50x speed increase once the pasm LMM messaging and kernel are in.
    RossH said...
    @All,

    The fourth beta release of Catalina is now available. See the first few entries in this thread for sources and binaries.

    With this release, Catalina is now substantially complete hop.gif
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Largos - a feature full nano operating system for the Propeller
    www.mikronauts.com - a new blog about microcontrollers
  • RossHRossH Posts: 5,516
    edited 2009-06-07 04:56
    Hi Bill,

    No - no idea yet. I have been so constrained by the limitations of the Hydra Xtreme as an XMM solution that (after my initial burst of enthusiasm) I have had to put aside any further XMM-related work over the past few weeks. I also decided that I should spend a bit more time on tidying up the Catalina 'basics' - so that others could use it more easily. After all, most people will never have any XMM hardware attached to their Prop at all!

    However, now that that's done, I hope to get back to it. Today I'm going to see if I can finally get my CPLD programming cable assembled (I've had the parts for nearly a week now, but while I can write software in the odd few moments of free time I get here and there, I get completely flummoxed tryng to do the same thing with hardware!).

    Ross.

    P.S. Good work on Largos - I'll have to give it a try.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
  • jazzedjazzed Posts: 11,803
    edited 2009-06-07 05:13
    Congrats Ross. Maybe you'll get a chance for some rest now. It's nice to see you implement the EMM feature. We discussed a similar feature at length in another thread for Spin/PASM. I read your docs, and it is very difficult to tell conceptually how the cog memory usage is implemented. Guess I'll have to read your code. The simplest way to use COG space from eeprom is for drivers like fullduplex serial, float math, etc..., and there was a lengthy discussion of this before. Another way is store pasm library code in COG space and use it on demand, but that would not likely be efficient. Yet another way would be to use COG space as just storage for LMM code. Too late for me to dig this mystery [noparse]:)[/noparse]

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


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

    Post Edited (jazzed) : 6/7/2009 5:38:32 AM GMT
  • RossHRossH Posts: 5,516
    edited 2009-06-07 06:15
    Hi Jazzed,

    It's not very sophisticated - the cogs are primarily used for device drivers, but are also used to implement library functions. The new RTC plugin is a fairly simple example of a device driver that interacts with the built-in Propeller 'clock' hardware - but the various Floating Point plugins are a good example of using one or more cogs as a library extensions.

    The basic HMI drivers (screen, keyboard, mouse etc) are just the normal Parallax drivers and typically take a cog each - but the HMI 'plugin' also takes a cog - and it is more like an extension of the stdio library specifically devoted to stdin/stdout/stderr - it not only manages interaction with the basic drivers, it also adds functionality of its own, such as interpreting control characters and performing screen scrolling etc.

    I've also 'reserved' for future use a plugin type that I intend to use to provide an alternative means of implementing low level 'block' oriented functions (like block moves and string comparisons) that are much quicker to do in PASM than in C. At the moment these are all done (in C) in library functions - this makes the resulting C programs much bigger and slower than they really need to be.

    Eventually, you will have a choice of how many cogs you want to devote to 'library' plugins, in the same way you can currently choose how many cogs you devote to floating point. If you don't need the cogs for anything else, you can elect to put the library functions in them and get smaller programs and faster execution. If you need the cogs for other purposes, you emulate the same functions in C and live with slower execution and bigger programs.

    I don't use any cogs for simple storage. Generally I think cogs are too valuable for that - and I never seem to have enough! But I may end up using one cog as an LMM 'instruction cache' for some types of XMM hardware.

    Ross.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
  • jazzedjazzed Posts: 11,803
    edited 2009-06-07 06:46
    I suppose there is a way to omit hmi drivers? Some platforms won't use hmi "device" drivers at all on the execution cog since almost all pins are used for memory interface. In that case, one could use multiple cogs to speed up memory access among other things.

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


    Propalyzer: Propeller PC Logic Analyzer
    http://forums.parallax.com/showthread.php?p=788230
  • RossHRossH Posts: 5,516
    edited 2009-06-07 07:03
    Hi Jazzed,

    Yes, there's an example 'no_hmi' target provided that doesn't load any HMI drivers (or the HMI plugin). I use it for the 'test_LEDs' demo program:

    lcc test_leds.c -lc -o test_leds -Wl-tno_hmi
    


    The whole point about the various targets is that you can customize them to load only the plugins you want to use. The rest of the cogs are then yours to use for whatever you want.

    Ross.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
  • RossHRossH Posts: 5,516
    edited 2009-06-07 07:38
    @all,

    Almost forgot - Infinity reported that he has successfully compiled Catalina using gcc under OSX on a Mac. A few minor problems he found with the Makefiles on that platform have been incorporated into this release. If you have a Mac, you should start with the linux sources and follow the linux instructions.

    Ross.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
  • RossHRossH Posts: 5,516
    edited 2009-06-08 02:46
    @all,

    Further to my response above (to jazzed), I have just added a 'cog usage' addendum to the first post in this thread. As you will see from that document, Catalina can use anywhere from 1 to 7 cogs, depending to the target you choose.

    The 8th cog is not quite so easy to use because it is required to execute the SPIN code that performs the target initialization - but like any other cog not allocated to a specific use by the target, this cog is available for general use once the kernel begins executing - these cogs can be started either in PASM (using the COGINIT instruction) or in C (using the _coginit() function).

    Ross.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
  • RossHRossH Posts: 5,516
    edited 2009-06-08 14:20
    @All,

    Sorry - just found a few typos in the new tutorial document - some of the commands near the end of the doc were incorrect (e.g. the ones to compile hello_World.c as an EMM or XMM program).

    I've updated the file catalina_documents.zip file. Please download that file again.

    Ross.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
  • RossHRossH Posts: 5,516
    edited 2009-06-11 00:11
    @all,

    Just a progress update. I have successfully used epmoyer's modified formware for the HX512 to give Catalina access to the full 512K RAM on that card. For details of this firmware see this thread. The only modifications to Catalina are a couple of lines of Kernel code - and the resulting kernel is still backward compatible with the original HX512.

    However, unless anyone has an urgent need for it, I will not bother to release a new version of Catalina at this point. The new capability doesn't really mean much on the Hydra because Catalina can currently only load programs from EEPROM anyway (with the Hydra the HX512 and the SD Card slot cannot be used at the same time). This effectively means programs are still limited to 96K code space, so the only benefit for Hydra users this point would be to go from 64K code sizes to 96K. And most people can't use the new capability in any case because it requires the use of a special programming cable to reprogram the HX512 - which hardly seems worth bothering with for a measly 32K!.

    However, I'm expecting a Hybrid board to show up shortly (thanks Coley!) and on that board it will make a significant difference - with that board Catalina can use the HX512 at the same time as the SD Card, and will be able to load programs that will make use of the full 512K.

    I'm also expecting a TriBladeProp (thanks Cluso99!) and various other cards, so I plan to support them all at the same time in the next release.

    Ross.

    P.S. If anyone does want to try out the experimental kernel with a modified HX512, send me a PM.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
  • RossHRossH Posts: 5,516
    edited 2009-06-14 00:50
    @All,

    There is now a new section in the first post of this thread called "Problems Discovered Post Release". I will keep that up to date with any minor issues discovered by me or reported by others. Of course if any "showstopper" issues are found I'll issue a new release ASAP.

    Most recently, I had a report about Catalina not running correctly under 64 bit windows becasue of pathname differences - the best solution to this at present is to modify the hardcoded paths in both source\lcc\etc\catalina_win32.c and source\catalina\Catalina.c and recompile both LCC and the Catalina Binder (note that you need to use the short filename equivalent of wherever you installed Catalina). Next release I'll try and make Catalina correctly use an environment variable (Windows ... sigh!).

    Ross.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
  • RossHRossH Posts: 5,516
    edited 2009-06-14 14:25
    @All,

    I have added a new document describing the Catalina LMM and XMM Kernels to the top of this thread, in the file catalina_kernel_doc.zip. This document will be combined with the other documentation in the next release.

    Ross.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
  • Bill HenningBill Henning Posts: 6,445
    edited 2009-06-14 22:14
    Ross,

    Sorry, I did release Las - but I took the time to finish practically all of the special LMM support first smile.gif

    Enjoy!

    Bill
    RossH said...
    @All,

    I have added a new document describing the Catalina LMM and XMM Kernels to the top of this thread, in the file catalina_kernel_doc.zip. This document will be combined with the other documentation in the next release.

    Ross.
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Las - Large model assembler for the Propeller (alpha version released)
    Largos - a feature full nano operating system for the Propeller
    www.mikronauts.com - a new blog about microcontrollers
  • jazzedjazzed Posts: 11,803
    edited 2009-06-15 00:23
    Hi Ross.
    I've looked at adding support for my SRAM module to Catalina today. It appears that xmm_progend.s is the "kernel" module that contains source for Hydra512K access. I'm thinking that creating a temporary copy of the file is fine for testing my hardware, but will require a "release" strategy that you can support. Have you given thought to infrastructure supporting third-party modules?
    Thanks.

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


    Propalyzer: Propeller PC Logic Analyzer
    http://forums.parallax.com/showthread.php?p=788230
  • RossHRossH Posts: 5,516
    edited 2009-06-15 01:11
    Hi jazzed,

    Yes, that is the code that gets loaded by the XMM Loader. This was a bit of a quick and dirty hack, I'm afraid - to support multiple XMMs it makes more sense to have each XMM target contain the necessary XMM kernel.

    For the moment, just modify that file to suit your board. In the next release, you will use the same kernel code but wrap it in a spin object and include it in a particular target. All I really need to do is use a different method to calculate the eeprom address where the XMM loader expects to find the kernel. In hindsight, I should have done it this way in the first place.

    Ross.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
  • jazzedjazzed Posts: 11,803
    edited 2009-06-15 04:25
    Hi Ross.

    Please check me on the steps below. Just for now, I'm trying to test what should work using othello xmm.
    Here's what I think I need to do to run othello XMM (I've already verified that I can run othello LMM).

    1: Change Catalina_Common.spin for platform
    2: build_othello_xmm
    3: run Catalina_XMM_Eeprom_Loader xmm_lores.spin (or hires)

    Anything else ?

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


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

    Post Edited (jazzed) : 6/15/2009 5:03:17 AM GMT
  • RossHRossH Posts: 5,516
    edited 2009-06-15 05:24
    hi jazzed,

    I assume from your previous post that you have now modified the xmm_progend.s file to include your XMM access routines. Here is what you should do next:

    1. Yes, you should modify the Catalina_Common.spin file. You should then run the 'build_targets' batch file (or script) in the target subdirectory.

    2. There is no longer a build_othello_xmm batch file (or script) in the current release, but if you still have this from a previous release it should still work. I presume if you are building it this way then you are trying to build just the C program image "standalone" - i.e. without any target code included. Is this correct? If so, what you end up with after this step is a binary intended to be loaded into EEPROM at address $8000. If instead you just want to build the whole thing in one executable (which you can just load into EEPROM starting at address $0000) use the following command instead:
    lcc othello.c -lc -Wl-x2 -o othello_xmm -Wl-w-e
    


    3. Assuming you do intend to build the compiled C program and the target separately, the next step is to run the target (not the loader - you don't normally run the loader directly, since at the conclusion of loading it automatically starts the kernel - and before you do that you also need to have set up the registry and various plugins). In the case of othello, you'll need at least a screen and a keyboard plugin, so the default xmm target (xmm_default.spin) is an appropriate one. Examine this file to see what it does - it is only a few lines of actual code, which does the following:
    - initializes the registry
    - starts the HMI plugin, which loads screen, mouse and keyboard (you can disable the mouse if you don't need it)
    - starts the Float_A plugin, since the XMM kernel has no floating point built in (but I don't think you need it for othello).
    - starts the XMM EEPROM Loader (this will start the kernel automatically)
    - stops its own cog


    Ross.

    P.S. I just noticed that one of the windows binary files at the top of this thread is incorrect - I seem to have accidentally included the linux_binary_2 file instead of the windows_binary_2 file - this is not really essential - it would just stop srecord from working. I'll fix it when I get home.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
  • RossHRossH Posts: 5,516
    edited 2009-06-15 05:29
    @jazzed,

    I noticed you edited your previous message while I was typing my reply - if you still have xmm_lores and xmm_hires you still seem to be using the previous release. I renamed the xmm targets in the current release to be xmm_tv and xmm_default (to be more consistent with the LMM target names). I think the rest of my comments still apply though.

    Ross.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
  • jazzedjazzed Posts: 11,803
    edited 2009-06-15 05:37
    It's late. I'm tired. Perhaps you can make a list of steps for me to follow for the new release. I'm pretty sure i downloaded the new release but just copied over the old files. It is important to me to make this work since Catalina is one route to executing XMM.

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


    Propalyzer: Propeller PC Logic Analyzer
    http://forums.parallax.com/showthread.php?p=788230
  • RossHRossH Posts: 5,516
    edited 2009-06-15 05:46
    hi jazzed,

    I know how you feel smile.gif

    Can you do me a favor and execute the command
    catalina -v
    

    This returns the number of the release (e.g. 1.3 is beta 3 and 1.4 is beta 4). Then I can figure out the appropriate commands for you to use.

    Ross.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
  • dMajodMajo Posts: 855
    edited 2009-06-15 08:17
    @RossH,

    In your second post of this thread you have included second part of linux binary instead of windows one
  • RossHRossH Posts: 5,516
    edited 2009-06-15 08:30
    @dMajo,

    Thanks - now fixed. The catalina_win32_binary_2.zip file contains only the various 'srecord' utility executables, which are not necessary unless you want to produce output formats other than the normal binary or eeprom formats (e.g. motorola s-records).

    Ross.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
  • RossHRossH Posts: 5,516
    edited 2009-06-15 09:04
    @jazzed,

    Further to my last post (I'm at home now and can actually try it, rather than just working from memory) ...

    The commands used to build xmm programs are the same under both beta 3 and beta 4 - but the results differ. E.g. the command to build othello as an xmm program is:
    lcc othello.c -lc -Wl-x2 -o othello_xmm -Wl-w-e
    

    This command was in 'build_othello_xmm' in beta 3, and is now in 'build_demos' in beta 4

    Under beta 3, this would build a 64kb eeprom file containing only the C program code - i.e. it would not include the target code. You had to combine this 64kb image manually with a 32kb target image (such as xmm_hires.eeprom) using HAM.

    Under beta 4, the same command now does this for you, and builds a 96kb file which contains both the C program and the target code (in this case since we did not specify any particular target it will use the 'xmm_default' target).

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
  • RossHRossH Posts: 5,516
    edited 2009-06-15 12:13
    @all,

    Daivd (Praxis) has created an installer program for the Catalina beta 4 binaries. This is simpler than downloading the multiple binary files at the top of this thread (but you may still need to download the source and demos).

    The installer is too large to post directly in these forums but David is currently hosting it here.

    Thanks, David.

    Ross.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
Sign In or Register to comment.