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

📄 cardgame.oil

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

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


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

   TASK CloseOS {
           TYPE = BASIC;
           SCHEDULE = FULL;
           PRIORITY = 15;
           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 InitOS {
           /*@****************************************************************/
           /* Must be highest priority in the system.                        */
           /*@****************************************************************/

           TYPE = BASIC;
           SCHEDULE = FULL;
           PRIORITY = 16;
           ACTIVATION = 1;
           AUTOSTART = TRUE;
           STACKSIZE = 128;
           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 = 14;
           ACTIVATION = 1;
           AUTOSTART = TRUE;
           STACKSIZE = 128;
           SCHEDULE_CALL = FALSE;
           EVENT = { BUFFER_CHANGED, DISPLAY_READY };
   };

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

   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 DealerTurnAlarm {
           COUNTER = SYSTEM_COUNTER;
           TASK = DealerTurn;
           ACTION = ACTIVATETASK;
   };

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

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

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


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

   EVENT ABORT_SHUFFLE {
           MASK = AUTO;
   };

   EVENT BUFFER_CHANGED {
           MASK = AUTO;
   };

   EVENT DISPLAY_READY {
           MASK = AUTO;
   };

   EVENT KEYPRESS {
           MASK = AUTO;
   };

   EVENT SHUFFLED {
           MASK = AUTO;
   };


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

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

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


   /**************************************************************************/
   /*             Counters                                                   */
   /**************************************************************************/

   COUNTER SHUFFLE_COUNTER {
           /*@****************************************************************/
           /* Shuffling Counter                                              */
           /*@****************************************************************/

           MAXALLOWEDVALUE = 9;
           TICKSPERBASE = 1;
           MINCYCLE = 3;
   };

   COUNTER SYSTEM_COUNTER {
           MAXALLOWEDVALUE = 65535;
           TICKSPERBASE = 1000000;
           MINCYCLE = 1;
   };


   /**************************************************************************/
   /*             ISRs                                                       */
   /**************************************************************************/

   ISR IOReadKeypadISR {
           CATEGORY = 2;
   };

   ISR IOShuffleSwitchISR {
           CATEGORY = 3;
   };


   /**************************************************************************/
   /*             Application Modes                                          */
   /**************************************************************************/

   APPMODE HEAD_TO_HEAD {
           VALUE = AUTO;
   };

   APPMODE SINGLE_PLAYER {
           VALUE = AUTO;
   };

   APPMODE TEST {
           VALUE = AUTO;
   };


   /**************************************************************************/
   /*             Messages                                                   */
   /**************************************************************************/

   MESSAGE DisplayMessage {
           TYPE = INTERNAL;
           LENGTH = 80;
           ALIGNMENT = 1;
           USAGE = SEND_RECEIVE;
           QUEUED = FALSE;
           TX_NOTIFICATION = NONE;
           RX_NOTIFICATION = ON_SUCCESS;
           TRANSMISSION = DIRECT;
           ACCESSNAMES = { displayMirrorTemp, displayMirror };
           RX_SUCCESS_TASK = OutputDisplayBuffer;
           RX_SUCCESS_EVENT = BUFFER_CHANGED;
   };


   /**************************************************************************/
   /*             Access Names                                               */
   /**************************************************************************/

   ACCESSNAME displayMirror {
           TYPE = WITHOUTCOPY;
           DATATYPE = "DISPLAY_MESSAGE_TYPE";
           DATATYPE_SHAPE = SCALAR;
           ARRAY_SIZE = 0;
   };

   ACCESSNAME displayMirrorTemp {
           TYPE = WITHCOPY;
           DATATYPE = "DISPLAY_MESSAGE_TYPE";
           DATATYPE_SHAPE = SCALAR;
           ARRAY_SIZE = 0;
   };


   /**************************************************************************/
   /*             O/S                                                        */
   /**************************************************************************/

   OS OSEKWorks_os {
           CC = AUTO;
           STATUS = EXTENDED;
           SCHEDULE = AUTO;
           SYSTEMSTACKSIZE = 1024;
           StartupHook = TRUE;
           ErrorHook = TRUE;
           ShutdownHook = TRUE;
           PreTaskHook = TRUE;
           PostTaskHook = TRUE;
   };

   COM OSEKWorks_com {
           CONFORMANCE = CCC1;
           MESSAGE_INIT = TRUE;
           NETWORK_QUEUE_SIZE = 8;
           USER_INCLUDE_FILE = "dispdrv.h";
   };

};
/*#***************************************************************************/
/* CloseOS:253; DealCards:42; DealerTurn:65; InitOS:16; OutputDisplay:4;     */
/* OutputDisplayBuffer:267; ProcessKeyPress:3; ShuffleCards:7;               */
/* ShufflingComplete:185; background:1; DealerTurnAlarm:66;                  */
/* DisplayWaitAlarm:276; ShuffleAlarm:5; ShufflingCompleteAlarm:10;          */
/* ABORT_SHUFFLE:38; BUFFER_CHANGED:268; DISPLAY_READY:269; KEYPRESS:39;     */
/* SHUFFLED:37; CARDDECK:158; RES_SCHEDULER:0; DisplayMessage:248;           */
/* displayMirror:249; displayMirrorTemp:294; 1; 100 0; 300 0; 100 64; 300    */
/* 64; 100 128; 300 128; 330 48; 100 192; 164 176; 300 192; 32 0; 124 48;    */
/* 124 48; 164 176; 32 0; 83 48; 32 0; 83 48; 124 48; 164 176; 83 48; 124    */
/* 48; 164 176; 32 0; 83 48; 124 48; 164 176; 32 0; 32 0; 59 48; 59 48; 83   */
/* 48; 124 48; 164 176; 83 48; 124 48; 164 176; 32 0; 32 0; 32 0; 93 24; 92  */
/* 24; 32 0; 59 48; 59 48; 59 48; 59 48; 59 48; 59 48; 93 24; 92 24; 59 48;  */
/* 59 48; 93 24; 92 24; 83 48; 124 48; 164 176; 59 48; 59 48; 93 24; 92 24;  */
/* 83 48; 124 48; 164 176; 32 0; 32 0; 60 48; 59 48; 59 48; 93 24; 92 24;    */
/* 60 48; 83 48; 124 48; 164 176; 59 48; 59 48; 93 24; 92 24; 60 48; 83 48;  */
/* 124 48; 164 176; 59 48; 59 48; 93 24; 92 24; 60 48; 83 48; 124 48; 164    */
/* 176; 32 0; 32 0; 32 0; 32 0; 82 48; 88 48; 59 48; 59 48; 93 24; 92 24;    */
/* 60 48; 83 48; 124 48; 164 176; 82 48; 88 48; 59 48; 59 48; 93 24; 92 24;  */
/* 60 48; 83 48; 124 48; 164 176; 59 48; 59 48; 93 24; 92 24; 60 48; 83 48;  */
/* 124 48; 164 176; 93 24; 92 24; 93 24; 92 24; 93 24; 92 24; 59 48; 59 48;  */
/* 93 24; 92 24; 60 48; 83 48; 124 48; 164 176; 59 48; 59 48; 93 24; 92 24;  */
/* 60 48; 83 48; 124 48; 164 176; 59 48; 59 48; 59 48; 59 48; 59 48; 59 48;  */
/* 93 24; 92 24; 60 48; 83 48; 124 48; 164 176; 32 0; 63 48; 59 48; 59 48;   */
/* 59 48; 59 48; 59 48; 59 48; 93 24; 92 24; 63 48; 60 48; 83 48; 124 48;    */
/* 164 176; 93 24; 92 24; 59 48; 59 48; 59 48; 93 24; 92 24; 63 48; 60 48;   */
/* 83 48; 124 48; 164 176; 300 192; 138 48; 59 48; 59 48; 59 48; 93 24; 92   */
/* 24; 63 48; 60 48; 164 176; 195 48; 59 48; 59 48; 59 48; 93 24; 92 24; 63  */
/* 48; 60 48; 164 176; 195 48; 59 48; 59 48; 59 48; 93 24; 92 24; 63 48; 60  */
/* 48; 164 176; 195 48; 59 48; 59 48; 59 48; 93 24; 92 24; 63 48; 60 48;     */
/* 164 176; 195 48; 195 48; 59 48; 59 48; 59 48; 93 24; 92 24; 63 48; 60     */
/* 48; 164 176; 195 48; 59 48; 59 48; 59 48; 93 24; 92 24; 63 48; 59 48; 59  */
/* 48; 59 48; 93 24; 92 24; 63 48; 60 48; 164 176; 195 48; 100 64; 32 0;     */
/* 135 112; 135 112; 105 48; 32 0; 59 48; 59 48; 59 48; 93 24; 92 24; 63     */
/* 48; 60 48; 164 176; 195 48; 135 112; 73 48; 135 112; 73 48; 32 0; 32 0;   */
/* 32 0; 81 48; 73 48; 81 48; 73 48; 81 48; 73 48; 32 0; 81 48; 81 48; 81    */
/* 48; 59 48; 59 48; 59 48; 81 48; 78 48; 93 24; 92 24; 63 48; 60 48; 81     */
/* 48; 164 176; 195 48; 81 48; 73 48; 32 0; 81 48; 75 48; 73 48; 81 48; 106  */
/* 48; 73 48; 81 48; 106 48; 73 48; 81 48; 106 48; 73 48; 59 48; 59 48; 59   */
/* 48; 81 48; 78 48; 93 24; 92 24; 63 48; 60 48; 81 48; 164 176; 195 48; 81  */
/* 48; 92 48; 73 48; 81 48; 78 48;                                           */
/*#***************************************************************************/

⌨️ 快捷键说明

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