27 #ifndef __EXECUTION_SYSTEM__
28 #define __EXECUTION_SYSTEM__
34 #define TIME_us_PER_MIN (60000000u)
35 #define TIME_uS_PER_HR (3600000000u)
36 #define TIME_uS_PER_SEC (1000000u)
38 #define TIME_SEC_PER_MIN (60u)
39 #define TIME_MIN_PER_HR (60u)
43 #define EXP_SETUP (0u)
45 #define EXP_SYSTICK (2u)
46 #define EXP_PLATFORM (3u)
47 #define EXP_HANDLER (4u)
76 #define _DeclareExeSys executionSystemClass exeSystem(uSEC_PER_CLOCK);
77 #define _ExeSys_ exeSystem.getExeDataPtr()->
79 #define _DeclareExeSys struct executionSystemStruct exeSystem;
80 #define _ExeSys_ exeSystem.
83 #define __ExeSysAPIFuncsTemplate \
87 return _ExeSys_ uSecTicks;\
91 return _ExeSys_ hourTicks;\
93 UI_32 getuSecPerSysTick()\
95 return _ExeSys_ uSecPerSysTick;\
97 #define ExeSysAPIFuncsTemplate __ExeSysAPIFuncsTemplate
161 #endif // !__cplusplus
172 class computeModuleClass;
174 class linkedIODeviceClass
177 IODeviceClass* devPtr =
nullptr;
178 linkedIODeviceClass* nextPtr =
nullptr;
181 IODeviceClass* devPtrIn,
182 linkedIODeviceClass* nextPtrIn
184 IODeviceClass* getDevPtr();
185 linkedIODeviceClass* getNextIOClassPtr();
188 class linkedEntryPointClass
191 computeModuleClass* modulePtr =
nullptr;
192 linkedEntryPointClass* nextPtr =
nullptr;
194 linkedEntryPointClass(
195 computeModuleClass* modulePtrIn,
196 linkedEntryPointClass* nextPtrIn
198 computeModuleClass* getComputeModule();
199 linkedEntryPointClass* getNextEPClassPtr();
202 class executionSystemClass
206 linkedEntryPointClass* setupListHead =
nullptr;
207 linkedEntryPointClass* loopListHead =
nullptr;
208 linkedEntryPointClass* sysTickListHead =
nullptr;
209 linkedEntryPointClass* exceptionListHead =
nullptr;
213 executionSystemClass(
221 void LinkTheListsHead(
222 linkedEntryPointClass* setupListHeadIn,
223 linkedEntryPointClass* loopListHeadIn,
224 linkedEntryPointClass* sysTickListHeadIn,
225 linkedEntryPointClass* exceptionListHeadIn
232 #endif // !__cplusplus
233 #endif // ! __EXECUTION_SYSTEM__