This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Toralf Lund wrote: > I'm wondering about how to set up the interrupt vectors correctly on an > ARM-9 setup w/o debug monitors. Has anyone else done this? Is there any > kind of support for it in newlib? I mean, is the code that needs to be > loaded at address 0 included anywhere? (That would not be the normal > _start code, as far as I can tell.) Ah! When a developer says "my project is so small, no need for an O/S", he removes everything from kernels (e.g. no inter-process messages), libraries (e.g. no file i/o), and tools (e.g. no ) ... so far, so good. Then, remains a bare CPU, and an application software design, and hardware-triggered events. A neat and simple execution environment. Yes, the developer can do the processor initialization that ocsurs before the main() instruction ... and the system flash programming tools (that were needed anyway). The fun actually starts when the developer needs interrupt dispatching ... the developer actually needs to re-invent (piecewise and painfully) what was removed in the first place. Among those pieces, there is some science that goes beyond the mere technicalities of processor initialization and flash programming. I'm suggesting that you should consider kernels in the "deeply embedded" kernel category (or "hard real-time", not because you need hard real-time but because those kernels are perhaps features-lean). E.g. the ABCD Proto-Kernel(tm) ( http://www.connotech.com/abcd_proto_kernel/abcd_proto_kernel_intro.htm ), but it is defnitely not the only one. Cheers -- - Thierry Moreau CONNOTECH Experts-conseils inc. 9130 Place de Montgolfier Montreal, Qc H2M 2A1 Tel.: (514)385-5691 Fax: (514)385-5900 web site: http://www.connotech.com e-mail: thierry.moreau@connotech.com ==== 5. Basic ABCD Concepts 5.1 ?A? - Interrupt Dispatching A basic function of any operating system or kernel is to handle the microprocessor interrupts. This is usually closely tied to the microprocessor architecture. The ABCD Proto-Kernel? provides a unified handling of interrupts that logically dispatch the interrupt signals to the interrupt service routine (ISR) that correspond to the exact source of the interrupt, as if the microprocessor had a large number of independent interrupt vectors. In doing so, the ABCD Proto-Kernel? prepares the ISR execution context (some limitations apply to the software statements that make up the ISR). Lastly, the interrupt handling includes ISR epilogue facilities that restore a normal software task context once the ISR processing is complete. It is the application developers' responsibility to code the interrupt services routines required by the application, to register them with the ABCD Proto-Kernel? interrupt dispatching, and to request the enabling of the interrupt source associated with each ISR. ------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |