两驱动共享数据线、及驱动线程优先级问题
大拿们,我现在有两个驱动,驱动A和驱动B,两驱动要共用数据线,因此硬件上有两个片选,我在A驱动中CAA_Init设置了if(ghCaaCabMutex == NULL)
{
ghCaaCabMutex = CreateMutex( NULL, FALSE, CAA_CAB_MUTEX );
}
并且在线程CAN1_IntrThread中
if(ghCaaCabMutex )
WaitForSingleObject(ghCaaCabMutex, MUTEX_TIMEOUT);//jiayiting20120317
在其后,把该做的事做完了以后,
if(ghCaaCabMutex)
ReleaseMutex(ghCaaCabMutex);//jiayiting20120317
现在的问题是:1、若两个驱动中的线程CAN1_IntrThread和CAN2_IntrThread创建了以后,只用默认的优先级251,那么两个驱动都能使用,也就是说互斥有效,但若在两驱动各自的Init中,设置CAN1_IntrThread和CAN2_IntrThread的优先级,那么CAN1_IntrThread所在驱动A能正确加载,而CAN2_IntrThread所在的驱动B不能加载,系统起不来。我已在注册表中将两个驱动的加载顺序分别放在了"Order"=dword:2 和"Order"=dword:1。请问这是为什么?
[解决办法]
问题已解决,软件没问题,是硬件FLASH或RAM坏了···