]> rtime.felk.cvut.cz Git - arc.git/commitdiff
Added busoff and error polling functions
authorjcar <devnull@localhost>
Thu, 21 Jun 2012 14:07:02 +0000 (16:07 +0200)
committerjcar <devnull@localhost>
Thu, 21 Jun 2012 14:07:02 +0000 (16:07 +0200)
arch/ppc/mpc55xx/drivers/Can.c
include/Can.h

index 0ccdd48aad870b165bd860fab1125843cf629393..f4f5f443da677b8e0d1d1083a1a9c0995eee6c47 100644 (file)
@@ -1446,7 +1446,31 @@ void Can_MainFunction_BusOff(void)
     /** !req 3.1.5/CAN183 */\r
     /** !req 3.1.5/CAN184 */\r
     /* Bus-off polling events */\r
+    Can_UnitType *uPtr;\r
+\r
+    for(int i=0;i<CAN_ARC_CTRL_CONFIG_CNT; i++ ) {\r
+        uPtr = &CanUnit[i];\r
+        if( (uPtr->cfgCtrlPtr->Can_Arc_Flags & CAN_CTRL_BUSOFF_PROCESSING_INTERRUPT) == 0 ) {\r
+               Can_BusOff(uPtr->controllerId);\r
+        }\r
+    }\r
+}\r
+\r
+void Can_MainFunction_Error(void)\r
+{\r
+    /** !req 3.1.5/CAN227 */\r
+    /** !req 3.1.5/CAN109 */\r
+    /** !req 3.1.5/CAN183 */\r
+    /** !req 3.1.5/CAN184 */\r
+    /* Error polling events */\r
+    Can_UnitType *uPtr;\r
 \r
+    for(int i=0;i<CAN_ARC_CTRL_CONFIG_CNT; i++ ) {\r
+        uPtr = &CanUnit[i];\r
+        if( (uPtr->cfgCtrlPtr->Can_Arc_Flags & CAN_CTRL_ERROR_PROCESSING_INTERRUPT) == 0 ) {\r
+               Can_Err(uPtr->controllerId);\r
+        }\r
+    }\r
 }\r
 \r
 void Can_MainFunction_Wakeup(void)\r
index 5b453a3f05542e0bb8fa8610ffa339d4e4374444..97a4a0c5acda287040abc06df73bcd9eb8cfdf7a 100644 (file)
@@ -326,6 +326,7 @@ void Can_Cbk_CheckWakeup( uint8 controller );
 void Can_MainFunction_Write( void );\r
 void Can_MainFunction_Read( void );\r
 void Can_MainFunction_BusOff( void );\r
+void Can_MainFunction_Error( void );\r
 void Can_MainFunction_Wakeup( void );\r
 \r
 void Can_Arc_GetStatistics( uint8 controller, Can_Arc_StatisticsType * stat);\r