📄 initkernel.cpp
字号:
#ifndef INIT_KERNEL#define INIT_KERNEL// Creates an interrupt handler to simulate context switchesHandler *createCShandler(void) { Handler* hdl = new Handler; hdl->name = NULL; hdl->handlerID = rtsys->nbrOfHandlers + 1; hdl->codeFcn = rtsys->contextSwitchCode; hdl->codeFcnMATLAB = NULL; hdl->execTime = 0.0; hdl->priority = -100.0; hdl->segment = 0; hdl->display = true; hdl->data = NULL; hdl->dataMATLAB = NULL; rtsys->nbrOfSchedHandlers++; rtsys->handlerList->appendNode(new HandlerNode(hdl)); rtsys->nbrOfHandlers++; return hdl;}void ttInitKernel(int nbrOfInputs, int nbrOfOutputs, int dispatch) { if (nbrOfInputs < 0 || nbrOfOutputs < 0) { MEX_ERROR("ttInitKernel: invalid number of inputs or outputs!"); return; } rtsys->nbrOfInputs = nbrOfInputs; rtsys->nbrOfOutputs = nbrOfOutputs; switch (dispatch) { case FP: rtsys->prioFcn = rtsys->prioFP; break; case RM: rtsys->prioFcn = rtsys->prioRM; break; case EDF: rtsys->prioFcn = rtsys->prioEDF; break; case DM: rtsys->prioFcn = rtsys->prioDM; break; default: MEX_ERROR("ttInitKernel: Invalid priority function!"); return; } rtsys->readyQ = new List("ReadyQ", rtsys->readyQCmpFcn); rtsys->handlerQ = new List("HandlerQ", rtsys->handlerQCmpFcn); rtsys->timeQ = new List("TimeQ", rtsys->timeQCmpFcn); rtsys->timerQ = new List("TimerQ", rtsys->timerQCmpFcn); rtsys->taskList = new List("TaskList", NULL); rtsys->handlerList = new List("HandlerList", NULL); rtsys->monitorList = new List("MonitorList", NULL); rtsys->eventList = new List("EventList", NULL); rtsys->triggerList = new List("TriggerList", NULL); rtsys->mailboxList = new List("MailboxList", NULL); rtsys->networkList = new List("NetworkList", NULL); rtsys->simContextSwitch = false; rtsys->savedContext = false; rtsys->contextSwitchTime = 0.0; rtsys->kernelHandler = NULL;}void ttInitKernel(int nbrOfInputs, int nbrOfOutputs, int dispatch, double contextSwitchOH) { ttInitKernel(nbrOfInputs, nbrOfOutputs, dispatch); if (contextSwitchOH < 0.0) { MEX_ERROR("Invalid context switch overhead!"); return; } if (contextSwitchOH > EPS) { rtsys->simContextSwitch = true; rtsys->savedContext = true; rtsys->contextSwitchTime = contextSwitchOH / 2.0; rtsys->kernelHandler = createCShandler(); }}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -