Part Number:MSP430FR4133
I am testing the msp430fr4133 with the FreeRtos, everything works fine when using the heap in the SRAM. However, this mcu has only 2 KB of ram, so i tried to move the heap from the sram to the fram. I followed the same procedure of the RTOSDemo for the msp430FR5969:
In FreeRtosConfig file:
#define configAPPLICATION_ALLOCATED_HEAP 1
and i declared the "heap array" on main.c:
#pragma PERSISTENT(ucHeap) /* CCS version. */
uint8_t ucHeap[configTOTAL_HEAP_SIZE] = { 0 };
The code compiles perfectly and the data is moved to the fram however the allocation always fails with all the heap files (heap1.c, heap2.c, etc...).
I believe this is a problem related with the msp430 fram memory not the freertos, because if i try to write "manually" any value on this array it "fails" ( the content of each position is always 0x00).
i also looked at the linker cmd file and it seems ok:
GROUP(ALL_FRAM)
{
GROUP(READ_WRITE_MEMORY)
{
.TI.persistent : {} /* For #pragma persistent */
}
GROUP(READ_ONLY_MEMORY)
{
.cinit : {} /* Initialization tables */
.pinit : {} /* C++ constructor tables */
.init_array : {} /* C++ constructor tables */
.mspabi.exidx : {} /* C++ constructor tables */
.mspabi.extab : {} /* C++ constructor tables */
.const : {} /* Constant data */
}
GROUP(EXECUTABLE_MEMORY)
{
.text : {} /* Code */
}
} > FRAM
Am i missing something? I cant figured out what is happening.