This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

exception for big endian

Note: This was originally posted on 2nd September 2009 at http://forums.arm.com

Hello experts,

I am trying to modify my software platform and application for big endian(BE8) mode, and the hardware platform is ARM's PBX-A9 board. Firstly, the timer interrupt doesn't work and since it's a little complex to debug timer interrupt, I decide to produce a software exception to see whether the exception process works or not. However, after the "SWI" instruction is performed, the CPU doesn't "jump" to exception vector(for SWI exception, the address is 0x08), and of course, the system hang.

If I switch the system to LE mode(using "SETEND LE") in my BE system before the "SWI" instruction(I also adjust the exception process routine at address 0x08 for LE mode), and CPU can jump to address 0x08 for this software exception. For BE mode, I have configured the exception process routines at 0x08 carefully and I can ensure that it can work(at least, can output a char through serial port), but it looks that the SWI doesn't lead PC to 0x08 for BE mode.

I boot my system from ARM's boot monitor, and then switch to BE mode through "SETEND BE" instruction.

Has anyone run with BE mode sucessfully for Cortex-A9? Could you tell me how to support exception and interrupt for BE mode?

Thanks much for your help!
-Jerry