AnsweredAssumed Answered

LPC55S69 Stack allocation for PowerQuad

Question asked by Charles Lonsdale on Apr 29, 2019
Latest reply on Apr 29, 2019 by Con Verse

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

Outcomes