[Skyeye-developer] Alignment fault for Thumb instructions if MMU enabled for ARM926EJ-S

Smirnov Dmitry Dmitry.Smirnov at tlmcom.ru
Tue Aug 28 20:50:33 CST 2007


>Date: Tue, 28 Aug 2007 11:16:40 +0800
>From: Michael.Kang <blackfin.kang at gmail.com>
>
>       Could you give us a  case for this bug so that  other guys can
>reproduce and confirm  this bug?

The case is simple:
While MMU is enabled ('MMU_Enabled' is evaluated to true), code is
branching from ARM to THUMB.

In my case, first THUMB instruction after branching is located at
word-aligned address and is decoded correctly. 
Second one is located at even address (+2 bytes after branching).
This causes arm926ejs_mmu_load_instr() to return ALIGNMENT_FAULT.

The call to decode the second instruction is made from ARMul_Emulate32
(line 464):

			decoded =
				ARMul_LoadInstrS (state, pc + (isize),
isize);

That's it. I'm afraid I cannot share the binary I have (it is large and
is not open-source) but perhaps it is not hard to create some simple
assembler code to test this case.

BTW, 

Dmitry



More information about the Skyeye-developer mailing list