This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

stack not located

Other Parts Discussed in Thread: TMS320F28377S, SYSBIOS

Hi.

I'm building a project with an TMS320F28377s C2000 processor and the ti/rtos stack.

I ran into this problem adding a large task we want to execute:

[C28xx_CPU1] ti.sysbios.family.c28.TaskSupport: line 114: Stack (0x11080) not located on PAGE 0 (stack must be located entirely below 0x10000)

I mapped the .ebss section to dataram 0xc000 -> 0x1bfff and my .map file shows

.ebss.1    1    0000c000    00006afe     UNINITIALIZED
                  0000c000    0000387a     DSP28377_RTOS_MScreen.obj (.ebss)
                  0000f87a    00000004     DSP28377_RTOS_DataConvert.obj (.ebss)
                  0000f87e    00000002     rts2800_fpu32.lib : _lock.obj (.ebss:__lock)
                  0000f880    00001400     Board_MControl_RTOS_config_p28FP.o28FP (.ebss)
                  00010c80    00000f03     Board_MControl_RTOS_config_p28FP.o28FP (.ebss:taskStackSection)
                  00011b83    00000001     --HOLE--
                  00011b84    0000003c     DSP28377_RTOS_RS485.obj (.ebss)
                  00011bc0    00000eb2     Board_MControlR12_RTOS.obj (.ebss)
                  00012a72    0000000d     DSP28377_RTOS_Errors.obj (.ebss)
                  00012a7f    00000001     --HOLE--
                  00012a80    0000003a     DSP28377_RTOS_Scope.obj (.ebss)
                  00012aba    00000004     rts2800_fpu32.lib : exit.obj (.ebss)
                  00012abe    00000002                       : _lock.obj (.ebss:__unlock)
                  00012ac0    00000036     DSP28377_RTOS_MotorControl.obj (.ebss)
                  00012af6    00000008     rts2800_fpu32.lib : trgdrv.obj (.ebss)

.ebss.2    1    00012b00    00000022     UNINITIALIZED
                  00012b00    00000016     DSP28377_RTOS_Communicatie.obj (.ebss)
                  00012b16    00000007     DSP28377_RTOS_RGBLED.obj (.ebss)
                  00012b1d    00000001     --HOLE--
                  00012b1e    00000004     ti.uia.runtime.a28FP : QueueDescriptor.o28FP (.ebss)

for some reason the .ebss is quite large (above 0x7000) so moving the .ebss somewhere else won't fit. But the new task (RTOS_MScreen.c) gets placed first in the available space...

Is there a way for me to tell the compiler to place the taskStackSection first ? 

Or i have some large arrays i use to store data. I suppose this is why the .ebss is this large. Is there a way to link these arrays somewhere outside .ebss?