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

📄 cardgame.oil

📁 《OSEK/VDX汽车电子嵌入式软件编程技术》中光盘的资料
💻 OIL
📖 第 1 页 / 共 3 页
字号:
//
//OIL file: cardgame.oil
//

OIL_VERSION = "2.0";
#include <osekworkscom.oil>
#include <ppcaxiomcme555.oil>


CPU cardgame {
   
   /**************************************************************************/
   /*             Tasks                                                      */
   /**************************************************************************/

   TASK AbortMessage {
           TYPE = BASIC;
           SCHEDULE = FULL;
           PRIORITY = 23;
           ACTIVATION = 1;
           AUTOSTART = FALSE;
           STACKSIZE = 64;
           SCHEDULE_CALL = FALSE;
   };

   TASK CardReceived {
           TYPE = BASIC;
           SCHEDULE = FULL;
           PRIORITY = 8;
           ACTIVATION = 1;
           AUTOSTART = FALSE;
           STACKSIZE = 64;
           SCHEDULE_CALL = FALSE;
           RESOURCE = { CARDDECK };
   };

   TASK ChangeGameMode {
           TYPE = BASIC;
           SCHEDULE = FULL;
           PRIORITY = 7;
           ACTIVATION = 1;
           AUTOSTART = FALSE;
           STACKSIZE = 64;
           SCHEDULE_CALL = FALSE;
   };

   TASK CloseOS {
           TYPE = BASIC;
           SCHEDULE = FULL;
           PRIORITY = 25;
           ACTIVATION = 1;
           AUTOSTART = FALSE;
           STACKSIZE = 64;
           SCHEDULE_CALL = FALSE;
   };

   TASK DealCards {
           TYPE = EXTENDED;
           SCHEDULE = FULL;
           PRIORITY = 10;
           ACTIVATION = 1;
           AUTOSTART = FALSE;
           STACKSIZE = 128;
           SCHEDULE_CALL = FALSE;
           EVENT = { ABORT_SHUFFLE, SHUFFLED };
           RESOURCE = { CARDDECK };
   };

   TASK DealerTurn {
           TYPE = BASIC;
           SCHEDULE = FULL;
           PRIORITY = 6;
           ACTIVATION = 1;
           AUTOSTART = FALSE;
           STACKSIZE = 128;
           SCHEDULE_CALL = FALSE;
   };

   TASK IOSampleKeypad {
           TYPE = BASIC;
           SCHEDULE = FULL;
           PRIORITY = 20;
           ACTIVATION = 1;
           AUTOSTART = FALSE;
           STACKSIZE = 128;
           SCHEDULE_CALL = FALSE;
   };

   TASK IncomingMessage {
           TYPE = BASIC;
           SCHEDULE = FULL;
           PRIORITY = 22;
           ACTIVATION = 1;
           AUTOSTART = FALSE;
           STACKSIZE = 64;
           SCHEDULE_CALL = FALSE;
   };

   TASK InitOS {
           /*@****************************************************************/
           /* Must be highest priority in the system.                        */
           /*@****************************************************************/

           TYPE = BASIC;
           SCHEDULE = FULL;
           PRIORITY = 26;
           ACTIVATION = 1;
           AUTOSTART = TRUE;
           STACKSIZE = 128;
           SCHEDULE_CALL = FALSE;
   };

   TASK LostOpponent {
           TYPE = BASIC;
           SCHEDULE = FULL;
           PRIORITY = 16;
           ACTIVATION = 1;
           AUTOSTART = FALSE;
           STACKSIZE = 64;
           SCHEDULE_CALL = FALSE;
   };

   TASK MonitorNetworkActivity {
           TYPE = BASIC;
           SCHEDULE = FULL;
           PRIORITY = 17;
           ACTIVATION = 1;
           AUTOSTART = FALSE;
           STACKSIZE = 64;
           SCHEDULE_CALL = FALSE;
   };

   TASK OpponentMessageReceived {
           TYPE = BASIC;
           SCHEDULE = FULL;
           PRIORITY = 21;
           ACTIVATION = 1;
           AUTOSTART = FALSE;
           STACKSIZE = 64;
           SCHEDULE_CALL = FALSE;
   };

   TASK OutputDisplay {
           TYPE = BASIC;
           SCHEDULE = NON;
           PRIORITY = 12;
           ACTIVATION = 1;
           AUTOSTART = FALSE;
           STACKSIZE = 128;
           SCHEDULE_CALL = TRUE;
   };

   TASK OutputDisplayBuffer {
           TYPE = EXTENDED;
           SCHEDULE = NON;
           PRIORITY = 24;
           ACTIVATION = 1;
           AUTOSTART = TRUE;
           STACKSIZE = 128;
           SCHEDULE_CALL = FALSE;
           EVENT = { BUFFER_CHANGED, DISPLAY_READY };
           RESOURCE = { RES_SCHEDULER };
   };

   TASK ProcessKeyPress {
           TYPE = EXTENDED;
           SCHEDULE = FULL;
           PRIORITY = 2;
           ACTIVATION = 1;
           AUTOSTART = TRUE;
           STACKSIZE = 192;
           SCHEDULE_CALL = FALSE;
           EVENT = { CARDS_DEALT, KEYPRESS, SHUFFLED, SIM_KEY,
           TRANSMIT_COMPLETE, TRANSMIT_FAILED };
           RESOURCE = { CARDDECK };
   };

   TASK SetDeviceLonely {
           TYPE = BASIC;
           SCHEDULE = FULL;
           PRIORITY = 19;
           ACTIVATION = 1;
           AUTOSTART = FALSE;
           STACKSIZE = 64;
           SCHEDULE_CALL = FALSE;
   };

   TASK SetNetworkFlag {
           TYPE = BASIC;
           SCHEDULE = FULL;
           PRIORITY = 18;
           ACTIVATION = 1;
           AUTOSTART = FALSE;
           STACKSIZE = 64;
           SCHEDULE_CALL = FALSE;
   };

   TASK ShuffleCards {
           TYPE = BASIC;
           SCHEDULE = FULL;
           PRIORITY = 4;
           ACTIVATION = 1;
           AUTOSTART = FALSE;
           STACKSIZE = 128;
           SCHEDULE_CALL = FALSE;
           RESOURCE = { CARDDECK };
   };

   TASK ShufflingComplete {
           TYPE = BASIC;
           SCHEDULE = FULL;
           PRIORITY = 13;
           ACTIVATION = 1;
           AUTOSTART = FALSE;
           STACKSIZE = 128;
           SCHEDULE_CALL = FALSE;
   };

   TASK background {
           TYPE = BASIC;
           SCHEDULE = FULL;
           PRIORITY = 1;
           ACTIVATION = 1;
           AUTOSTART = TRUE;
           STACKSIZE = 64;
           SCHEDULE_CALL = FALSE;
   };


   /**************************************************************************/
   /*             Alarms                                                     */
   /**************************************************************************/

   ALARM CardDumpDelay {
           COUNTER = SYSTEM_COUNTER;
           TASK = ProcessKeyPress;
           ACTION = SETEVENT;
           EVENT = CARDS_DEALT;
   };

   ALARM CardMessageAlarm {
           COUNTER = SYSTEM_COUNTER;
           TASK = ProcessKeyPress;
           ACTION = SETEVENT;
           EVENT = TRANSMIT_FAILED;
   };

   ALARM DealerTurnAlarm {
           COUNTER = SYSTEM_COUNTER;
           TASK = DealerTurn;
           ACTION = ACTIVATETASK;
   };

   ALARM DisplayWaitAlarm {
           COUNTER = SYSTEM_COUNTER;
           TASK = OutputDisplayBuffer;
           ACTION = SETEVENT;
           EVENT = DISPLAY_READY;
   };

   ALARM IncomingMessageAlarm {
           COUNTER = SYSTEM_COUNTER;
           TASK = AbortMessage;
           ACTION = ACTIVATETASK;
   };

   ALARM MonitorNetworkAlarm {
           COUNTER = SYSTEM_COUNTER;
           TASK = MonitorNetworkActivity;
           ACTION = ACTIVATETASK;
   };

   ALARM RemainingCardsMissing {
           COUNTER = SYSTEM_COUNTER;
           TASK = LostOpponent;
           ACTION = ACTIVATETASK;
   };

   ALARM RequestModeAlarm {
           COUNTER = SYSTEM_COUNTER;
           TASK = ChangeGameMode;
           ACTION = ACTIVATETASK;
   };

   ALARM SampleKeypadAlarm {
           COUNTER = SYSTEM_COUNTER;
           TASK = IOSampleKeypad;
           ACTION = ACTIVATETASK;
   };

   ALARM ShuffleAlarm {
           COUNTER = SHUFFLE_COUNTER;
           TASK = ShuffleCards;
           ACTION = ACTIVATETASK;
   };

   ALARM ShufflingCompleteAlarm {
           COUNTER = SYSTEM_COUNTER;
           ACTION = ACTIVATETASK;
           TASK = ShufflingComplete;
   };

   ALARM StatusMessageAlarm {
           COUNTER = SYSTEM_COUNTER;
           TASK = SetDeviceLonely;
           ACTION = ACTIVATETASK;
   };


   /**************************************************************************/
   /*             Events                                                     */
   /**************************************************************************/

   EVENT ABORT_SHUFFLE {
           MASK = AUTO;
   };

   EVENT BUFFER_CHANGED {
           MASK = AUTO;
   };

   EVENT CARDS_DEALT {
           MASK = AUTO;
   };

   EVENT DISPLAY_READY {
           MASK = AUTO;
   };

   EVENT KEYPRESS {
           MASK = AUTO;
   };

   EVENT SHUFFLED {
           MASK = AUTO;
   };

   EVENT SIM_KEY {
           MASK = AUTO;
   };

   EVENT TRANSMIT_COMPLETE {
           MASK = AUTO;
   };

   EVENT TRANSMIT_FAILED {
           MASK = AUTO;
   };


   /**************************************************************************/
   /*             Resources                                                  */
   /**************************************************************************/

   RESOURCE CARDDECK {
           /* No attributes defined */
   };

   RESOURCE RES_SCHEDULER {
           /* No attributes defined */
   };

⌨️ 快捷键说明

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