📄 demo.ort
字号:
VERSION
{
KOIL = "2.1";
OSSEMANTICS = "ORTI", "2.1";
};
IMPLEMENTATION ProOSEK_4_0 {
OS {
ENUM "unsigned char" [ "KLineTimerTask"=5 , "CreatRespMesKWP2000Task"=4 , "KlineCommunicationTask"=3 , "Cyclic"=2 , "InitTask"=1 , "Loop"=0 , "NoRunningTask"=6 ] RUNNINGTASK ,"Running Task";
CTYPE RUNNINGTASKPRIORITY, "Current priority of the running task";
ENUM [ "OSDEFAULTAPPMODE"=0] CURRENTAPPMODE, "Current application mode";
STRING vs_STATUS, "Status";
STRING vs_SCHEDULE, "Schedule";
STRING vs_CC, "Conformance Class";
};
STACK {
CTYPE SIZE, "Stacksize";
CTYPE "unsigned char *" BASEADDRESS, "Stack Baseaddress";
STRING STACKDIRECTION, "Stackdirection" ;
CTYPE FILLPATTERN, "Fill pattern";
};
TASK {
STRING vs_REALPRIORITY , "Real Priority";
STRING vs_ID, "ID";
ENUM [ "SUSPENDED"=0,"READY"=1,"RUNNING"=2,"WAITING"=3 ] STATE, "Taskstate";
STRING STACK, "Stack";
CTYPE CURRENTACTIVATIONS, "Current task activations";
STRING vs_MAXACTIVATIONS, "Maximum number of activations";
STRING vs_SHAREDSTACK, "Stack sharing";
STRING vs_ASSIGNEDPRIO, "Assigned priority";
};
vs_COUNTER {
CTYPE MAXVALUE, "MAXALLOWED VALUE";
CTYPE TICKPERBASE, "TICKPERBASE";
CTYPE MINCYCLE, "MINCYCLE";
CTYPE VALUE, "Current Value";
};
ALARM {
CTYPE ALARMTIME , "Alarm time";
CTYPE CYCLETIME , "Cycle time";
ENUM [ "Stopped"=0,"Running"=1 ] STATE, "State";
STRING ACTION, "Assigned action";
STRING COUNTER, "Assigned counter";
STRING vs_TASK, "Assigned task";
STRING vs_EVENT, "Assigned event";
};
RESOURCE {
ENUM "unsigned char" [ "UNLOCKED"=0,"LOCKED"=1 ] STATE, "Resource state";
STRING PRIORITY , "Ceiling priority";
};
MESSAGECONTAINER {
STRING MSGNAME , "Message name";
STRING MSGTYPE , "Message Type ";
CTYPE QUEUESIZE , "Size of the queue";
CTYPE QUEUECOUNT, "Messages in queue";
CTYPE FIRSTELEMENT, "Next message to be received";
};
};
OS Name {
CURRENTAPPMODE = "OSEKOSapplicationMode";
RUNNINGTASK = "OSEKOStidact";
RUNNINGTASKPRIORITY = "OSEKOSrunprio";
vs_STATUS = "EXTENDED";
vs_SCHEDULE = "MIXED";
vs_CC = "BCC2";
};
TASK KLineTimerTask {
vs_REALPRIORITY = "5";
vs_ID = "5";
STATE = "OSEKOStaskStatus[5]&0x3";
STACK = "stack_1";
CURRENTACTIVATIONS = "(OSEKOStaskStatus[5]&0x3)!=0";
vs_SHAREDSTACK = "TRUE";
vs_ASSIGNEDPRIO = "7";
vs_MAXACTIVATIONS = "1";
};
TASK CreatRespMesKWP2000Task {
vs_REALPRIORITY = "4";
vs_ID = "4";
STATE = "OSEKOStaskStatus[4]&0x3";
STACK = "stack_1";
CURRENTACTIVATIONS = "(OSEKOStaskStatus[4]&0x3)!=0";
vs_SHAREDSTACK = "TRUE";
vs_ASSIGNEDPRIO = "6";
vs_MAXACTIVATIONS = "1";
};
TASK KlineCommunicationTask {
vs_REALPRIORITY = "3";
vs_ID = "3";
STATE = "OSEKOStaskStatus[3]&0x3";
STACK = "stack_1";
CURRENTACTIVATIONS = "(OSEKOStaskStatus[3]&0x3)!=0";
vs_SHAREDSTACK = "TRUE";
vs_ASSIGNEDPRIO = "5";
vs_MAXACTIVATIONS = "1";
};
TASK Cyclic {
vs_REALPRIORITY = "2";
vs_ID = "2";
STATE = "OSEKOStaskStatus[2]&0x3";
STACK = "stack_1";
CURRENTACTIVATIONS = "(OSEKOStaskStatus[2]&0x3)!=0";
vs_SHAREDSTACK = "TRUE";
vs_ASSIGNEDPRIO = "4";
vs_MAXACTIVATIONS = "1";
};
TASK InitTask {
vs_REALPRIORITY = "0";
vs_ID = "1";
STATE = "OSEKOStaskStatus[1]&0x3";
STACK = "stack_0";
CURRENTACTIVATIONS = "(OSEKOStaskStatus[1]&0x3)!=0";
vs_SHAREDSTACK = "TRUE";
vs_ASSIGNEDPRIO = "1";
vs_MAXACTIVATIONS = "1";
};
TASK Loop {
vs_REALPRIORITY = "1";
vs_ID = "0";
STATE = "OSEKOStaskStatus[0]&0x3";
STACK = "stack_0";
CURRENTACTIVATIONS = "(OSEKOStaskStatus[0]&0x3)!=0";
vs_SHAREDSTACK = "TRUE";
vs_ASSIGNEDPRIO = "2";
vs_MAXACTIVATIONS = "1";
};
STACK InterruptStack {
BASEADDRESS = "((char*)&OSEKOSstacks.interrupt_stack)";
SIZE = "30";
STACKDIRECTION = "DOWN";
FILLPATTERN = "0";
};
STACK stack_1 {
BASEADDRESS = "((char *)&OSEKOSstacks)+88";
SIZE = "80";
STACKDIRECTION = "DOWN";
FILLPATTERN = "0";
};
STACK stack_0 {
BASEADDRESS = "((char *)&OSEKOSstacks)+0";
SIZE = "88";
STACKDIRECTION = "DOWN";
FILLPATTERN = "0";
};
ALARM AlarmActKLineTimer {
ALARMTIME="
(OSEKOSca_kette[1]!=1)?(((OSEKOSca_kette[2]==1)?(OSEKOSa_startw[OSEKOSca_kette[2
]]):(OSEKOSa_startw[OSEKOSca_kette[2]]+((OSEKOSca_kette[OSEKOSca_kette[2]]==1)?
(OSEKOSa_startw[OSEKOSca_kette[OSEKOSca_kette[2]]]):(OSEKOSa_startw
[OSEKOSca_kette[OSEKOSca_kette[2]]]))))):0
";
CYCLETIME="OSEKOSa_zykw[1]";
ACTION = "ACTIVATETASK KLineTimerTask";
COUNTER = "SysCounter";
STATE = "(OSEKOSca_kette[1]!=1)";
vs_TASK = "KLineTimerTask";
vs_EVENT = "";
};
ALARM AlarmActCyclic {
ALARMTIME="
(OSEKOSca_kette[0]!=0)?(((OSEKOSca_kette[2]==0)?(OSEKOSa_startw[OSEKOSca_kette[2
]]):(OSEKOSa_startw[OSEKOSca_kette[2]]+((OSEKOSca_kette[OSEKOSca_kette[2]]==0)?
(OSEKOSa_startw[OSEKOSca_kette[OSEKOSca_kette[2]]]):(OSEKOSa_startw
[OSEKOSca_kette[OSEKOSca_kette[2]]]))))):0
";
CYCLETIME="OSEKOSa_zykw[0]";
ACTION = "ACTIVATETASK Cyclic";
COUNTER = "SysCounter";
STATE = "(OSEKOSca_kette[0]!=0)";
vs_TASK = "Cyclic";
vs_EVENT = "";
};
vs_COUNTER SysCounter {
MAXVALUE = "1000";
TICKPERBASE = "100";
MINCYCLE = "1";
VALUE = "OSEKOSc_atic[0]";
};
RESOURCE RES_SCHEDULER {
STATE = "OSEKOSresTaskPrio[1]!=7";
PRIORITY = "SCHEDULER";
};
RESOURCE Res_CounterVar {
STATE = "OSEKOSresTaskPrio[0]!=7";
PRIORITY = "TASK: 2";
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -