📄 fucmisc.c
字号:
#include <psos.h>
#include "board.h"
#include "sdev.h"
#include "bspspec.h"
#include "fucmisc.h"
static void FucMiscInit(void *pDataBuf, FucMiscCfgStruct *cfg )
{
FucMiscCfgStruct* pCfg =(FucMiscCfgStruct *)(pDataBuf);
memmove(pCfg,cfg,sizeof(*cfg));
}
static int FucMiscCntrl(void *pDataBuf, int cmd, void *pParam, int maxlen)
{
int i,ret,index,len;
PDA *pda= (PDA *)(GetIMMR() & IO_MAP_MASK);
FucMiscCfgStruct* pCfg =(FucMiscCfgStruct *)(pDataBuf);
switch(cmd)
{
case SDC_REINIT:
FucMiscInit(pDataBuf,pCfg);
break;
case SDC_GET_ALARMS:
i=0; len=maxlen/4;
if( (pda->pio_pddat & 0x1000)==0 ){
if(i>=len)return SDE_SHORTER_BUF;
((ULONG*)pParam)[i++]=SDA_LOST_4M;
}
if( (pda->pio_pddat & 0x800)==0 ){
if(i>=len)return SDE_SHORTER_BUF;
((ULONG*)pParam)[i++]=SDA_LOST_OBCLK;
}
if( (pda->pio_pddat & 0x400)==0 ){
if(i>=len)return SDE_SHORTER_BUF;
((ULONG*)pParam)[i++]=SDA_LOST_8K;
}
if( (pda->pio_pddat & 0x200)==0 ){
if(i>=len)return SDE_SHORTER_BUF;
((ULONG*)pParam)[i++]=SDA_LOST_FCLK;
}
#if 0 /* for hardware limit */
if( (pda->pip_pbdat & 0x4000)==0 ){
if(i>=len)return SDE_SHORTER_BUF;
((ULONG*)pParam)[i++]=SDA_ERROR_T0;
}
if( (pda->pip_pbdat & 0x2000)==0 ){
if(i>=len)return SDE_SHORTER_BUF;
((ULONG*)pParam)[i++]=SDA_ERROR_T1;
}
#endif
return i;
default:
return SDE_UNKNOW_CMD;
}/* end of switch(cmd) */
return SDE_OK;
}
char *FucMiscBspInit(int DEV, char *FreeMemPtr, FucMiscCfgStruct *cfg)
{
InstallSD(DEV,NULL,NULL,FucMiscCntrl,FreeMemPtr);
FucMiscInit(FreeMemPtr, cfg);
FreeMemPtr += sizeof(FucMiscCfgStruct);
memcpy(FreeMemPtr,"*FucMisc",8);
FreeMemPtr += 8;
return FreeMemPtr;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -