Setting up XMMC (SimpleIDE C) on a custom board (to use EEPROMs)?
z80jon
Posts: 12
in Propeller 1
Hello,
I'm using a board I made with two M24512 EEPROMs (64KB each) over I2C, and was wondering how exactly one goes about configuring SimpleIDE to let me make full use of them. Doing a bit of googling around, I wasn't able to find any clear-cut "here's how you set up XMMC for EEPROMs on a custom board"-esque guides, hence this thread. The board runs fine as a "generic" board under SimpleIDE, but I'm really just trying to break the 32kB memory barrier if at all possible with the way I have the board built right now.
Any advice you can offer would be greatly appreciated.
Thanks
Comments
The way the current P1 boards work is that the loader program loads a small stub program that then except the compiled program and writes it over I2C to the EEPROMs.
Mike
This much I know. What I'm really looking for here is a link to a guide or some form of instructions on how to configure XMMC so that I can make full use of the EEPROM space available on the board, as opposed to just 32kB. Thank you for your input, though.
Support for XMMC has not been available for at least six years, maybe even ten years. So, their is very little information that is available.
If you go to ...SimpleIDE/propeller-gcc/propeller-load folder, you will see a bunch of .cfg files, if I recall correctly, that is where you would start. How you get the .cfg file to become available in the 'board select', I do not recall how that is done. I noticed that Parallax has changed the files structure for SimpleIDE, it took me awhile to figure out where the .cfg files are stashed. Hope this helps a kittle, have fun.
Ray
This may or may not be relevant to this conversation, but the Catalina C compiler supports execution of code directly from an EEPROM, assuming it is large enough. On my USB Project Board I replaced the 64KB EEPROM with a 256KB one.
When compiling the C code using Catalina, the SMALL Memory Model must be chosen, along with the XEPROM loader. The SMALL Memory Model means that all data and stack variables are stored within HubRam, while the code itself is stored in and executed from the EEPROM.
It works, but be aware that program execution is quite slow. Speed can be increased by enabling memory caching (up to 8KB) using HubRam.
In my project I installed SPI SRAMs on the board and chose the LARGE Memory Model instead. This means that all code and data variables are stored in SPI SRAM, with only stack variables stored within HubRam. I enabled 8KB of caching to help speed it up.
I've found the execution speed using this arrangement to be acceptable. The Prop interfaces with a GPS receiver, parses and formats binary data from it, then provides screen updates at a 1Hz rate. It works well.
Also keep in mind that the Catalina C compiler is still supported and kept up to date by its creator @RossH.
This is an interesting point. If PropGCC isn't going to be supported going forward, Catalina is probably the better choice. It's unfortunate because a lot of work, much of it unpaid, went into PropGCC.
It is really to bad, I really like SimpleIDE and PropGCC. I tried Catalina a couple of times, but it was not for me.
I was really hoping that somebody would of taken on the updating and general improvement of SimpleIDE. It would be nice to have SimpleIDE supporting both the P1 and the P2. Do not how many money supporters Eric has, but I would imagine that who ever took up the SimpleIDE project, they also would find some money supporters. You would not become super rich, but It would probably buy you some juicy hamburgers, I hope.
Like David says, a lot of work went into PropGCC, it is a shame that it is not being pushed forward to support the P1 and the P2.
Ray