Re: ecos-3.0 current stm32 bug?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]




0x8040025 is only the entry in the hal_vsr_table[11] (seems to always be the real address + 1). I.e.

(gdb) print /fx hal_vsr_table[11]
$6 = 0x8040025
(gdb) print hal_switch_state_vsr
$4 = {<text variable, no debug info>} 0x8040024 <hal_switch_state_vsr>

Philipp

On 08/25/2011 11:33 AM, Christophe Coutand wrote:
Try to word align hal_switch_state_vsr (currently you have 0x8040025) and see what happens. Also can you post the dissembled version to understand why hal_switch_state_vsr is placed like that.

Christophe

-----Original Message-----
From: Philipp Meier [mailto:pme.neratec@xxxxxx]
Sent: 25. august 2011 10:49
To: Christophe Coutand; ecos-discuss@xxxxxxxxxxxxxxxxxxx
Subject: Re: RE: RE:  ecos-3.0 current stm32 bug?

Hello Christophe

it is the SWI instruction ("svc 0" in disassem code) that triggers the
exception (therefore breakpoint in hal_switch_state_vsr is never
reached).

Where does the SWI instruction get's it's information about where to
jump to? Is it the hal_vsr_table (located at 0x20000000)? In entry 11 I
have 0x8040025 which is the address for hal_switch_state_vsr - and yet
it does not jumps to 0x8040025 but instead to 0x8040042
(hal_default_exception_vsr).

Any idea about the reason for this behaviour?

Cheers Philipp

-------- Original-Nachricht --------
Datum: Wed, 24 Aug 2011 09:40:02 -0700
Von: "Christophe Coutand"<ccoutand@xxxxxxxx>
An: "Philipp Meier"<pme.neratec@xxxxxx>, ecos-
discuss@xxxxxxxxxxxxxxxxxxx
Betreff: RE: RE:  ecos-3.0 current stm32 bug?
What about setting a breakpoint in hal_switch_state_vsr? Is it the
SWI
instruction that triggers the exception or is it the execution of the
hal_switch_state_vsr routine?

Christophe

-----Original Message-----
From: ecos-discuss-owner@xxxxxxxxxxxxxxxxxxx [mailto:ecos-discuss-
owner@xxxxxxxxxxxxxxxxxxx] On Behalf Of Philipp Meier
Sent: 24. august 2011 16:58
To: ecos-discuss@xxxxxxxxxxxxxxxxxxx
Subject: Re: RE:  ecos-3.0 current stm32 bug?

Hello Christophe,

Yes - both are ROM startup type. The bootloader without offset
(i.e.
offset 0x0), the application with offset 0x40000.

In the bootloader elf file hal_vsr_table is 20000000 and the same
is
true for the application.

GDB debug output when debugging the startup of the application:

Bad case (Linux built bootloader):
----------------------------------
(gdb) print /fx hal_vsr_table
$1 = {0x441c4c08, 0x61232301, 0x8040043, 0x8040043, 0x8040043,
0x8040043, 0x8040043, 0x8040043, 0x8040043, 0x8040043,
   0x8040043, 0x8040025, 0x8040043, 0x8040043, 0x8040089, 0x8040075
<repeats 61 times>}
(gdb) print /fx&hal_vsr_table
$2 = 0x20000000

Good case (Cygwin built bootloader):
----------------------------------
(gdb) print /fx hal_vsr_table
$1 = {0x4024f8df, 0xf04f4d09, 0x8040043, 0x8040043, 0x8040043,
0x8040043, 0x8040043, 0x8040043, 0x8040043, 0x8040043,
   0x8040043, 0x8040025, 0x8040043, 0x8040043, 0x8040089, 0x8040075
<repeats 61 times>}
(gdb) print /fx&hal_vsr_table
$2 = 0x20000000

Cheers
Philipp

-------- Original-Nachricht --------
Datum: Wed, 24 Aug 2011 07:22:53 -0700
Von: "Christophe Coutand"<ccoutand@xxxxxxxx>
An: "Philipp Meier"<pme.neratec@xxxxxx>, "ecos discuss"<ecos-
...


--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss



[Linux Embedded]     [U-Boot V2]     [Linux Kernel]     [Linux MIPS]     [Linux ARM]     [Linux for the Blind]     [Linux Resources]     [Photo]     [Yosemite]     [ISDN Cause Codes]     [ECOS Home]

Add to Google Powered by Linux