0
\$\begingroup\$

I am using an Actel SmartFusion system-on-a-chip, running a bare-board application that uses the MSS with SPI, ACE and GPIO. (I am developing in Libero IDE 11.1 and SoftConsole.) My program successfully runs on the A2F200 package, but when I switched to using the A2F500, weird things happen when I send SPI data and trigger the interrupt.

First it was triggering the interrupt but not reading the data I sent it, then it began crashing the program if the interrupt triggered. The weird part is that even if I stop debug and relaunch, it wouldn't even start - the debugger would freeze on "cont". Sometimes power-cycling the chip would fix it and bring me back to where I started, but sometimes even that didn't work, and I would have to eliminate the SPI code from my program to get it to run at all.

Has anyone else seen anything like this on the SmartFusion?

\$\endgroup\$
1
\$\begingroup\$

Did you recompile the ARM code for the new package? Additionally, did you incorporate the newly generated library from Libero into your SoftConsole project? This may have all been automatic for you if you're using the standard design flow. The A2F500 may have more memory/flash than the A2F200 and it could affect the memory map.

I have only used the SmartFusion 2 which is a different animal, but my understanding is the design flows in Libero and SoftConsole are similar. I would explicitly regenerate the output source files from Libero and make sure they are the ones referenced in SoftConsole and be sure to do a full rebuild there. There also may be linker changes required if the memory map does change.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.