29 linkedIODeviceClass::linkedIODeviceClass(
30 IODeviceClass* devPtrIn,
31 linkedIODeviceClass* nextPtrIn
37 IODeviceClass* linkedIODeviceClass::getDevPtr()
41 linkedIODeviceClass* linkedIODeviceClass::getNextIOClassPtr()
47 linkedEntryPointClass::linkedEntryPointClass(
48 computeModuleClass* modulePtrIn,
49 linkedEntryPointClass* nextPtrIn
52 modulePtr = modulePtrIn;
55 computeModuleClass* linkedEntryPointClass::getComputeModule()
59 linkedEntryPointClass* linkedEntryPointClass::getNextEPClassPtr()
65 executionSystemClass::executionSystemClass(
74 void executionSystemClass::LinkTheListsHead(
75 linkedEntryPointClass* setupListHeadIn,
76 linkedEntryPointClass* loopListHeadIn,
77 linkedEntryPointClass* sysTickListHeadIn,
78 linkedEntryPointClass* exceptionListHeadIn
81 setupListHead = setupListHeadIn;
82 loopListHead = loopListHeadIn;
83 sysTickListHead = sysTickListHeadIn;
84 exceptionListHead = exceptionListHeadIn;
91 #ifndef __NOEXCEPTIONS
96 #ifndef __NOEXCEPTIONS
107 #ifndef __NOEXCEPTIONS
112 #ifndef __NOEXCEPTIONS
143 data.uSecTicks += data.uSecPerSysTick;
156 if(exceptionListHead!=
nullptr)
158 linkedEntryPointClass* currentExeNode;
159 switch(EXE_AREA_INDEX)
162 currentExeNode = setupListHead;
165 currentExeNode = loopListHead;
168 currentExeNode = sysTickListHead;
174 if(currentExeNode !=
nullptr){
175 if(currentExeNode->getComputeModule() !=
nullptr)
181 #ifndef __NOEXCEPTIONS
185 if(currentExeNode->getComputeModule()->getModuleDataPtr()->exceptionFlags == 0u)
187 switch(EXE_AREA_INDEX)
190 retVal = currentExeNode->getComputeModule()->mod_setup();
193 retVal = currentExeNode->getComputeModule()->mod_loop();
196 currentExeNode->getComputeModule()->mod_systick();
205 #ifndef __NOEXCEPTIONS
212 currentExeNode->getComputeModule()->getModuleDataPtr()->exceptionFlags |= (0x00000001 << EXE_AREA_INDEX);
213 #ifndef __NOEXCEPTIONS
216 if(currentExeNode->getNextEPClassPtr() !=
nullptr)
217 currentExeNode = currentExeNode->getNextEPClassPtr();
221 }
while(currentExeNode->getComputeModule() !=
nullptr);
227 if(exceptionListHead!=
nullptr)
229 linkedEntryPointClass* currentExeNode = exceptionListHead;
230 if(currentExeNode!=
nullptr)
236 #ifndef __NOEXCEPTIONS
240 if(currentExeNode->getComputeModule()->getModuleDataPtr()->exceptionFlags != 0u)
241 retVal = currentExeNode->getComputeModule()->mod_excphandler();
246 #ifndef __NOEXCEPTIONS
253 currentExeNode->getComputeModule()->getModuleDataPtr()->exceptionFlags |= (0x00000001 <<
EXP_HANDLER);
254 #ifndef __NOEXCEPTIONS
258 if(currentExeNode->getNextEPClassPtr() !=
nullptr)
259 currentExeNode = currentExeNode->getNextEPClassPtr();
263 }
while(currentExeNode->getComputeModule() !=
nullptr);