LPC55S69 Stack allocation for PowerQuad

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

LPC55S69 Stack allocation for PowerQuad

559 Views
andrew_lonsdale
Contributor II

I'm using an LPC55S69 to run FFT's using the PowerQuad, and have just found the source of a problem that has been periodically occurring, but I am not sure of the best way to solve it and would welcome advice.

I had "Manage linker script" ticked in Properties->Settings->MCULinker->Managed Linker Script"

When this is enabled, then placing the Stack (size 0x2000) at "end" places it in the region 0x20040000 - 0x20043FFF, which is part of the area that the PowerQuad uses as a scratchpad. So the stack was being trashed by the PowerQuad.

If the "Manage linker script" is unticked, then the linker somehow considers "end" to be at 0x2003FFFF, so the stack is placed outside of the PQ scratchpad area. (I can't figure out why "end" changes in this case).

I would have liked to add a reserved region called PQ_Scratchpad and have assigned it to 0x20040000 - 0x20043FFF so that it is explicitly reserved, but cannot find a way to do this.

I can

1) Untick "manage linker script"

2) Put in a stack offset of 0x4000, but it isn't clear then why the offset is there.

3) Reduce the size of SRAM in "MCU Settings" and add an explicit PQ_SCRATCHPAD region in SRAM, but the powerquad_transform example does not do this.

I like option 3 as it is the most explicit, but as the example code does not do this, I feel that this might not be the best way. Can someone suggest an elegant way to do this?

Regards

Charles

Labels (1)
0 Kudos
1 Reply

455 Views
converse
Senior Contributor V

The answer in this thread should help you:

https://community.nxp.com/thread/450038 

0 Kudos