When having a look at the ghiopensource package from codeplex I noticed that the FEZCerberus solution’s base ram is set to 128kb not 192kb? PK’s solution wizard also reflects this when cloning the solution. Is this correct? If I set SRAM1_MEMORY_Size to 0x30000 (I’m using an stm32f4discovery board) will I encounter any bad side effects?
#define FLASH_MEMORY_Base 0x08000000
#define FLASH_MEMORY_Size 0x00100000
#define SRAM1_MEMORY_Base 0x20000000
#define SRAM1_MEMORY_Size 0x00020000
If I remember correctly then the other 64KB is dedicated to stack.
The problem is that that 64KB is only accessable by the CPU, no peripherals or DMA or anything. This is why is it handled differently.
Also, that 64KB is not continuous with the 128KB ram, so you can’t make one block from both rams, and if i recall correctly, NETMF wants all it’s ram in one continuous block.
The 64KB is known as “core coupled memory” and indeed isn’t part of the bus matrix. It cannot be accessed by peripherals or the DMA controller.
It is, however, very fast (it has zero wait states).
I don’t know if the current firmware uses the CCM for the stack, or not. Seems to me it would be perfect for that, though.
I had this same question when I first got my hands on the source. If I recall correctly then Gus said that the CCM ram is used for stack and heap, or custom heap, or something like that…
Ah right, I understand. I haven’t delved too deeply into the datasheet for the stm32f4 just yet.
Thanks for the fast replies!