Other Parts Discussed in Thread: SYSBIOS, AM3358
Hello,
See subject line.
My test environment is BBB, using CCS 10, TI compiler 17.2STS, XDC 3.32.2.25, SYSBIOS 6.46.5.55.
It was working, but needed more heap. I altered the task stack size and heap size in the CFG file... Suddenly this is happening.
On startup of a test program, it doesn't even get to "main()" It is crashing on memset, which I assume is the _c_int00 entry point clearing all global memory.
What the heck????!!!!
Is it because it is updating memory it's not supposed to?
Here is a portion of my map file... It's more memory than the BBB has:
OUTPUT FILE NAME: <TestNDK.out>
ENTRY POINT SYMBOL: "_c_int00" address: 80570758
MEMORY CONFIGURATION
name origin length used unused attr fill
---------------------- -------- --------- -------- -------- ---- --------
SRAM_LO 402f0000 00000400 00000000 00000400 RW X
SRAM_HI 402f0400 0000fc00 00000000 0000fc00 RW X
OCMC_SRAM 40300000 00010000 00000000 00010000 RW X
DDR3 80000000 20000000 00593529 1fa6cad7 RWIX
Why does it think it needs to reserve half a gig of memory for a program that is about 1/100th the size?? Where is it inventing that idea??
Here is the app.cfg file: some of which I have no idea what it means, or how it selected those values
var Defaults = xdc.useModule('xdc.runtime.Defaults');
var Diags = xdc.useModule('xdc.runtime.Diags');
var Error = xdc.useModule('xdc.runtime.Error');
var Log = xdc.useModule('xdc.runtime.Log');
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
var Main = xdc.useModule('xdc.runtime.Main');
var Memory = xdc.useModule('xdc.runtime.Memory')
var SysMin = xdc.useModule('xdc.runtime.SysMin');
var System = xdc.useModule('xdc.runtime.System');
var Text = xdc.useModule('xdc.runtime.Text');
var BIOS = xdc.useModule('ti.sysbios.BIOS');
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
var Swi = xdc.useModule('ti.sysbios.knl.Swi');
var Task = xdc.useModule('ti.sysbios.knl.Task');
var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
var Seconds = xdc.useModule('ti.sysbios.hal.Seconds');
Seconds.SecondsProxy = xdc.useModule('ti.sysbios.hal.SecondsClock');
System.maxAtexitHandlers = 4;
BIOS.heapSize = 4292608;
BIOS.libType = BIOS.LibType_Custom;
Program.stack = 65536;
Task.defaultStackSize = 8192;
Task.deleteTerminatedTasks = true;
SysMin.bufSize = 0x200;
var loggerBufParams = new LoggerBuf.Params();
loggerBufParams.numEntries = 16;
var logger0 = LoggerBuf.create(loggerBufParams);
Defaults.common$.logger = logger0;
Main.common$.diags_INFO = Diags.ALWAYS_ON;
System.SupportProxy = SysMin;
Task.addHookSet({
registerFxn: '&NDK_hookInit',
createFxn: '&NDK_hookCreate',
exitFxn: '&NDK_hookExit'
})
I have no idea if that has anything to do with it crashing on memset, or if that is the reason.
The console registers display as
However the debugger registers are different:
Any one have ANY clue? And can explain this to me?