📄 hdlc100.h
字号:
/****************************************************************/
/* */
/* MODULE: BDTest/hdlc100.h */
/* DATE: 98/12/01 */
/* PURPOSE: hdlc(high level data link control) header */
/* */
/*--------------------------------------------------------------*/
/* Copyright (C) 1998 Samsung Electronics. */
/* */
/****************************************************************/
#ifndef _HDLC100_H
#define _HDLC100_H
#define CPU 0
#define HDMA 1
#define MODE HDMA
#define HDLCA 0
#define HDLCB 1
#define HDLCPORTNUM 2
#define WORD 4
#define HdlcReturnOk 1
#define HdlcReturnFail 0
#define HDLCRx_Ok 1
#define HDLCRx_Fail 0
#define HDLCTx_Ok 1
#define HDLCTx_Fail 0
#define MaxTxBDCount 64
#define MaxRxBDCount 256
#define NonCache 0x4000000
//99.1.3 such
#define RxBufLength 64
#define MaxFrameLength 1500
#define TxBufferSize 0x2000
#define RxBufferSize 0x2000
#define UserAreaSize 0x7000
#define RxBufferDataPreamble 0xDDDDDDD//cjw
#define ExtCLK TxCTxC|RxCRxC
#define IntCLK TxCBO2|RxCBO2
#define HDLC_BAUDRATE 256000
#define HDLC_PREAMBLE 0xAA
// Tx Buffer Descriptor structure
// HDLC Mode Register (HMODE)
#define MFinFIFO 0x00000001 // bit 0
#define RxChigh 0x00000004 // bit 2
#define TxCINV 0x00000008 // bit 3
#define RxCINV 0x00000010 // bit 4
#define TxLittle 0x00000020 // bit 5
#define TxPL1 0x00000000
#define TxPL2 0x00000100
#define TxPL3 0x00000200
#define TxPL4 0x00000300
#define TxPL5 0x00000400
#define TxPL6 0x00000500
#define TxPL7 0x00000600
#define TxPL8 0x00000700
#define NRZ 0x00000000
#define NRZI 0x00001000
#define FM0 0x00002000
#define FM1 0x00003000
#define Manchester 0x00004000
#define DPLLTxC 0x00000000
#define DPLLRxC 0x00010000
#define DPLLMCLK 0x00020000
#define DPLLBO1 0x00030000
#define DPLLBO2 0x00040000
#define BRGRxC 0x00000000
#define BRGMCLK 0x00080000
#define TxCTxC 0x00000000
#define TxCRxC 0x00100000
#define TxCPLL 0x00200000
#define TxCBO1 0x00300000
#define TxCBO2 0x00400000
#define RxCTxC 0x00000000
#define RxCRxC 0x01000000
#define RxCPLL 0x02000000
#define RxCBO1 0x03000000
#define RxCBO2 0x04000000
#define TxOTxC 0x00000000
#define TxORxC 0x10000000
#define TxOBO1 0x20000000
#define TxOBO2 0x30000000
#define TxOPLLT 0x40000000
#define TxOPLLR 0x50000000
//HDLC control register (HCON)
#define TxRS 0x00000001
#define RxRS 0x00000002
#define DTxRS 0x00000004
#define DRxRS 0x00000008
#define TxEN 0x00000010
#define RxEN 0x00000020
#define DTxEN 0x00000040
#define DRxEN 0x00000080
#define DPLLEN 0x00000100
#define BRGEN 0x00000200
#define Tx1WD 0x00000000
#define Tx4WD 0x00000400
#define Rx1WD 0x00000000
#define Rx4WD 0x00000800
#define WIDGETMASK 0x00003000
#define RxWA0 0x00000000
#define RxWA1 0x00001000
#define RxWA2 0x00002000
#define RxWA3 0x00003000
#define DTxSTSK 0x00004000
#define DRxSTSK 0x00008000
#define DRxMADec 0x00010000
#define TxFlag 0x00020000
#define TxDFlag 0x00040000
#define TxLOOP 0x00080000
#define RxECHO 0x00100000
#define TxABText 0x00200000
#define TxABT 0x00400000
#define TxPRMB 0x00800000
#define TxDTR 0x01000000
#define RxDISCON 0x02000000
#define TxNoCRC 0x04000000
#define RxNoCRC 0x08000000
#define AutoEN 0x10000000
// HDLC Status Register (HSTAT)
#define RxRB1 0x00000000 // bit3 - bit0
#define RxRB2 0x00000001 // bit3 - bit0
#define RxRB3 0x00000002 // bit3 - bit0
#define RxRB4 0x00000003 // bit3 - bit0
#define TxFC 0x00000010 // bit8
#define TxFA 0x00000020 // bit9
#define TxCTS 0x00000040 // bit10
#define TxSCTS 0x00000080 // bit11
#define TxU 0x00000100 // bit12
#define RxFA 0x00000200 // bit13
#define RxFD 0x00000800 // bit15
#define RxDCD 0x00001000 // bit16
#define RxSDCD 0x00002000 // bit17
#define RxFV 0x00004000 // bit19
#define RxIDLE 0x00008000 // bit20
#define RxABT 0x00010000 // bit21
#define RxCRCE 0x00020000 // bit22
#define RxNO 0x00040000 // bit22
#define RxOV 0x00080000 // bit23
#define RxMOV 0x00100000 // bit23
#define DTxABT 0x00400000 // bit25
#define RxIERR 0x00800000 // bit25
#define DRxFD 0x01000000 // bit27
#define DRxNL 0x02000000 // bit27
#define DRxNO 0x04000000 // bit27
#define DTxFD 0x08000000 // bit27
#define DTxNL 0x10000000 // bit27
#define DTxNO 0x20000000 // bit27
#define DPLLOM 0x40000000 // bit29
#define DPLLTM 0x80000000 // bit28
// HDLC Interrupt Enable Register (HINTEN)
#define TxFCIE 0x00000010 // bit1
#define TxFAIE 0x00000020 // bit2
#define TxSCTSIE 0x00000080 // bit3
#define TxUIE 0x00000100 // bit4
#define RxFAIE 0x00000200 // bit2
#define RxFDIE 0x00000800 // bit2
#define RxSDCDIE 0x00002000 // bit2
#define RxFVIE 0x00004000 // bit2
#define RxIDLEIE 0x00008000 // bit13
#define RxABTIE 0x00010000 // bit21
#define RxCRCEIE 0x00020000 // bit22
#define RxNOIE 0x00040000 // bit24
#define RxOVIE 0x00080000 // bit24
#define RxMOVIE 0x00100000 // bit24
#define DTxABTIE 0x00400000 // bit25
#define RxIERRIE 0x00800000 // bit26
#define DRxFDIE 0x01000000 // bit27
#define DRxNLIE 0x02000000 // bit27
#define DRxNOIE 0x04000000 // bit27
#define DTxFDIE 0x08000000 // bit27
#define DTxNLIE 0x10000000 // bit27
#define DTxNOIE 0x20000000 // bit27
#define DPLLOMIE 0x40000000 // bit28
#define DPLLTMIE 0x80000000 // bit28
// HDLC Tx Buffer Descriptor (HTxBD)
#define BOwnerShip_CPU 0x7fffffff // bit1
#define BOwnerShip_DMA 0x80000000 // bit1
#define Preamble 0x00000001 // bit1
#define TxNoCRCM 0x00000002 // bit1
#define Little 0x00000004 // bit1
#define LastBF 0x00000008 // bit1
#define BDPDec 0x00000010 // bit1
#define BDWA0 0x00000000 // bit1
#define BDWA1 0x00000020 // bit1
#define BDWA2 0x00000040 // bit1
#define BDWA3 0x00000060 // bit1
#define TxComp 0x04000000 // bit1
// HDLC Rx Buffer Descriptor (HRxBD)
#define CDlost 0x00000001 // bit1
#define CRCE 0x00000002 // bit1
#define NonOctet 0x00000004 // bit1
#define OverRun 0x00000008 // bit1
#define DTM 0x00000010 // bit1
#define ABT 0x00000020 // bit1
#define FrameF 0x00000040 // bit1
#define FrameL 0x00000080 // bit1
#define FLV 0x00000100 // bit1
// Defines For Function parameter
#define NORMAL 0
#define BUFFERLEN 1
#define NULLLIST 2
#define CPU 0
#define DMA 1
#define HdlcInitialize HDLC_init
// HDLC Tx Status Structure
typedef struct HdlcTxStatus {
U32 TxFrameComp ;
U32 TxFIFOAvail ;
U32 CTSstate ;
U32 CTSstore ;
U32 TxUnderrun ;
U32 DMATxABT ;
U32 DMATxFD ;
U32 DMATxNL ;
U32 DMATxNO ;
} sHTxStatus ;
// HDLC Rx Status Structure
typedef struct HdlcRxStatus {
U32 RxFIFOAvail;
U32 RxFlagDetected ;
U32 DCDstate ;
U32 DCDstore ;
U32 RxFValid ;
U32 RxIdle ;
U32 RxAbort ;
U32 RxCRCErr ;
U32 RxNonOctet ;
U32 RxOverrun ;
U32 DMARxMOV ;
U32 RxInterErr ;
U32 DMARxFD ;
U32 DMARxNL ;
U32 DMARxNO ;
U32 DMARxABT ;
} sHRxStatus ;
// HDLC DPLL Status Structure
typedef struct HdlcDPLLStatus {
U32 DPLLOneClkMiss ;
U32 DPLLTwoClkMiss ;
} sHDPLLStatus ;
// Tx/Rx Buffer descriptor structure
// (With Previous Descriptor)
typedef struct BD {
U32 BufferDataPtr;
U32 Reserved;
U32 StatusLength;
struct BD *NextBD ;
struct BD *PrevBD ;
} sBufferDescriptor;
// HDLC Frame Structure
typedef struct HDLCFrame {
U8 Address[4] ;
U8 Control ;
U8 *Information ;
} sHDLCFrame;
// HDMA Tx Structure
typedef struct HDMATxStatus {
U32 TxCompBD ;
} sHDMATxStatus ;
// HDMA Rx Structure
typedef struct HDMARxErr {
U32 CDlostBD ;
U32 CRCEBD ;
U32 NonOctetBD ;
U32 OverRunBD ;
U32 DTMBD ;
U32 ABTBD ;
U32 FrameFBD ;
U32 FrameLBD ;
U32 FLVBD ;
} sHDMARxErr ;
/*------------------------------------
* Function Prototype for HDLC.c
*------------------------------------*/
extern void HDLCTest(void) ;
/*
* Function : HDLCTest
* Description : HDLC Test Main Function
*/
extern void HdlcLoopbackTest(void) ;
/*
* Function : HdlcLoopbackTest
* Description : HDLC Loopback Test Function
*/
extern void HdlcFrameTx(void) ;
/*
* Function : HdlcFrameTx
* Description : HDLC Frame Transfer
*/
/*------------------------------------
* Function Prototype for HDLCinit.c
*------------------------------------*/
extern void RxBDSizeSet(int, int) ;
extern void AddressSet(U8) ;
extern void HDLCA_init(void) ;//cjw
/*
* Function : HDLCA_init
* Description : HDLC Channel A controller initialize
*/
extern void HDLCB_init(void) ;//cjw
/*
* Function : HDLCB_init
* Description : HDLC Channel B controller initialize
*/
extern void HDMAA_Tx_init(U32 TxDB_A, U32 TxD_Size_A) ;//cjw
/*
* Function : HDMAA_Tx_init
* Description : HDMA Channel A Tx initialize
*/
extern void HDMAA_Rx_init(void) ;//cjw
/*
* Function : HDMAA_Rx_init
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -