⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bsp.h

📁 motorola mpc系列 mpc852cpu bsp
💻 H
📖 第 1 页 / 共 2 页
字号:
#define  DRV_BOOT_GET_OUTER_MAC_STATE    0x0128
#define  DRV_BOOT_SET_INNER_IP_STATE     0x0129
#define  DRV_BOOT_GET_INNER_IP_STATE     0x012A
#define  DRV_BOOT_SET_INNER_MAC_STATE    0x012B
#define  DRV_BOOT_GET_INNER_MAC_STATE    0x012C
#define  DRV_BOOT_SET_HOSTIP_STATE       0x012D
#define  DRV_BOOT_GET_HOSTIP_STATE       0x012E
#define  DRV_BOOT_SET_BOOTDIRC_STATE     0x012F
#define  DRV_BOOT_GET_BOOTDIRC_STATE     0x0130
#define  DRV_BOOT_SET_BOOTFILE_STATE     0x0131
#define  DRV_BOOT_GET_BOOTFILE_STATE     0x0132
#define  DRV_BOOT_SET_WORKMODE_STATE     0x0133
#define  DRV_BOOT_GET_WORKMODE_STATE     0x0134


#define  DRV_QMC_RESET_DRIVER            0x0201
#define  DRV_QMC_DIS_CHANNEL             0x0202
#define  DRV_QMC_EN_CHANNEL              0x0203
#define  DRV_QMC_ASSIGN_TIMESLOT         0x0204
#define  DRV_QMC_EN_LOOPBACK             0x0205
#define  DRV_QMC_DIS_LOOPBACK            0x0206
#define  DRV_QMC_EN_LOOPBACK_TS          0x0207
#define  DRV_QMC_DIS_LOOPBACK_TS         0x0208
#define  DRV_QMC_RESET_RXBD              0x0209
#define  DRV_QMC_RESET_TXBD              0x020A
#define  DRV_QMC_RESET_ALLBD             0x020B
#define  DRV_QMC_GET_BD_STATUS           0x020C
#define  DRV_QMC_GET_REG_STATUS          0x020D
#define  DRV_QMC_RESET_STATIC            0x020E
#define  DRV_QMC_GET_STATIC              0x020F
#define  DRV_QMC_GET_RXTX_BYTE           0x0210
#define  DRV_QMC_GET_RXTX_FRAME          0x0211

#define  DRV_SERIAL_SETBAUT              0x0301
#define  DRV_SERIAL_GETBAUT              0x0302
#define  DRV_SERIAL_REG_STATUS           0x0303
#define  DRV_SERIAL_PUT_CHAR             0x0304
#define  DRV_SERIAL_SEND_ENABLE          0x0305
#define  DRV_SERIAL_RECEIVE_ENABLE       0x0306
#define  DRV_SERIAL_SEND_DISABLE         0x0307
#define  DRV_SERIAL_RECEIVE_DISABLE      0x0308
#define  DRV_SERIAL_INIT                 0x0309
#define  DRV_SERIAL_SEND_TEST            0x030A
#define  DRV_SERIAL_SEND_CC_CHAR         0x030B
#define  DRV_SERIAL_RECEIVE_TEST         0x030C
#define  DRV_SERIAL_GET_PARA             0x030D

#define  DRV_SPI_GET_STATICS             0x0401
#define  DRV_SPI_RESET_STATICS           0x0402
#define  DRV_SPI_GET_REG_STATUS          0x0403
#define  DRV_SPI_SET_LOOPBACK            0x0404
#define  DRV_SPI_SET_UNLOOPBACK          0x0405


enum CPM_Type
{
    CPM_SCC1,
    CPM_SCC2,
    CPM_SCC3,
    CPM_SCC4,
    CPM_SMC1,
    CPM_SMC2,
};


enum tag_DrvRegDest_E
{
    PROTOCAL = 1,
    APP
};
typedef struct tag_DrvStruc_S
{
    char DrvName[MAX_DRV_NAME_SIZE];
    _U32 CPMType;
    _U32 RBDBase;
    _U32 RBDSize;
    _U32 TBDBase;
    _U32 TBDSize;
    _U32 CurRBDPoint;
    _U32 CurTBDPoint;
    char LinkAddr[MAX_DRV_ADDR_SIZE];
    char * (*MemAlloc) (_U32);
    void (*MemFree) (void *);
    _U32 (*DrvCreate) (_U8,_U32);
    _U32 (*DrvSelect) (_U8,_U32, _U32);
    _U32 (*DrvSend) (_U8,_U32, char*, char*, _U16);
    _U32 (*DrvReceive) (_U8,_U32, char**, char**, _U16*);
    _U32 (*DrvScan) (_U8,_U32);
    _U32 (*DrvIOctrl) (_U8,_U32, _U16, _U32);
    void *pDrvPrivateStruct;
}DrvStruc_S;


typedef struct tag_DrvList_S
{
    int DrvRegDest;
    int DrvType;
    DrvStruc_S *pDrvInfo;
}DrvList_S;


/*Cpu网口统计的数据结构netstat interface*/
typedef struct DrvEthStat
{
    _U32    ulUsedFlag;
    _U32    ulTxErr;
    _U32    ulTxPkt;
    _U32    ulTxByte;
    _U32    ulRxBusy;
    _U32    ulRxPkt;
    _U32    ulRxByte;
    _U32    ulRxLoss;
}DRV_ETH_STAT;


extern DrvStruc_S Enet_DrvInfo[MAX_ENET_DRIVER_NUM];
extern DrvStruc_S Serial_DrvInfo[MAX_SERIAL_DRIVER_NUM];

extern _U32 LoadCtrl_BootInfoIOCtrl(_U16 u16Cmd, _U32 pData);


/*****************************************************************************
                                ETHERNET(SCC1)
*****************************************************************************/


/*SCC1网口驱动统计结构*/
typedef struct _Enet_SCCState
{
/*receive status*/
    _U32 RX_LG;
    _U32 RX_NO;
    _U32 RX_SH;
    _U32 RX_CR;
    _U32 RX_OV;
    _U32 RX_CL;
    _U32 RX_MallocFailCount;
    _U32 RX_FramLostCount;
    _U32 RX_MultiBdCount;
    _U32 RX_PackCount;
    _U32 RX_TotalBufLen;
    _U32 RX_TestDataErrCount;
    _U32 RX_InitBDCount;
    _U32 RX_MallocCount;
    _U32 RX_FreeCount;
    _U32 RX_Send2MACExt;
    _U32 RX_Send2MACIn;
    _U32 RX_SendNoDistribute;
    _U32 RX_DropBroadCaseSelfMAC;

    _U32 TX_DEF;
    _U32 TX_HB;
    _U32 TX_LC;
    _U32 TX_RL;
    _U32 TX_RC;
    _U32 TX_UN;
    _U32 TX_CSL;
    _U32 TX_SendFailCount;
    _U32 TX_SendOKCount;
    _U32 TX_TotalFailBufLen;
    _U32 TX_TotalOKBufLen;
    _U32 TX_TestFormPacketCount;
    _U32 TX_InitBDCount;
	_U32 TX_Call;
	_U32 TX_CallAddHead;
	_U32 TX_CallNoAddHead;
	_U32 TX_CallNoDistribute;
	_U32 TX_AddHeadMalloc;
	_U32 TX_AddPadMalloc;
	_U32 TX_AddHeadFree;
	_U32 TX_AddPadFree;
	_U32 TX_BigPackFree;
	_U32 TX_BDFree;

}Enet_SCCState;

#define UP_MAC_HEAD_TYPE     0x9056

typedef struct _UP_MACHeadStr
{
    char DestMAC[MAC_ADDR_SIZE];
    char SourceMAC[MAC_ADDR_SIZE];
    _U16  MACType;
}UP_MACHeadStr;

typedef struct _Enet_PMStatics
{
    _U32 Rx_Package;
    _U32 Rx_Length;
    _U32 Rx_StaticsDec;
    _U32 Rx_StaticsTicks;
    _U32 Rx_PackagePSec;
    _U32 Rx_bps;

    _U32 Output_TxBufCount;
    _U32 Output_TxBufLen;
    _U32 Output_RxBufCount;
    _U32 Output_RxBufLen;
}Enet_PMStatics;
typedef struct tag_ST_TEST_RESULT
{
    _U32 ulErrCount;

    _U32 ulErrStartType; /*标识是哪种类型错误,针对不便统计的错误*/
    _U32 ulStartAdd;
    _U32 ulStartWrite;
    _U32 ulStartRead;

    _U32 ulErrEndType;
    _U32 ulEndAdd;
    _U32 ulEndWrite;
    _U32 ulEndRead;
}ST_TEST_RESULT, ST_TEST_RAM_RESULT;

typedef struct tag_ST_TEST_RESULT_TO_FLASH
{
    _U32 ulTestState;
    _U32 ulTestCount;
    _U32 ulCurrentResult;
    ST_TEST_RAM_RESULT stTestErrResult;
    _U8  aucTestAllResult[ EQUIP_TEST_RESULT_LEN ];
}ST_TEST_RESULT_TO_FLASH;

typedef enum
{
    EN_EQUIP_TEST_STATE_NULL,
    EN_EQUIP_TEST_STATE_START,
    EN_EQUIP_TEST_STATE_RUN,
    EN_EQUIP_TEST_STATE_END,
    EN_EQUIP_TEST_STATE_BUTT
}EN_EQUIP_TEST_STATE;

typedef enum
{
    EN_EQUIP_TEST_ITEM_RAM,
    EN_EQUIP_TEST_ITEM_FLASH,

    /*AG上专用*/
    EN_EQUIP_TEST_ITEM_AUDIO_FLASH,/*与FLASH保留一致*/

    EN_EQUIP_TEST_ITEM_FPGA,
    EN_EQUIP_TEST_ITEM_LSW,
    EN_EQUIP_TEST_ITEM_DSP,

    /*TG上专用*/
    EN_EQUIP_TEST_ITEM_DSP_RAM,
    EN_EQUIP_TEST_ITEM_DSP_SERVER,
    EN_EQUIP_TEST_ITEM_E1,
    EN_EQUIP_TEST_ITEM_NET,
    EN_EQUIP_TEST_ITEM_QMC,
    EN_EQUIP_TEST_ITEM_RTC,

    /*AG上专用*/
    EN_EQUIP_TEST_ITEM_POTS,


    EN_EQUIP_TEST_ITEM_BUTT
}EN_EQUIP_TEST_ITEM;



extern _VOID Equip_TestErrLog( _U32 ulErrType, _U32 ulAddr, _U32 ulWrite, _U32 ulRead, ST_TEST_RESULT *pstTestErr );
extern _U32 Drv_EnetCreate (_U8 ,_U32 );
extern _U32 Drv_EnetSend(_U8 ,_U32 , char *, char *, _U16 );

extern _U32 Drv_EnetReceive(_U32 , char **, char **, _U16 *);
extern _U32 Drv_EnetIOctrl(_U8 ,_U32 , _U16 , void *);
extern _U32 Drv_EnetIOctrlSelf(_U8 , _U32  , _U16 , _U32 );
extern _U32 Drv_SmcIOctrlSelf(_U8 u8Type, _U32 u32Channel , _U16 u16Cmd, _U32 pData);
extern _U32 Drv_EnetSelect(_U8 ,_U32 , _U32 );

extern void Drv_EnetRcvTask();

/*****************************************************************************
                                SERIAL(SMC)
*****************************************************************************/

/*****************************************
            串口宏定义
 *****************************************/
#define SMCBAUT9600      (0x0144 << 1)
#define SMCBAUT19200     (0x00a0 << 1)
#define SMCBAUT38400     (0x0050 << 1)
#define SMCBAUT57600     (0x0034 << 1)
#define SMCBAUTMASK      0x0000100e

extern _U32 Drv_SmcPutChar(_U8 ,_U32 , unsigned char );
extern _U32 Drv_SmcGetChar(_U8 ,_U32 , unsigned char *);
extern _U32 Drv_SmcCreate(_U8 ,_U32 );
extern _U32 Drv_Print(const char *pStr, ...);

extern _U32 Drv_SerialIOctrl(_U16 u16Cmd, _U32 pData);
extern _U32 Drv_SmcIOctrl(_U8 u8Type,_U32 u32Channel, _U16 u16Cmd, _U32 pData);

extern _U32 Bsp_Receive(char *ucData);

/*****************************************************************************
                                   LED
*****************************************************************************/
#define RUN_LAMP				0x00000001
#define ALARM_LAMP				0x00000002

extern void Drv_LedFlash (_U32 LedNum,_U32 ulLightTime,_U32 ulBlackTime);


/*****************************************************************************
                                   OTHERS
*****************************************************************************/

extern int gScc4RcvTid;
#if 0
extern _U32 UNZip(_U32 SourceAddr, _U32 DestAddr, _U32 ZipLength);
extern _U32 Load_xModemDownLoad ( _U32 startaddr,_U32 *pdwLength);
#endif

extern _U32 Drv_ErrGetLog(char *pData);
extern int  taskDelay (int ticks);
extern int 	taskDelete (int tid);
extern void BSP_GetCallersPC( _U32 *pulAddrArray, _U32 ulArrayNum );
extern void BSP_GetTimeDetail(_U32 *ulTick, _U32 *ulUsec);
extern _U32 BSP_GetSP(void);
extern _U32 BSP_GetICacheState(void);
extern _U32 BSP_GetDCacheState(void);
extern _U32 BSP_GetDERState(void);
extern _U32 BSP_GetICRState(void);
extern _U32 BSP_GetICTRLState(void);
extern _U32 BSP_GetIMMRState(void);
extern _U32 BSP_GetMSRState(void);

#define MAX_BSP_OUT_STRING_LENGTH   0x10000


/*调用举例:
  BSP_ResetDSP(CHIP_DSP1|CHIP_DSP2|CHIP_DSP3|CHIP_DSP4)
  BSP_UnResetDSP(CHIP_DSP1|CHIP_DSP2|CHIP_DSP3|CHIP_DSP4)
*/
#define   WATCHDOG_TIME_3S          0x03
#define   WATCHDOG_TIME_60S        0x02

extern void BSP_SetWatchDogTime(_U8 WatchDogTime);
extern _U32 BSP_GetBiosVer(void);
extern _S8 *BSP_GetBspVer(void);
extern void BSP_ReBoot(void);
extern void sysFeedWatchDog(void);
extern void sysMsDelay(_U32 delay);


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -