UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Visitor silvajp
Visitor
2,554 Views
Registered: ‎04-28-2014

2014.1 SDK Incorrect stack size using the lscript

Hello!

It seems there is a problem with the lscript file in the new vivado (2014.1) when I define the following parameters:

 

Stack Size: 0x9350000
Heap Size: 0xC350000

ps7_ddr_0_S_AXI_BASEADDR : Base= 0x00100000, LENGTH = 0x16C84000

 

This error happens:

 

c:/xilinx/sdk/2014.1/gnu/arm/nt/bin/../lib/gcc/arm-xilinx-eabi/4.8.1/../../../../arm-xilinx-eabi/bin/ld.exe: standalone.elf section `.stack' will not fit in region `ps7_ddr_0_S_AXI_BASEADDR'
c:/xilinx/sdk/2014.1/gnu/arm/nt/bin/../lib/gcc/arm-xilinx-eabi/4.8.1/../../../../arm-xilinx-eabi/bin/ld.exe: region `ps7_ddr_0_S_AXI_BASEADDR' overflowed by 131601600 bytes

 

Telling that I'm requesting more memory than available, but:

Heap Size  + Stack Size = Total            < available

0x9350000 + 0xC350000 = 0x156A0000 < 0x16C84000

 

When  I check the lscript I note that the stack size is counted twice (v2014.1):

 

.stack (NOLOAD) : {
   . = ALIGN(16);
   _stack_end = .;
   . += _STACK_SIZE; <-------------------
   _stack = .;
   __stack = _stack;
   . = ALIGN(16);
   _irq_stack_end = .;
   . += _STACK_SIZE;   <---------------------

....

 

But in version 2013.4 where the project was originaly developed and worked without problems:

 

.stack (NOLOAD) : {
   . = ALIGN(16);
   _stack_end = .;
   . += _STACK_SIZE;  <-------------------------------------
   _stack = .;
   __stack = _stack;
   . = ALIGN(16);
   _irq_stack_end = .;
   . += _IRQ_STACK_SIZE;

 

The stack size is counted only once.

 

Further comparing lscript files the line present in the version 2013.4:

 

_IRQ_STACK_SIZE = DEFINED(_IRQ_STACK_SIZE) ? _IRQ_STACK_SIZE : 1024;

 

has been remove from the v2014.1.

 

On a final note, using the lscript from v2013.4 on the project from 2014.1 worked with without problems.

0 Kudos
1 Reply
Explorer
Explorer
2,547 Views
Registered: ‎12-29-2007

Re: 2014.1 SDK Incorrect stack size using the lscript

good hint!

this explains why I had to increase memory size after having transfered my project from 2013.4 to 2014.1 .

I did not dig so deep as you, just went the easy path to increase memory ....

 

0 Kudos