Firmware 8 byte alignment

This problem I have I really don't understand. I've got some code which runs fine. Is encorperates an SD-card interface (NXP/Martin Thomas/CHaN). At some point I found out that a certain SD-card was recognized poorly: it took my app 10 extra seconds to initialize the SD-card subsystem. Adding debug info I tried to figure out the cause. It's the MCI_Send_Status() from mci.c which takes so long.

What amazes me is that by just adding 8 bytes of arbitrary code (e.g. by extending a const string with 8 characters), in a seemingly arbitrary module (.o file), makes my app boot quickly again. Add by adding 8 more bytes slow, etc.

So it seems to be some delicate alignment issue in ROM. But what exactly is going on? Has anyone encountered similar issues?

LPC 2386

Thanks, Mark

More questions in this forum