正在启动硬件计时器,并使用devctl命令定期检查倒计时。
MsgType tData;
tData.sFacadeNo = IohFac_SIO; // has value 8
tData.sCmdNo = IohSIO_startOvertempTimer; // has value 6
tData.sStatus = IOH_STAT_RMGRERR; // has value 4
tData.tSpecData.tStandardMsg.uiValue1 = 1;
devctl( iFD, (int) DEVDIR_TOFROM, &tData, (unsigned) (int) tData.sLen, (int*) NULL );
return tData.sStatus;
iFD是从/ dev / SomeDeviceCustomTous中的设备的open64命令获取的文件描述符。设备的类型为“ n”,表示“命名特殊”(共享内存区域,例如/ dev / shmem / Pg101e0001。)
在tData中获得响应。
一些相关的枚举
struct MsgTag {
short sCmdNo; //## attribute sCmdNo
short sFacadeNo; //## attribute sFacadeNo
short sLen; //## attribute sLen
short sStatus; //## attribute sStatus
tSpecDataTag tSpecData; //## attribute tSpecData
MsgTag()
{
sLen=sizeof(MsgTag);
}
};
//#]
union tSpecDataTag {
HndlMsgType tHndlMsg;
StandardMsgType tStandardMsg;
};
typedef MsgTag MsgType;
struct HndlMsgTag {
void * pPortID;
unsigned int uiValue1;
unsigned int uiValue2;
};
typedef HndlMsgTag HndlMsgType;
struct StandardMsgTag {
int iSetID;
unsigned int uiTimeout;
unsigned int uiValue1;
unsigned int uiValue2;
};
typedef StandardMsgTag StandardMsgType;
问题
硬件计时器默认设置为30分钟,并且倒计时直到变为0并变为非活动状态。我不确定将其设置为30的位置。我们的要求是将倒计时更改为10分钟,但我认为代码中的任何位置都没有设置。
欢迎提出任何建议。