#define Dem_ReportErrorStatus(...)\r
#endif\r
\r
+static sint8 IfRegId = 0;\r
+\r
/* Macro for waiting until busy flag is 0 */\r
#define DCAN_WAIT_UNTIL_NOT_BUSY(ControllerId, IfRegId) \\r
{ \\r
static CanIf_ControllerModeType ControllerMode[CAN_ARC_CTRL_CONFIG_CNT];\r
\r
/* Used to switch between IF1 and IF2 of DCAN */\r
-static uint8 IfRegId = 0;\r
\r
/* Used to order Data Bytes according to hardware registers in DCAN */\r
static const uint8 ElementIndex[] = {3, 2, 1, 0, 7, 6, 5, 4};\r
uint8 MsgNr;\r
uint32 ErrCounter;\r
uint32 Eob;\r
+ imask_t state;\r
\r
/* DET Error Check */\r
#if(CAN_DEV_ERROR_DETECT == STD_ON)\r
}\r
#endif \r
\r
- imask_t i_state = McuE_EnterCriticalSection();\r
+ Irq_Save(state);\r
\r
// TODO This should be used instead of other variables in the Can_Lcfg file.\r
CurConfig = Config;\r
ModuleState = CAN_READY;\r
#endif\r
\r
- McuE_ExitCriticalSection(i_state);\r
+ Irq_Restore(state);\r
\r
}\r
\r
+// Unitialize the module\r
+void Can_DeInit()\r
+{\r
+\r
+ return;\r
+}\r
+\r
\r
\r
void Can_InitController(uint8 Controller, const Can_ControllerConfigType* Config)\r
{\r
uint8 MsgNr;\r
uint32 ErrCounter;\r
+ imask_t state;\r
\r
#if(CAN_DEV_ERROR_DETECT == STD_ON)\r
if(Config == NULL)\r
}\r
#endif \r
\r
- imask_t i_state = McuE_EnterCriticalSection();\r
+ Irq_Save(state);\r
\r
ErrCounter = CAN_TIMEOUT_DURATION;\r
\r
/* Clear CCE Bit */\r
CanRegs[Controller]->CTL &= ~0x00000040;\r
\r
- McuE_ExitCriticalSection(i_state);\r
+ Irq_Restore(state);\r
}\r
\r
\r
Can_PduType *CurPduArrayPtr;\r
uint8 *CurCancelRqstPtr;\r
uint8 *CurTxRqstPtr;\r
+ imask_t state;\r
\r
CurSduPtr = PduInfo->sdu;\r
\r
DCAN_WAIT_UNTIL_NOT_BUSY(ControllerId, IfRegId);\r
\r
// We cannot allow an interrupt or other task to play with the COM, MC and ARB registers here.\r
- imask_t i_state = McuE_EnterCriticalSection();\r
+ Irq_Save(state);\r
\r
\r
/* Set NewDat, TxIE (dep on ControllerConfig), TxRqst, EoB and DLC */\r
| (0x000F & PduInfo->length) // Set DLC\r
| (CanControllerConfigData[ControllerId].CanTxProcessing << 1); // Tx confirmation interrupt enabled\r
\r
-\r
/* Set ArbitrationRegister */\r
CanRegs[ControllerId]->IFx[IfRegId].ARB = ArbRegValue;\r
\r
+\r
/* Set Databytes */\r
for(DataByteIndex = 0; DataByteIndex < PduInfo->length; DataByteIndex++)\r
{\r
\r
IfRegId ^= 1;\r
\r
- McuE_ExitCriticalSection(i_state);\r
+ Irq_Restore(state);\r
return CAN_OK;\r
}\r
\r