GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> CTDB / V5-5-5 > sumt_bc_sib / rad750
#include <vxWorks.h>
#include <sysLib.h>
#include <CTDB/SUMT_bc.h>
#include <CTDB/CO1553_util.h>
#include <CTDB/CO1553_bc.h>
#include <PBS/LI.h>
#include <PBS/FPA.h>
#include <PBS/FORK.h>
#include <PBS/TASK.h>
#include <PBS/MBA.h>
#include <PBS/WUT.h>
#include <PBS/TOV.h>
#include <MSG/MSG_pubdefs.h>
#include <SUMT_private.h>
#include <SUMT_bc_private.h>
#include <SUMT_bc_board.h>
Defines | |
#define | MEM_ALLOC(_size) MBA_alloc((_size)) |
#define | MEM_FREE(_mem) MBA_free((_mem)) |
Functions | |
static unsigned int | SUMT_bcConfigure (SUMT_BC *bc, const SUMT_BC_Bus_Config *busConfig) |
static int | SUMT_bcTask (SUMT_BC *bc, FORK_msg_sys *msg) |
static void | SUMT_bcTerminate (SUMT_BC *bc) |
unsigned int | SUMT_bcStop (SUMT_BC *bc) |
Device Control Functions | |
unsigned int | SUMT_bcSizeof (void) |
Get the size of a bus controller driver descriptor. | |
SUMT_BC * | SUMT_bcGet (void) |
Get a pointer to the bus controller driver static descriptor. | |
unsigned int | SUMT_bcInit (SUMT_BC *bc, const SUMT_BC_Bus_Config *busConfig, const SUMT_BC_Pkt_Config *pktConfig, const SUMT_BC_Task_Config *taskConfig) |
Intialize a bus controller driver and 1553 device hardware. | |
unsigned int | SUMT_bcExit (SUMT_BC *bc) |
Shutdown a bus controller driver and 1553 device hardware. | |
unsigned int | SUMT_bcStart (SUMT_BC *bc) |
Start the bus controller processing 1553 bus commands. | |
Variables | |
static SUMT_BC | bcDesc |
static CO1553_BC_Telem | telemDesc |
static CO1553_BC_Cmd_Rx | cmdRxDesc |
static CO1553_BC_Cmd_Tx | cmdTxDesc |
Functions to handle initialization and control of the Summit bus cotroller.
#define MEM_ALLOC | ( | _size | ) | MBA_alloc((_size)) |
Helper macro to call user defined memory allocator.
_size | The size in bytes of memory to allocate. |
Referenced by CO1553_bcCmdRxInit(), CO1553_bcCmdTxInit(), CO1553_bcTelemInit(), and SUMT_bcInit().
#define MEM_FREE | ( | _mem | ) | MBA_free((_mem)) |
Helper macro to call user defined memory allocator.
_mem | A pointer to the memory to free. |
Referenced by CO1553_bcCmdRxExit(), CO1553_bcCmdTxExit(), CO1553_bcTelemExit(), SUMT_bcExit(), and SUMT_bcTerminate().
static unsigned int SUMT_bcConfigure | ( | SUMT_BC * | bc, | |
const SUMT_BC_Bus_Config * | config | |||
) | [static] |
Performs the work necessary to configure the BCRTM bus controller device. A BC command block structure list is layed out in the device shared memory with an end-of-list marker on the last command . Each bus command is given a data buffer large enough to hold one 1553 message. Shared memory space is also reserved for the BCRTM event interrupt log. Information about the bus command list in use is cached in the bc structure.
bc | A device descriptor. | |
config | A 1553 bus configuration structure. |
References _SUMT_BC::base_addr, _SUMT_BC_Bus_Frame::bus_cmd, _SUMT_BC_Bus_Config::bus_frame, _SUMT_BC_Bus_Config::bus_side, _SUMT_BC::cmd_blk, _SUMT_BC::cmd_rx_cmd_blk, _SUMT_BC::cmd_rx_data, _SUMT_BC_Bus_Config::cmd_rx_subaddr, _SUMT_BC::cmd_tx_cmd_blk, _SUMT_BC::cmd_tx_data, _SUMT_BC_Bus_Config::cmd_tx_subaddr, CO1553_MSG_SIZE, CO1553_MSG_WORDS, CO1553_utilCmdCreate(), _SUMT_BC::data_buf, _SUMT_BC_Bus_Cmd::flags, _SUMT_BC::frame_cmd_blk, _SUMT_BC::frame_flags, _SUMT_BC_Bus_Frame::num_cmd, _SUMT_BC_Bus_Config::rt_addr, _SUMT_BC_Bus_Cmd::sub_addr, SUMT_addrLocalToChip(), SUMT_BC_BUS_FLAG_BCAST, SUMT_BC_BUS_FLAG_SKIP, SUMT_BC_CHA, SUMT_BC_CHB, SUMT_BC_EOL, SUMT_BC_EXE, SUMT_BC_NUM_BUS_FRAME, SUMT_BC_RTRY_1, SUMT_BC_SKIP, SUMT_BC_SUBADDR_CMD_RX, SUMT_BC_SUBADDR_CMD_TX, SUMT_BC_SUBADDR_TELEM_DATA, SUMT_BC_SUBADDR_TELEM_END, SUMT_CMD_BRANCH_ADDR, SUMT_CMD_COMMAND_1, SUMT_CMD_COMMAND_2, SUMT_CMD_CONTROL, SUMT_CMD_DATA_PTR, SUMT_CMD_SIZE, SUMT_CMD_STATUS_1, SUMT_CMD_STATUS_2, SUMT_CMD_TIME_DELAY, SUMT_WORD_WRITE, _SUMT_BC::telem_cmd_blk, _SUMT_BC::telem_data, _SUMT_BC::telem_end_data, _SUMT_BC_Bus_Config::telem_msg_count, _SUMT_BC_Bus_Config::telem_subaddr, and _SUMT_BC_Bus_Cmd::time_delay.
Referenced by SUMT_bcInit().
unsigned int SUMT_bcExit | ( | SUMT_BC * | bc | ) |
Shutdown a bus controller driver and 1553 device hardware.
Stops the bus contoller from sending 1553 bus commands and releases system resources claimed by the driver. The bus contoller event service task will be deleted.
bc | A device descriptor. |
References _SUMT_BC::check, MEM_FREE, SUMT_BC_EVENT_EXIT, _SUMT_BC::task_id, and _SUMT_BC::task_queue.
Referenced by CTDB_bcExit().
SUMT_BC * SUMT_bcGet | ( | void | ) |
Get a pointer to the bus controller driver static descriptor.
Returns a pointer to a static instance of the driver descriptor. This pointer may be passed in as the first paramter to all of the other driver functions. SUMT_bcInit() must be called before use.
Referenced by CTDB_bcGet().
unsigned int SUMT_bcInit | ( | SUMT_BC * | bc, | |
const SUMT_BC_Bus_Config * | busConfig, | |||
const SUMT_BC_Pkt_Config * | pktConfig, | |||
const SUMT_BC_Task_Config * | taskConfig | |||
) |
Intialize a bus controller driver and 1553 device hardware.
Intializes the Summit bus controller device descriptor and device hardware. The device and associated software structures are configured according to the contents of the busConfig, boardConfig, pktConfig, and cbConfig structures.
bc | An uninitialized device descriptor. | |
busConfig | The configuration values for the 1553 bus schedule. | |
pktConfig | The configuration values for the application packet interface. | |
taskConfig | The configuration values for the BC service task. |
References _SUMT_BC::check, _SUMT_BC::cmd_blk, _SUMT_BC::cmd_rx_inter, _SUMT_BC_Pkt_Config::cmd_rx_pkt_size, _SUMT_BC_Pkt_Config::cmd_rx_queue_size, _SUMT_BC::cmd_tx_inter, _SUMT_BC_Pkt_Config::cmd_tx_pkt_size, _SUMT_BC_Pkt_Config::cmd_tx_queue_size, CO1553_bcCmdRxInit(), CO1553_bcCmdTxInit(), CO1553_bcTelemInit(), CO1553_MSG_SIZE, _SUMT_BC::data_buf, _SUMT_BC::frame_timer, _SUMT_BC::log_list, _SUMT_BC::mem_addr, MEM_ALLOC, _SUMT_BC::mem_size, SUMT_BC_EVENT_INIT, SUMT_BC_LOG_SIZE, SUMT_BC_N_INTR, SUMT_bcBoardInit(), SUMT_bcBoardIntrAck(), SUMT_bcBoardIntrConnect(), SUMT_bcBoardIntrDisable(), SUMT_bcBoardIntrEnable(), SUMT_bcConfigure(), SUMT_bcTask(), SUMT_DMAF, SUMT_EOL, SUMT_ILLCMD, SUMT_ILLOP, SUMT_memSet(), SUMT_MERR, SUMT_MSEL_BC, SUMT_REG_CONTROL, SUMT_REG_IRQ_MASK, SUMT_REG_STATUS, _SUMT_BC::sumt_regs, SUMT_reset(), SUMT_test(), SUMT_WORD_READ, SUMT_WORD_WRITE, SUMT_WRAPF, _SUMT_BC_Task_Config::task_attr, _SUMT_BC::task_id, _SUMT_BC_Task_Config::task_level, _SUMT_BC::task_level, _SUMT_BC::task_msg, _SUMT_BC::task_queue, _SUMT_BC::telem_data, _SUMT_BC::telem_inter, _SUMT_BC_Bus_Config::telem_msg_count, _SUMT_BC_Pkt_Config::telem_pkt_size, and _SUMT_BC_Pkt_Config::telem_queue_size.
unsigned int SUMT_bcSizeof | ( | void | ) |
Get the size of a bus controller driver descriptor.
Returns the size of a Summit bus controller driver descriptor. The user is responsible for allocating this memory before calling SUMT_bcInit().
This function is obsolete. Use SUMT_bcGet() to provide an instance of the simulator descriptor instead.
Referenced by CTDB_bcSizeof().
unsigned int SUMT_bcStart | ( | SUMT_BC * | bc | ) |
Start the bus controller processing 1553 bus commands.
Stop the bus controller processing 1553 bus commands.
Starts the bus controller processing bus commands to send to the remote terminal. A 40 millisecond second frame timer is also started, so that once the current list of bus commands is processed, the BCRTM device is restarted the next frame tick with a new command list.
bc | A device descriptor. |
References _SUMT_BC::base_addr, _SUMT_BC::check, _SUMT_BC::frame_cmd_blk, _SUMT_BC::frame_count, _SUMT_BC::frame_timer, _SUMT_BC::log_list, SUMT_addrLocalToChip(), SUMT_BC_FRAME_PERIOD, SUMT_bcFrame(), SUMT_REG_CONTROL, SUMT_REG_IRQ_LLP, SUMT_REG_SRT_DP, _SUMT_BC::sumt_regs, SUMT_STEX, SUMT_WORD_READ, and SUMT_WORD_WRITE.
Referenced by CTDB_bcStart().
unsigned int SUMT_bcStop | ( | SUMT_BC * | bc | ) |
Stops the bus controller from sending 1553 bus commands. In actuallity, the device is not stopped immediately, but simply will not be restarted for the next one second frame.
bc | A device descriptor. |
References _SUMT_BC::check, and _SUMT_BC::frame_timer.
Referenced by CTDB_bcStop(), and SUMT_bcTerminate().
static int SUMT_bcTask | ( | SUMT_BC * | bc, | |
FORK_msg_sys * | msg | |||
) | [static] |
The bus controller event service task. This task listens for new interrupt descriptor messages placed on a queue by SUMT_bcIntr(). The interrupt event information is parsed to determine the appropriate action. If the interrupt event is an error, then the user error callback is invoked. Otherwise, if the event is a data message transmit or receive, the SUMT_bcMsg() function is called to further process the event.
bc | A device descriptor. | |
msg | A pointer to the event message. |
References SUMT_BC_EVENT_EXIT, SUMT_BC_EVENT_FRAME, SUMT_BC_EVENT_INIT, SUMT_bcMsg(), SUMT_bcTerminate(), and _SUMT_BC::task_level.
Referenced by SUMT_bcInit().
static void SUMT_bcTerminate | ( | SUMT_BC * | bc | ) | [static] |
Stops the bus controller event service loop and returns all resources claimed by the driver.
bc | A device descriptor. |
References _SUMT_BC::cmd_rx_inter, _SUMT_BC::cmd_tx_inter, CO1553_bcCmdRxExit(), CO1553_bcCmdTxExit(), CO1553_bcTelemExit(), _SUMT_BC::frame_timer, MEM_FREE, SUMT_bcBoardIntrDisable(), SUMT_bcBoardIntrDisconnect(), SUMT_bcStop(), SUMT_REG_IRQ_MASK, _SUMT_BC::sumt_regs, SUMT_WORD_WRITE, _SUMT_BC::telem_data, and _SUMT_BC::telem_inter.
Referenced by SUMT_bcTask().
bcDesc [static] |
An instance of the driver descriptor; used for SUMT_bcGet().
cmdRxDesc [static] |
An instance of the telecommand receive interface descriptor.
cmdTxDesc [static] |
An instance of the telecommand transmit interface descriptor.
telemDesc [static] |
An instance of the telemetry interface descriptor.