#define ISR_TYPE_2 1\r
\r
/* ----------------------------[macro]---------------------------------------*/\r
-#define ISR_DECLARE_ISR2( _name, _entry, _unique, _vector, _priority, _app ) \\r
- const OsIsrConstType _entry ## _unique = { \\r
- .vector = _vector, \\r
- .type = ISR_TYPE_2, \\r
- .priority = _priority, \\r
- .entry = _entry, \\r
- .name = _name, \\r
- .resourceMask = 0, \\r
- .timingProtPtr = NULL, \\r
- .appOwner = _app, \\r
- }\r
+#ifdef CFG_DRIVERS_USE_CONFIG_ISRS\r
+\r
+#define ISR_INSTALL_ISR2( _name, _entry, _vector, _priority, _app )\r
+\r
+#else /* CFG_DRIVERS_USE_CONFIG_ISRS */\r
\r
#define _ISR_INSTALL_ISR2( _name, _entry, _unique, _vector, _priority, _app ) \\r
do { \\r
#define ISR_INSTALL_ISR2( _name, _entry, _vector, _priority, _app ) \\r
_ISR_INSTALL_ISR2( _name, _entry, __LINE__, _vector, _priority, _app )\r
\r
+#endif /* CFG_DRIVERS_USE_CONFIG_ISRS */\r
\r
/* ----------------------------[typedef]-------------------------------------*/\r
\r
}\r
\r
void Os_CfgValidate(void ) {\r
+#if (COUNTER_CNT!=0)\r
OS_VALIDATE(OS_COUNTER_CNT,ARRAY_SIZE(counter_list));\r
+#endif\r
#if (RESOURCE_CNT!=0)\r
OS_VALIDATE(OS_RESOURCE_CNT,ARRAY_SIZE(resource_list));\r
#endif\r
/*-----------------------------------------------------------------*/\r
\r
OsCounterType *Os_CfgGetCounter(CounterType count_id) {\r
+#if OS_COUNTER_CNT!=0\r
return &counter_list[count_id];\r
+#else\r
+ return NULL;\r
+#endif\r
}\r
\r
/*-----------------------------------------------------------------*/\r
}\r
\r
StatusType Os_CfgGetAlarmBase(AlarmType alarm_id, AlarmBaseRefType info) {\r
-\r
+#if (OS_ALARM_CNT!=0)\r
StatusType rv = E_OK;\r
\r
if( alarm_id >= OS_ALARM_CNT ) {\r
rv = E_OS_ID;\r
} else {\r
-#if (OS_ALARM_CNT!=0)\r
*info = alarm_list[alarm_id].counter->alarm_base;\r
-#endif\r
}\r
return rv;\r
+#else\r
+ return E_OS_ID;\r
+#endif\r
}\r
\r
\r
\r
#define GEN_APPLICATION_HEAD const OsAppConstType Os_AppConst[OS_APPLICATION_CNT]\r
\r
-#define GEN_APPLICATION( _id,_name, _trusted, _core, _startuphook,_shutdownhook, _errorhook, \\r
+#define GEN_APPLICATION( _id, _name, _trusted, _core, _startuphook, _shutdownhook, _errorhook, \\r
_restart_task ) \\r
{ \\r
.appId = _id, \\r
#define GEN_ISR2( _name, _vector, _priority, _entry, _appOwner, _resourceMask ) \\r
{ \\r
.vector = _vector, \\r
- .type = ISR_TYPE_1, \\r
+ .type = ISR_TYPE_2, \\r
.priority = _priority, \\r
.entry = _entry, \\r
.name = _name, \\r
#include "Modules.h"\r
#include <string.h>\r
#include <Os.h>\r
+#include "isr.h"\r
#include "EcuM_Internals.h"\r
#include "EcuM_Cbk.h"\r
#include "Mcu.h"\r
Os_ArchInit();
- /* Get the numbers defined in the editor */
- Os_Sys.isrCnt = OS_ISR_CNT;
-
// Assign pcb list and init ready queue
Os_Sys.pcb_list = Os_TaskVarList;
TAILQ_INIT(& Os_Sys.ready_head);
/* Check so that the ISR2 have called ReleaseResource() for each GetResource() */
/** @req OS369 */
+ /* Removed because of null pointer.
+ * TODO: ISR2 can't use Resources yet
if( Os_TaskOccupiesResources(taskPtr) ) {
Os_ResourceFreeAll(taskPtr);
ERRORHOOK(E_OS_RESOURCE);
}
+ */
Os_IsrVarList[isrId].state = ST_ISR_NOT_RUNNING;