--- /dev/null
+/*\r
+* Configuration of module: Os (Tasks.c)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): TMS570\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 2.0.34\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+* on Tue Jul 05 15:02:10 CEST 2011\r
+*/\r
+\r
+#include "Os.h"\r
+#include "EcuM.h"\r
+#include "Com.h"\r
+#include "CanIf.h"\r
+#include "Dio.h"\r
+\r
+// #define USE_LDEBUG_PRINTF // Uncomment this to turn debug statements on.\r
+#include "debug.h"\r
+\r
+// Tasks\r
+void OsIdle( void ) {\r
+ while(1);\r
+}\r
+\r
+void StartupTask( void ) {\r
+\r
+ EcuM_StartupTwo();\r
+\r
+ CanIf_InitController(CANIF_Channel_1, CANIF_Channel_1_CONFIG_0);\r
+ CanIf_SetControllerMode(CANIF_Channel_1, CANIF_CS_STARTED);\r
+ CanIf_InitController(CANIF_Channel_2, CANIF_Channel_2_CONFIG_0);\r
+ CanIf_SetControllerMode(CANIF_Channel_2, CANIF_CS_STARTED);\r
+ //Com_IpduGroupStart(CanDbImportedPdus, 1);\r
+ Com_IpduGroupStart(ComPduGroup, 0);\r
+\r
+ SetEvent(TASK_ID_StepTask, EVENT_MASK_StepEvent);\r
+\r
+ TerminateTask();\r
+}\r
+\r
+void MainTask( void ) {\r
+ Com_MainFunctionTx(); // Com_MainFunctionRx();\r
+ Com_MainFunctionRx(); // Com_MainFunctionTx();\r
+ TerminateTask();\r
+}\r
+\r
+// Task that toggles the LED\r
+Dio_LevelType level = 1;\r
+void BlinkerTask( void ) {\r
+ level = !level;\r
+ Dio_WriteChannel(DIO_CHANNEL_NAME_LED_CHANNEL, level);\r
+ TerminateTask();\r
+}\r
+\r
+// Hooks\r
+#define ERROR_LOG_SIZE 20\r
+\r
+struct LogBad_s {\r
+ uint32_t param1;\r
+ uint32_t param2;\r
+ uint32_t param3;\r
+ TaskType taskId;\r
+ OsServiceIdType serviceId;\r
+ StatusType error;\r
+};\r
+\r
+void ErrorHook ( StatusType Error ) {\r
+\r
+ TaskType task;\r
+ static struct LogBad_s LogBad[ERROR_LOG_SIZE];\r
+ static uint8_t ErrorCount = 0;\r
+ GetTaskID(&task);\r
+ OsServiceIdType service = OSErrorGetServiceId();\r
+ \r
+ LDEBUG_PRINTF("## ErrorHook err=%d\n",Error);\r
+\r
+ /* Log the errors in a buffer for later review */\r
+ LogBad[ErrorCount].param1 = os_error.param1;\r
+ LogBad[ErrorCount].param2 = os_error.param2;\r
+ LogBad[ErrorCount].param3 = os_error.param3;\r
+ LogBad[ErrorCount].serviceId = service;\r
+ LogBad[ErrorCount].taskId = task;\r
+ LogBad[ErrorCount].error = Error;\r
+\r
+ ErrorCount++;\r
+\r
+ // Stall if buffer is full.\r
+ while(ErrorCount >= ERROR_LOG_SIZE);\r
+\r
+}\r
+\r
+void PostTaskHook ( void ) {\r
+ TaskType task;\r
+ GetTaskID(&task);\r
+ LDEBUG_PRINTF("## PreTaskHook, taskid=%d\n",task);\r
+}\r
+\r
+void PreTaskHook ( void ) {\r
+ TaskType task;\r
+ GetTaskID(&task);\r
+ LDEBUG_PRINTF("## PreTaskHook, taskid=%d\n",task);\r
+}\r
+\r
+void ShutdownHook ( StatusType Error ) {\r
+ LDEBUG_PRINTF("## ShutdownHook\n");\r
+ while(1);\r
+}\r
+\r
+void StartupHook ( void ) {\r
+ LDEBUG_PRINTF("## StartupHook\n");\r
+}\r