02.03.2014 Views

BSP Developer's Guide

BSP Developer's Guide

BSP Developer's Guide

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

VxWorks 5.5<br />

<strong>BSP</strong> Developer’s <strong>Guide</strong><br />

architecture. This chapter is a general discussion of the issues and not an<br />

implementation-specific guide.<br />

4.2 Architectural Considerations<br />

At the core of any VxWorks run-time environment is the target architecture. This<br />

section is dedicated to the capabilities and run-time ramifications of architecture<br />

selection. Some general observations follow, but most details are covered in<br />

sections devoted to a particular architecture.<br />

For additional documentation that pertains to VxWorks architecture support, refer<br />

to the following:<br />

■<br />

the appropriate VxWorks Architecture Supplement document<br />

■<br />

VxWorks API Reference: Drivers, 5.5<br />

■<br />

VxWorks API Reference: OS Libraries, 5.5<br />

■<br />

Tornado User’s <strong>Guide</strong>, 2.2<br />

■<br />

<strong>BSP</strong> documentation (for a target similar to yours)<br />

■<br />

Wind River Technical Notes, available online through WindSurf<br />

4.2.1 Interrupt Handling<br />

Interrupts asynchronously connect the external world to the system, and are<br />

typically the most important aspect of real-time systems. VxWorks adopts a<br />

vectored interrupt strategy where applications “connect” ISRs (Interrupt Service<br />

Routines) to a unique vector generated by the interrupting component. VxWorks<br />

provides functions to dynamically program these vectors to contain the address of<br />

an extremely small and fast code stub that calls an application’s C-language ISR,<br />

and then returns control to the kernel.<br />

A frustrating complication to ordinary interrupt servicing is interrupt<br />

acknowledgment (IACK). Most system architectures provide for automatic<br />

interrupt acknowledgment. For the relatively few that do not address this issue,<br />

ISRs must manually acknowledge an interrupt through a register access or by<br />

some other awkward mechanism.<br />

Finally, interrupt latency may vary from architecture to architecture. Interrupt<br />

latency is the maximum amount of time from the initial processor interrupt request<br />

64

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!