GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> CTDB / V5-5-5 > sumt_bc_sib / rad750


Interface   Data Structures   File List   Data Fields   Globals  

SUMT_bc_core.c File Reference

Primary Summit device interface functions. More...

#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_BCSUMT_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


Detailed Description

Primary Summit device interface functions.

Author:
D.L. Wood
Functions to handle initialization and control of the Summit bus cotroller.

Define Documentation

#define MEM_ALLOC ( _size   )     MBA_alloc((_size))

Helper macro to call user defined memory allocator.

Parameters:
_size The size in bytes of memory to allocate.
Returns:
A pointer to the memory, or NULL on error.

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.

Parameters:
_mem A pointer to the memory to free.

Referenced by CO1553_bcCmdRxExit(), CO1553_bcCmdTxExit(), CO1553_bcTelemExit(), SUMT_bcExit(), and SUMT_bcTerminate().


Function Documentation

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.

Parameters:
bc A device descriptor.
config A 1553 bus configuration structure.
Returns:
A CTDB MSG code.

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.

Parameters:
bc A device descriptor.
Returns:
A CTDB MSG code.

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.

Returns:
A pointer to the BC driver descriptor.

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.

Parameters:
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.
Returns:
A CTDB MSG code.

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.

Returns:
The size in bytes of the device descriptor.

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.

Parameters:
bc A device descriptor.
Returns:
A CTDB MSG code.

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.

Parameters:
bc A device descriptor.
Returns:
A CTDB MSG code.

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.

Parameters:
bc A device descriptor.
msg A pointer to the event message.
Returns:
FORK_C_CONTINUE

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]


Variable Documentation

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.


Generated on Tue Sep 27 14:38:53 2011 by  doxygen 1.5.8