I'm testing a sample project provided by Micrium with their uC/OS-II on the AM335x EVM using TI's CCS; I'm having problems with the linker as it's giving me the following errors:
"../AM3358.cmd", line 54: error #10099-D: run placement fails for object
".sysmem", size 0x800 (page 0). Available ranges:
L3OCMC0 size: 0x10000 unused: 0x204 max hole: 0x204
"../AM3358.cmd", line 52: error #10099-D: run placement fails for object
".data", size 0x260 (page 0). Available ranges:
L3OCMC0 size: 0x10000 unused: 0x204 max hole: 0x204
Please note that I'm using the default configurations in AM3358.cmd which are:
MEMORY
{
SRAM: o = 0x402F0400 l = 0x0000FC00 /* 64kB internal SRAM */
L3OCMC0: o = 0x40300000 l = 0x00010000 /* 64kB L3 OCMC SRAM */
M3SHUMEM: o = 0x44D00000 l = 0x00004000 /* 16kB M3 Shared Unified Code Space */
M3SHDMEM: o = 0x44D80000 l = 0x00002000 /* 8kB M3 Shared Data Memory */
DDR0: o = 0x80000000 l = 0x40000000 /* 1GB external DDR Bank 0 */
}
were all sections are assigned to L3OCMC0. From my understanding the error means that my application requires a larger amount of memory than that available for L3OCMC0. What I did is assigned .data and .sysmem to DDR0 and that fixed the linker errors but the application did not run and halted before entering main().
I'm new to the whole embedded world so any kind of help to fix my errors is really appreciated.
Thanks!