⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo1.ort

📁 基于16位单片机的符合osek标准的操作系统
💻 ORT
字号:
VERSION
{
      KOIL = "2.1";
      OSSEMANTICS = "ORTI", "2.1";
};
IMPLEMENTATION ProOSEK_4_0 {
  OS {
      ENUM "unsigned char" [  "Cyclic"=2 , "InitTask"=1 , "Loop"=0 , "NoRunningTask"=3 ] 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 Cyclic {
      vs_REALPRIORITY = "2";
      vs_ID = "2";
      STATE = "OSEKOStaskStatus[2]&0x3";
      STACK = "stack_1";
      CURRENTACTIVATIONS = "(OSEKOStaskStatus[2]&0x3)!=0";
      vs_SHAREDSTACK  = "FALSE";
      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 AlarmActCyclic {
      ALARMTIME=" 
(OSEKOSca_kette[0]!=0)?(((OSEKOSca_kette[1]==0)?(OSEKOSa_startw[OSEKOSca_kette[1
]]):(OSEKOSa_startw[OSEKOSca_kette[1]]))):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]!=4";
      PRIORITY  = "SCHEDULER";
};
RESOURCE Res_CounterVar {
      STATE = "OSEKOSresTaskPrio[0]!=4";
      PRIORITY  = "TASK: 2";
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -