Here is an excerpt from my memory map. (See arrows for points of interest.)
c26c76c8 TSK_collect$stack <-------------------------
c26c7a60 TSK_collect$stkptr <-------------------------
c26c7ac8 TSK_idle$stack
c26c7e60 TSK_idle$stkptr
c26c7ec8 __CIOBUF_
c26c7fe8 TRC_cinit
c26c7fec TRC_R_mask
c26c7fec _TRC_R_mask
c26c7ff0 GBL_initdone
c26c7ff4 IDL_A_TABBEG
c26c7ff4 Load_cpuloadIdlObj
c26c7ff4 _Load_cpuloadIdlObj
c26c7ff8 IDL_END
c26c8000 ti_sdo_ce_bioslog_track$buf
c26cc000 TSK_process_data$stack <-------------------------
c26cc398 TSK_process_data$stkptr <-------------------------
c26cc400 ti_sdo_ce_osal_LOG_Buffer$buf
My server.tcf file says
prog.module("TSK").STACKSEG = bios.DDR2;
prog.module("TSK").STACKSIZE = 0x10000;
The .h62 file says
TSK_STACKSIZE .set 010000H
codec.cfg says
Server.algs = [
{name: "vqm_results", mod: VQM_RESULTS , threadAttrs: {
stackSize: 0x10000, stackMemId: 0, priority: Server.MINPRI + 4},
groupId : 4,
},
I've tried to make all the input files to the build agree about stack size. The .s62 file that is auto-generated says
;; ======== TSK_config ========
.asg 010000H, _STACKSIZE
.asg DDR2, _STACKSEG
.asg 01H, _PRIORITY
.asg _LogTracker_createHook, _VCREATEFXN
.asg _FXN_F_nop, _VDELETEFXN
.asg _FXN_F_nop, _VEXITFXN
.asg 00H, _SWITCHFXN
.asg 00H, _READYFXN
.asg 00H, _NUM_HOOKS
TSK_config _STACKSIZE, _STACKSEG, _PRIORITY, _VCREATEFXN, _VDELETEFXN, _VEXITFXN, _SWITCHFXN, _READYFXN, _NUM_HOOKS
If I'm reading the map correctly, the stack sizes seem to be 0x398. These are the stacks for my background tasks, and although they are large enough, in one case it is mighty close to too small. I'm wondering if some of the erratic behavior I see when I add trace statements might be associated with this. Can someone tell me what I need to change to make the stacks be larger in the memory map? Or am I misinterpreting the map?