Hi,
I have developed a large project with Optimization Disabled. All working well.
During testing I noticed some functions running extremely slowly. So I set Optimization to 2, which is I believe a standard level.
The first issues highlighted by this were where I had not put the qualifier "volatile" on variables changed in an intterupt and inspected in main code. This was easy to fix.
The next issue is that it appears that the function call
ROM_uDMAChannelTransferSet(UDMA_CHANNEL_SSI0TX | UDMA_PRI_SELECT,
UDMA_MODE_BASIC,
SSITXnul,
(void *)(SSI0_BASE + SSI_O_DR),
SSI_TXNUL_SIZE);
(where SSITXnul is a uint16_t array and SSI_TXNUL_SIZE = 2)
is overwriting some variable memory which it doesn't do with Optimization Disabled. I detected this by putting a write watchpoint on the variable.
Has anyone got any advice as to what I've done wrong please?
Thanks
Richard