?? cmmmisc.c
字號:
#include <psos.h>
#include "board.h"
#include "cmmmisc.h"
#include "bspcomm.h"
#include "bspspec.h"
static void CmmMiscInit(void *pDataBuf, CmmMiscCfgStruct *cfg )
{
CmmMiscCfgStruct* pCfg =(CmmMiscCfgStruct *)(pDataBuf);
memmove(pCfg,cfg,sizeof(*cfg));
}
static int CmmMiscCntrl(void *pDataBuf, int cmd, void *pParam, int maxlen)
{
int ret,i,ClkAlarm,rc,len,dev;
ULONG temp,*buf;
DS21x54WarningStruct tmp;
CmmMiscCfgStruct* pCfg =(CmmMiscCfgStruct *)(pDataBuf);
switch(cmd)
{
case SDC_REINIT:
CmmMiscInit(pDataBuf,pCfg);
rc=SDE_OK;
break;
case SDC_GET_ALARMS:
i=0; len=maxlen/4;
ClkAlarm=(*(unsigned short *)CLK_CHECK)>>5;
if((ClkAlarm & 0x10)==0){
if(i>=len)return SDE_SHORTER_BUF;
((ULONG*)pParam)[i++]=SDA_FCK;
}
if((ClkAlarm & 0x8)==0){
if(i>=len)return SDE_SHORTER_BUF;
((ULONG*)pParam)[i++]=SDA_SYNCLK;
}
if((ClkAlarm & 0x4)==0){
if(i>=len)return SDE_SHORTER_BUF;
((ULONG*)pParam)[i++]=SDA_FCLK;
}
if((ClkAlarm & 0x2)==0){
if(i>=len)return SDE_SHORTER_BUF;
((ULONG*)pParam)[i++]=SDA_4M;
}
if((ClkAlarm & 0x1)==0){
if(i>=len)return SDE_SHORTER_BUF;
((ULONG*)pParam)[i++]=SDA_13M;
}
return i;
default:
if(CMMVerChecking()==0)
{
if(cmd==SDC_GET_21354_A_ALARMS)dev=SDN_21Q50_A;
else if(cmd==SDC_GET_21354_B_ALARMS)dev=SDN_21Q50_B;
else if(cmd==SDC_GET_21354_E_ALARMS)dev=SDN_21Q50_E;
else if(cmd==SDC_GET_21354_D_ALARMS)dev=SDN_21Q50_D;
else return SDE_UNKNOW_CMD;
}
else
{
if(cmd==SDC_GET_21354_A_ALARMS)dev=SDN_21354_A;
else if(cmd==SDC_GET_21354_B_ALARMS)dev=SDN_21354_B;
else if(cmd==SDC_GET_21354_C_ALARMS)dev=SDN_21354_C;
else if(cmd==SDC_GET_21354_D_ALARMS)dev=SDN_21354_D;
else if(cmd==SDC_GET_21354_E_ALARMS)dev=SDN_21354_E;
else if(cmd==SDC_GET_21354_F_ALARMS)dev=SDN_21354_F;
else return SDE_UNKNOW_CMD;
}
i=0; len=maxlen/4;
rc=sd_cntrl(dev,SDC_DS21x54_GETWARNING,&tmp,sizeof(tmp));
if(rc!=SDE_OK)return 0;
if(tmp.RCL==1){
if(i>=len)return SDE_SHORTER_BUF;
((ULONG*)pParam)[i++]=SDA_DS21x54_RCL;
}
if(tmp.RLOS==1){
if(i>=len)return SDE_SHORTER_BUF;
((ULONG*)pParam)[i++]=SDA_DS21x54_RLOS;
}
if(tmp.RPSlip==1){
if(i>=len)return SDE_SHORTER_BUF;
((ULONG*)pParam)[i++]=SDA_DS21x54_RPSLIP;
}
if(tmp.RNSlip==1){
if(i>=len)return SDE_SHORTER_BUF;
((ULONG*)pParam)[i++]=SDA_DS21x54_RNSLIP;
}
/* if(tmp.TPSlip==1){
if(i>=len)return SDE_SHORTER_BUF;
((ULONG*)pParam)[i++]=SDA_DS21x54_TPSLIP;
}
if(tmp.TNSlip==1){
if(i>=len)return SDE_SHORTER_BUF;
((ULONG*)pParam)[i++]=SDA_DS21x54_TNSLIP;
}*/
return i;
}/* end of switch(cmd) */
return rc;
}
char *CmmMiscBspInit(int DEV, char *FreeMemPtr, CmmMiscCfgStruct *cfg)
{
InstallSD(DEV,NULL,NULL,CmmMiscCntrl,FreeMemPtr);
CmmMiscInit(FreeMemPtr, cfg);
FreeMemPtr += sizeof(CmmMiscCfgStruct);
memcpy(FreeMemPtr,"*CmmMisc",8);
FreeMemPtr += 8;
return FreeMemPtr;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -