GSI - HZDR
GSI - HZDR
GSI - HZDR
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Echtzeitanwendungen und -Datenaquisition<br />
N. Kurz <strong>GSI</strong> Darmstadt<br />
Real Time Programming<br />
Semaphores<br />
time [ us 1<br />
- system reacts deterministic on external interrupts (us)<br />
- tasks fully preemptive (us)<br />
- fast process synchronisation rnethods (us)<br />
(semaphores, yield(), interrupt handling, ...)<br />
- external interrupts must be catched 1 dispdched in<br />
device drivers<br />
CVC (CAMAC) MC68030 20MHz LynxOS GNU-C: 465 us<br />
E7 (VME) MC68040 25MHz LynxOS GNU-C: 138 us<br />
3000-500 AXP aipha ? OSFI1-HT DEC-C: 152 us<br />
LynxOS: Real Time UNIX<br />
TCPIIP NFS<br />
Full development system, selfhosted<br />
Real Time POSlX<br />
...<br />
yield 0;<br />
process forces its own preemption<br />
key function call in <strong>GSI</strong> data acqlrisition systern:<br />
process 1 process 2<br />
LynxOS: lnterrupt Handling<br />
interrupts can only be catchedldispatched in<br />
device drivers<br />
action on interrupt in device driver itself:<br />
1) in interrupt handler of device drlver (fast, not flexfme)<br />
2) in system thread ( not flexlble)<br />
interrupt dispatching into application programs:<br />
1) Signal from interrupt handler of driver into application<br />
program<br />
(standard UNIX, flexible)<br />
2) ioctl call into driver and use of system semaphore<br />
(<strong>GSI</strong> data acquisition, fastest, flexible)<br />
3) ...<br />
1 hardwarcl interrupt<br />
CVC (CAMAC) MC68030 20MHz LynxOS GNU-C: 269 us<br />
E7 (VME) MC68040 25MHz LynxOS GNU-C: 87 us<br />
3000-500 AXP alpha ? OSFI1-RT DEC-C: 66 us<br />
at <strong>GSI</strong> developed: device driver for GCI CAMAC Triggermodule<br />
<strong>GSI</strong> VME Trigprmodule