Memory Models Question.
BlackSoldierB
Posts: 45
I was researching the different memory models. The COG, LMM and CMM models are pretty clear to me.
To me it is not clear how XMM relates to XMMC.
Is XMMC a variant of XMM?
In the FAQ it says that:
I am using a ActivityBot and for all i know it doesn't have a flash or external ram.
Another thing that was not clear to is how big your program can be with XMMC?
To me it is not clear how XMM relates to XMMC.
Is XMMC a variant of XMM?
In the FAQ it says that:
But XMMC also stores it program in external memory, either flash or external ram. (According to the memory model page)Program instructions are stored in external [to the Propeller] memory such as EEPROM, Flash, SRAM, an SD card, or some other form of memory.
I am using a ActivityBot and for all i know it doesn't have a flash or external ram.
Another thing that was not clear to is how big your program can be with XMMC?
Comments
XMMC: The program's data is in hub memory.
XMM: data is placed in external memory.
Just to clarify, "data" in this context means lookup tables and variables right? Executable instructions (program memory) will always be stored in external memory, whether xmm or xmmc?
As to how big, that is limited by the external storage you have. Many boards have multiple megabytes of program storage for XMMC code. I'm pretty sure, unless you have a very non-demanding app that XMM mode would be excruciatingly slow.
xmmc - puts code in external memory starting at 0x30000000 (usually flash) and data in hub memory
xmm-single - puts code and data in external RAM starting at 0x20000000
xmm-split - puts code in flash starting at 0x30000000 and data in external RAM starting at 0x20000000
For backward compatibility, the -mxmm option does the same thing as -mxmm-split.
Thanks for the clarification. I need to go update the memory models in propware now!