This is the mail archive of the ecos-discuss@sourceware.org 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: interrupt/virtual vectors confusion


On Tue, Aug 16, 2005 at 02:24:25PM +0100, Matt Sartori wrote:
> Hello,
> 
>  
> 
> I am a bit confused as to how(or whether) to use virtual vectors for
> interrupt handling. My situation is as follows:
> 
> I have ported Redboot to run on an ST STR710FZ2 eval board and it is
> running fine. 
> 
> I load a separate binary (good old Blinky for now as a test) which I've
> linked to sit in the RAM area that is left free by Redboot (for me
> currently 0x20005b68).
> 
> Blinky runs up to the point where an IRQ fires and the interrupt is
> caught and serviced by Redboot's IRQ and handle_IRQ_or_FIQ functions
> defined in vectors.S. That is not what I want.
> 
> What I want to do is to tell Redboot that I want to handle my own
> exceptions, ideally by jumping to my own vector table. 

Is Blinky an eCos RAM program? If so it should of taken over the
interrupt vectors from Redboot. Redboot should no longer be active
unless blinky actually calls into Redboot via the virtual vectors.

> The trouble is that, because Redboot runs from ROM, I can't, from Blinky
> or any other RAM resident program, change the Redboot vector to jump to
> my own ISRs. 

The vectors will be in RAM, not ROM. On ARM architectures what
normally happens is that at startup ROM is mapped to address 0x0. Once
the program is running is remaps the memory so that ROM is moved to
higher addresses and RAM is mapped to address 0x0. The vectors can
then be changed by the application. 

        Andrew

-- 
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]