This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: VSR attach problem


Hi,

As my build is not for location 0x0, the hal_vsr_table
needed to be fixed at the location 0x20. This I enabled
by writing:

.fixed_vectors 0x20 : {*(.fixed_vectors)}

in my ldi file. This fixed the problem.

Regards,
Vikas

-----Original Message-----
From: Vikas K. Prasad 
Sent: Wednesday, October 06, 2004 8:40 PM
To: 'ecos-discuss@sources.redhat.com'
Cc: Vikas K. Prasad
Subject: RE: VSR attach problem



Another observation is that in a port (for different
platform), the 'hal_vsr_table' was at location 0x20
whereas in my port it is at '0x4100040'. Anything
special that needs to be done in the platform port
to make this happen?

Context: I have done an excalibur port to a custom
board of ours where most of the features of ecos is
working including ISR and DSR. Now I am trying to
get the VSR to work.

Vikas

-----Original Message-----
From: Vikas K. Prasad 
Sent: Wednesday, October 06, 2004 8:14 PM
To: 'ecos-discuss@sources.redhat.com'
Cc: Vikas K. Prasad
Subject: VSR attach problem



Hi,

I want to use my own VSR and so I am using the API
cyg_interrupt_get_vsr() to first get the installed
IRQ.  Then  I  set  my  VSR handler  using the API
cyg_interrupt_set_vsr().

The problem that I am facing is, after the function
cyg_interrupt_get_vsr() executes, I am not getting
the value IRQ address from location 0x...38. I
expected to get 0x041003f4 but some other value is
coming.

Here is the asm code from objdump. Can you please
let me know where the problem is?

NOTE: ISR is working fine.

Disassembly of section .rom_vectors:

04100000 <__exception_handlers>:
 4100000:	e59ff018 	ldr	pc, [pc, #24]	; 4100020 <vectors>
 4100004:	e59ff018 	ldr	pc, [pc, #24]	; 4100024 <.undefined_instruction>
 4100008:	e59ff018 	ldr	pc, [pc, #24]	; 4100028 <.software_interrupt>
 410000c:	e59ff018 	ldr	pc, [pc, #24]	; 410002c <.abort_prefetch>
 4100010:	e59ff018 	ldr	pc, [pc, #24]	; 4100030 <.abort_data>
 4100014:	00000000 	andeq	r0, r0, r0
 4100018:	e59ff018 	ldr	pc, [pc, #24]	; 4100038 <.IRQ>
 410001c:	e59ff018 	ldr	pc, [pc, #24]	; 410003c <.FIQ>

04100020 <vectors>:
 4100020:	04100180 	ldreq	r0, [r0], -#384

04100024 <.undefined_instruction>:
 4100024:	04100270 	ldreq	r0, [r0], -#624

04100028 <.software_interrupt>:
 4100028:	04100294 	ldreq	r0, [r0], -#660

0410002c <.abort_prefetch>:
 410002c:	041002c0 	ldreq	r0, [r0], -#704

04100030 <.abort_data>:
 4100030:	041002dc 	ldreq	r0, [r0], -#732
 4100034:	00000000 	andeq	r0, r0, r0

04100038 <.IRQ>:
 4100038:	041003f4 	ldreq	r0, [r0], -#1012


 

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]