GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> CTDB / V5-5-6 > sumt_rt_sib / rad750
#include <vxWorks.h>
#include <CTDB/SUMT_rt.h>
#include <CTDB/CO1553_rt.h>
#include <PBS/FORK.h>
#include <PBS/FPA.h>
#include <PBS/RW.h>
#include <PBS/WUT.h>
#include <MSG/MSG_pubdefs.h>
#include <SUMT_private.h>
Classes | |
struct | _SUMT_RT_Msg |
struct | _SUMT_RT |
struct | _SUMT_RT_Poll |
Defines | |
#define | SUMT_RT_DESC_SIZE 1024 |
#define | SUMT_RT_LOG_SIZE 64 |
#define | SUMT_RT_N_INTR 32 |
#define | SUMT_RT_POLL_MAX_TELEM_MSG 32 |
Typedefs | |
typedef enum _SUMT_RT_Event | SUMT_RT_Event |
typedef struct _SUMT_RT_Msg | SUMT_RT_Msg |
Enumerations | |
enum | _SUMT_RT_Event { SUMT_RT_EVENT_INIT, SUMT_RT_EVENT_SUBADDR, SUMT_RT_EVENT_HKP, SUMT_RT_EVENT_EXIT } |
Functions | |
void | SUMT_rtIntr (SUMT_RT *rt) |
The driver interrupt handler. | |
void | SUMT_rtMsg (SUMT_RT *rt) |
Process a Summit 1553 bus data message. |
#define SUMT_RT_DESC_SIZE 1024 |
The size in bytes of the Summit RT descriptor table.
Referenced by SUMT_rtInit().
#define SUMT_RT_LOG_SIZE 64 |
The size in bytes of the Summit RT event log.
Referenced by SUMT_rtInit().
#define SUMT_RT_N_INTR 32 |
The maximum number of interrupt descriptors outstanding on the driver internal queue.
Referenced by SUMT_rtInit().
#define SUMT_RT_POLL_MAX_TELEM_MSG 32 |
The maximum number of telemetry messages for the polled mode driver telemetry blocks.
The typedef for _SUMT_RT_Event.
The typedef for _SUMT_RT_Msg.
enum _SUMT_RT_Event |
void SUMT_rtIntr | ( | SUMT_RT * | rt | ) |
The driver interrupt handler.
Handles Summit remote terminal device interrupts. The device interrupt status register is read, which clears the interrupt condition on the device side. The interrupt is also cleared at the board level and on the I/O bus. The contents of the interrupt status register are examined to determine which event caused the interrupt.
For telecommand receive and error reports, the response is handled directly here in the interrupt handler. Telecommand receive packets are handled by the CCSDS interface library. Error reports are translated to the appropriate MSG code and signaled.
For telemetry and telecommand transmit events, a descriptor is allocated from the interrupt pool. A status code is saved to the interrupt descriptor indicating that a device event needs servicing. The descriptor is placed on a queue to be handled by SUMT_rtTask() at a later time.
rt | A device descriptor. |
References _SUMT_RT::cmd_rx_data, _SUMT_RT::cmd_rx_desc, _SUMT_RT::cmd_rx_inter, _SUMT_RT::cmd_tx_desc, CO1553_rtCmdRxMsg(), _SUMT_RT_Diag::error_count, _SUMT_RT_Msg::event, _SUMT_RT_Msg::hdr, _SUMT_RT_Diag::intr_count, _SUMT_RT::rt_diag, _SUMT_RT::rt_lock, SUMT_DESC_CONTROL, SUMT_DMAF, SUMT_ILLCMD, SUMT_memCopyIn(), SUMT_MERR, SUMT_REG_COMMAND, SUMT_REG_IRQ_MASK, SUMT_REG_IRQ_PEND, SUMT_REG_STATUS, _SUMT_RT::sumt_regs, SUMT_RT_CTRL_BAC, SUMT_RT_EVENT_SUBADDR, SUMT_RT_SUBADDR_CMD_TX, SUMT_RT_SUBADDR_TELEM_END, SUMT_rtBoardIntrAck(), SUMT_SUBAD, SUMT_WORD_READ, SUMT_WORD_WRITE, SUMT_WRAPF, _SUMT_RT::task_fpa, _SUMT_RT::task_queue, and _SUMT_RT::telem_desc.
Referenced by SUMT_rtBoardIntrConnect(), and SUMT_rtBoardIntrDisconnect().
void SUMT_rtMsg | ( | SUMT_RT * | rt | ) |
Process a Summit 1553 bus data message.
Responds to a Summit device interrupt indicating that a 1553 bus data message has been transferred. The RT descriptor table is polled to find the sub- address, and the appropriate CCSDS interface library function is called to handle the data. The data wrap notification is handled directly here. The CCSDS interface library handles the telemetry and telecommand transmit subaddresses.
rt | A device descriptor. |
References _SUMT_RT::cmd_tx_data, _SUMT_RT::cmd_tx_desc, _SUMT_RT::cmd_tx_inter, _SUMT_RT::cmd_tx_timeout, _SUMT_RT::cmd_tx_timer, CO1553_rtCmdTxMsg(), CO1553_rtTelemMsg(), _SUMT_RT::rt_diag, _SUMT_RT::rt_lock, SUMT_DESC_CONTROL, SUMT_memCopyOut(), SUMT_RT_CTRL_BAC, SUMT_rtMsgTimeout(), SUMT_WORD_READ, SUMT_WORD_WRITE, _SUMT_RT::telem_data, _SUMT_RT::telem_desc, _SUMT_RT::telem_inter, _SUMT_RT::telem_timeout, _SUMT_RT::telem_timer, _SUMT_RT::wrap_rx_desc, and _SUMT_RT::wrap_tx_desc.
Referenced by SUMT_rtTask().