EasyManua.ls Logo

Vaisala RVP900

Vaisala RVP900
512 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Appendix D _________________________________________________ RVP900 Developer's Notes
VAISALA______________________________________________________________________ 411
- privateData_t—Each major mode can allocate a private data area for
whatever memory resources are required during the operation of that
mode. This private area is created and prepared by the
initMajorMode() routine as part of its filling in the entire list of
methods at the start of each major mode. The exitMajorMode()
handler is responsible for releasing all private memory resources.
- exitMajorMode_f—This routine releases all resources that were
allocated during the initialization and execution of the major mode.
The EXIT routine is called whenever the major mode changes, or
whenever we are "between" modes, for example, after a TTY Chat "q"
command, or a processor reset. The RVP8 is guaranteed not to be
within an active PROC Section when exitMajorMode() is called; that
is, if exitProcSection() needs to be invoked, that always happens first.
- initProcSection_f and exitProcSection_f —Pair of routines that are
called whenever the RVP8 enters and exits active timeseries
acquisition and processing. The INIT routine is called when a PROC
opcode is executed that causes the IQData thread to begin collecting
data, and activates the RVP8 compute threads for the current major
mode. The EXIT routine is called whenever anything interrupts those
processes, for example, the execution of most other opcodes. The
major mode itself does not change at these transitions, but these
functions allow the current major mode to interact with the timeseries
data acquisition as needed.
D.5 Real-Time Control of the RVP8
The RVP8/Main includes a dedicated thread (named "RT-Ctrl") ,which can
be programmed to handle real-time events while the processor is running.
This includes activities such as altering trigger patterns in response to
antenna position or other external conditions, tracking live inputs from an
I/O-62 card, etc. The RT-Ctrl thread runs at a priority that is higher than
any other RVP8 thread. This allows it to preempt other activities to achieve
near real-time behavior; but it should always be coded as efficiently as
possible and should not do anything that could possibly become CPU
bound.
Despite the high POSIX static priority of RT-Ctrl, its scheduling is still
subject to jitter due to uncertain latencies within the Linux kernel. The
magnitude of this jitter depends on the kernel version, the type of
motherboard being used, and the nature of the other processes that are
competing for CPU time. Vaisala has found that intense disk and network
I/O are among the worst contributors to high scheduling latency,
sometimes amounting to as much as 25 ms of variation. These
uncertainties can usually be absorbed by proper coding of the thread.

Table of Contents

Other manuals for Vaisala RVP900