CN8478/CN8474A/CN8472A/CN8471A
6.0 Basic Operation
Multichannel Synchronous Communications Controller (MUSYCC™)
6.3 Channel Operation
For this example, the following group structure declaration is used:
/* Reference: Chapter “Memory Organization” */
#define SIZE_OF_GROUP_STRUCTURE 1564
#define NUM_GROUPS 1
#define BOUNDARY 2048
#define MUSYCC_FUNC_0_BAR 0x00900000 /* system usually assigns this */
/* declare variable */
typedef struct tGROUP_STRUCTURE
{
unsigned long *pGroupBase;
unsigned long *pDualAddressCycleBase;
unsigned long ServiceRequestDescr;
unsigned long InterruptStatusDescr;
unsigned char Txtime slotMap[128];
unsigned char TxSubchannelMap[256];
unsigned char TxChannelConfigDescr[128];
unsigned char Rxtime slotMap[128];
unsigned char RxSubchannelMap[256];
unsigned char RxChannelConfigDescr[128];
unsigned long GlobalConfigDescr;
unsigned long InterruptDescr[2];
unsigned long GroupConfigDescr;
unsigned long MemoryProtectDescr;
unsigned long MessageLengthDescr;
unsigned long PortConfigDescr;
} tGROUP_STRUCTURE;
/* IMPORTANT NOTE: Byte padding within the structure would cause descriptor */
/* offsets from the beginning of the structure to move. MUSYCC requires every */
/* offset to be fixed at all times. Byte padding is an automatic function of */
/* many compilers. */
/* allocate space */
tGROUP_STRUCTURE GroupStr0; /* one per supported group */
/* fixed descriptor offsets into the group structure */
#define GROUP_BASE_OFFSET...............0x00000000
#define DUAL_ADDRESS_CYCLE_BASE_OFFSET..0x00000004
#define SERVICE_REQUEST_OFFSET..........0x00000008
#define INTERRUPT_STATUS_OFFSET.........0x0000000C
#define TX_time slot_MAP_OFFSET..........0x00000200
#define TX_SUBCHANNEL_MAP_OFFSET........0x00000280
#define TX_CHANNEL_CONFIG_DESCR_OFFSET..0x00000380
#define RX_time slot_MAP_OFFSET..........0x00000400
#define RX_SUBCHANNEL_MAP_OFFSET........0x00000480
#define RX_CHANNEL_CONFIG_DESCR_OFFSET..0x00000580
#define GLOBAL_CONFIG_DESCR_OFFSET......0x00000600
#define INT_QUEUE_DESCR_OFFSET..........0x00000604
#define INT_QUEUE_POINTER_OFFSET........0x00000604
#define INT_QUEUE_LENGTH_OFFSET.........0x00000608
#define GROUP_CONFIG_DESCR_OFFSET.......0x0000060C
#define MEMORY_PROTECT_DESCR_OFFSET.....0x00000610
#define MESSAGE_LENGTH_DESCR_OFFSET.....0x00000614
#define PORT_CONFIG_DESCR_OFFSET........0x00000618
100660E
Conexant
6-9