亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? os_cpu_c.lst

?? uC/OS操作系統在51平臺的移植代碼
?? LST
字號:
C51 COMPILER V6.20c  OS_CPU_C                                                              07/03/2002 08:51:26 PAGE 1   


C51 COMPILER V6.20c, COMPILATION OF MODULE OS_CPU_C
OBJECT MODULE PLACED IN ..\port\OS_CPU_C.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\port\OS_CPU_C.C LARGE ROM(COMPACT) OPTIMIZE(9,SIZE) REGFILE(..\out\EXEc5
                    -1.ORC) BROWSE INCDIR(.) DEBUG OBJECTEXTEND PRINT(..\out\OS_CPU_C.lst) SRC(..\out\OS_CPU_C.SRC) 

stmt level    source

   1          /*
   2          *********************************************************************************************************
   3          *                                               uC/OS-II
   4          *                                         The Real-Time Kernel
   5          *
   6          *                        (c) Copyright 1992-1998, Jean J. Labrosse, Plantation, FL
   7          *                                          All Rights Reserved
   8          *
   9          *
  10          *                                       80x86/80x88 Specific code
  11          *                                          LARGE MEMORY MODEL
  12          *
  13          * File : OS_CPU_C.C
  14          * By   : Jean J. Labrosse
  15          *
  16          *
  17          * Ported date:     MAY 29, 2002
  18          * By:              Junmin Zheng, China, (zhengjunm@263.net)
  19          * Target platform: Keil C51 V6.20
  20          *         
  21          *********************************************************************************************************
  22          */
  23          
  24          #define  OS_CPU_GLOBALS
  25          #include "..\mainfile\includes.h"
  26          #include "..\function\os_kcdef.h"
  27          /*
  28          *********************************************************************************************************
  29          *                                        INITIALIZE A TASK'S STACK
  30          *
  31          * Description: This function is called by either OSTaskCreate() or OSTaskCreateExt() to initialize the
  32          *              stack frame of the task being created.  This function is highly processor specific.
  33          *
  34          * Arguments  : task          is a pointer to the task code
  35          *
  36          *              pdata         is a pointer to a user supplied data area that will be passed to the task
  37          *                            when the task first executes.
  38          *
  39          *              ptos          is a pointer to the top of stack.  It is assumed that 'ptos' points to
  40          *                            a 'free' entry on the task stack.  If OS_STK_GROWTH is set to 1 then 
  41          *                            'ptos' will contain the HIGHEST valid address of the stack.  Similarly, if
  42          *                            OS_STK_GROWTH is set to 0, the 'ptos' will contains the LOWEST valid address
  43          *                            of the stack.
  44          *
  45          *              opt           specifies options that can be used to alter the behavior of OSTaskStkInit().
  46          *                            (see uCOS_II.H for OS_TASK_OPT_???).
  47          *
  48          * Returns    : Always returns the location of the new top-of-stack' once the processor registers have
  49          *              been placed on the stack in the proper order.
  50          *
  51          * Note(s)    : Interrupts are enabled when your task starts executing. You can change this by setting the
  52          *              PSW to 0x0002 instead.  In this case, interrupts would be disabled upon task startup.  The
  53          *              application code would be responsible for enabling interrupts at the beginning of the task
  54          *              code.  You will need to modify OSTaskIdle() and OSTaskStat() so that they enable 
C51 COMPILER V6.20c  OS_CPU_C                                                              07/03/2002 08:51:26 PAGE 2   

  55          *              interrupts.  Failure to do this will make your system crash!
  56          *********************************************************************************************************
  57          */
  58          
  59          /* The stack variable points to the start pointer in hardware stack and is defined in OS_CPU_A */
  60          extern idata unsigned char Stack[1];
  61          
  62          OS_STK *OSTaskStkInit (void (*task)(void *pd) KCREENTRANT, void * vd, OS_STK *ptos, INT16U opt) KCREENTRAN
             -T
  63          {   
  64   1      	INT8U * stk;
  65   1          opt    = opt;                           /* 'opt' is not used, prevent warning                      */
  66   1          stk    = (INT8U *) ptos;                /* Load stack pointer                                      */
  67   1      
  68   1      	stk				-= sizeof(INT16U);      /* The value should be loaded to PC    */
  69   1      	*(INT16U*)stk	 = (INT16U) task;       /* next time when this task is running */
  70   1      
  71   1      	stk				-= sizeof(INT16U);      /* The value should be loaded to PC    */
  72   1      	*(INT16U*)stk	 = (INT16U) task;       /* next time when this task is running */
  73   1      
  74   1      /* Following is the registers pushed into hardware stack */
  75   1      	*--stk			 = 'A';                 /* ACC */
  76   1      	*--stk			 = 'B';                 /* B   */
  77   1      	*--stk			 = 'L';                 /* DPL */
  78   1      	*--stk			 = 'H';                 /* DPH */
  79   1      	*--stk			 = PSW;					/* PSW */
  80   1      	*--stk			 = 0;                   /* R0  */
  81   1      
  82   1      	stk				-= sizeof(void *);      /* Keil C uses R1,R2,R3 to pass the */
  83   1      	*(void**)stk	 = vd;                  /* arguments of functions.          */
  84   1      
  85   1      	*--stk			 = 4;                   /* R4  */
  86   1      	*--stk			 = 5;                   /* R5  */
  87   1      	*--stk			 = 6;                   /* R6  */
  88   1      	*--stk			 = 7;                   /* R7  */
  89   1      
  90   1          *--stk           = 0x80;                /* IE, EA is enabled  */
  91   1      /*
  92   1          Next is calculating the hardware stack pointer.
  93   1      */
  94   1          *--stk			 = (INT8U) Stack-1    /* Initial value when main was called    */
  95   1      	                   +1                   /* IE */
  96   1      	                   +8                   /* R0-R7, eight registers was saved      */
  97   1                             +5                   /* PSW, ACC, B, DPH, DPL, five registers */
  98   1                             +sizeof(INT16U)      /* The PC value to be loaded             */
  99   1                             +sizeof(INT16U)      /* The PC value to be loaded             */
 100   1      					   ;
 101   1      
 102   1          return ((void *)stk);
 103   1      }
 104          
 105          
 106          
 107          void UserTickTimer(void) KCREENTRANT;
 108          
 109          /* OSTickISR can be writen in c language now, so it is more easy for user to write code for their own */
 110          void OSTickISR(void) KCREENTRANT interrupt 1 
 111          {
 112   1       
 113   1      #pragma ASM
 114   1      PUSH IE
 115   1      #pragma ENDASM
C51 COMPILER V6.20c  OS_CPU_C                                                              07/03/2002 08:51:26 PAGE 3   

 116   1      OSIntEnter();
 117   1      UserTickTimer();				
 118   1      OSTimeTick();					
 119   1      OSIntExit();
 120   1      #pragma ASM
 121   1      POP IE
 122   1      #pragma ENDASM		
 123   1      }
 124          
 125          /* If you want to write ISRs for your own, just do as OSTickISR() */
 126          
 127          /*$PAGE*/
 128          #if OS_CPU_HOOKS_EN
 129          
 130          
 131          /*
 132          *********************************************************************************************************
 133          *                                          TASK CREATION HOOK
 134          *
 135          * Description: This function is called when a task is created.
 136          *
 137          * Arguments  : ptcb   is a pointer to the task control block of the task being created.
 138          *
 139          * Note(s)    : 1) Interrupts are disabled during this call.
 140          *********************************************************************************************************
 141          */
 142          void OSTaskCreateHook (OS_TCB *ptcb) KCREENTRANT
 143          {
 144   1          ptcb = ptcb;                       /* Prevent compiler warning                                     */
 145   1      }
 146          
 147          
 148          /*
 149          *********************************************************************************************************
 150          *                                           TASK DELETION HOOK
 151          *
 152          * Description: This function is called when a task is deleted.
 153          *
 154          * Arguments  : ptcb   is a pointer to the task control block of the task being deleted.
 155          *
 156          * Note(s)    : 1) Interrupts are disabled during this call.
 157          *********************************************************************************************************
 158          */
 159          void OSTaskDelHook (OS_TCB *ptcb) KCREENTRANT
 160          {
 161   1          ptcb = ptcb;                       /* Prevent compiler warning                                     */
 162   1      }
 163          
 164          /*
 165          *********************************************************************************************************
 166          *                                           TASK SWITCH HOOK
 167          *
 168          * Description: This function is called when a task switch is performed.  This allows you to perform other
 169          *              operations during a context switch.
 170          *
 171          * Arguments  : none
 172          *
 173          * Note(s)    : 1) Interrupts are disabled during this call.
 174          *              2) It is assumed that the global pointer 'OSTCBHighRdy' points to the TCB of the task that
 175          *                 will be 'switched in' (i.e. the highest priority task) and, 'OSTCBCur' points to the 
 176          *                 task being switched out (i.e. the preempted task).
 177          *********************************************************************************************************
C51 COMPILER V6.20c  OS_CPU_C                                                              07/03/2002 08:51:26 PAGE 4   

 178          */
 179          void OSTaskSwHook (void) KCREENTRANT
 180          {
 181   1      }
 182          
 183          /*
 184          *********************************************************************************************************
 185          *                                           STATISTIC TASK HOOK
 186          *
 187          * Description: This function is called every second by uC/OS-II's statistics task.  This allows your 
 188          *              application to add functionality to the statistics task.
 189          *
 190          * Arguments  : none
 191          *********************************************************************************************************
 192          */
 193          void OSTaskStatHook (void) KCREENTRANT
 194          {
 195   1      }
 196          
 197          /*
 198          *********************************************************************************************************
 199          *                                               TICK HOOK
 200          *
 201          * Description: This function is called every tick.
 202          *
 203          * Arguments  : none
 204          *
 205          * Note(s)    : 1) Interrupts may or may not be ENABLED during this call.
 206          *********************************************************************************************************
 207          */
 208          void OSTimeTickHook (void) KCREENTRANT
 209          {
 210   1      }
 211          
 212          #endif


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    366    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
秋霞影院一区二区| 91女厕偷拍女厕偷拍高清| 国产精品免费丝袜| 精品国产乱码久久久久久1区2区| 欧美性一级生活| 在线观看91视频| 欧美午夜精品久久久久久超碰| 日本91福利区| 91色在线porny| 欧美日韩免费高清一区色橹橹 | 亚洲国产欧美在线| 亚洲精品国产第一综合99久久| 国产精品视频一二三| 中文字幕一区三区| 亚洲一区二区中文在线| 五月天视频一区| 狠狠v欧美v日韩v亚洲ⅴ| 国产一区二区在线观看视频| 国产99久久久国产精品潘金| 成人av免费网站| 在线中文字幕不卡| 欧美一区三区四区| 久久久久久久综合日本| 国产精品麻豆欧美日韩ww| 亚洲免费视频中文字幕| 午夜免费久久看| 国产一区二区三区综合| 99久久久国产精品| 欧美一卡二卡在线| 国产精品久久久久久久久快鸭| 一区二区在线看| 蜜臀av性久久久久蜜臀aⅴ| 国产高清精品网站| 欧美日韩在线观看一区二区| 久久久久久久精| 一区二区三区电影在线播| 美女视频免费一区| 91色乱码一区二区三区| 91精品欧美久久久久久动漫| 中文欧美字幕免费| 日本成人中文字幕在线视频| 成人黄页毛片网站| 日韩精品最新网址| 亚洲激情成人在线| 国产精品综合久久| 91麻豆精品国产91久久久久久久久| 国产亚洲精品aa| 免费精品99久久国产综合精品| 成人小视频在线| 国产午夜亚洲精品午夜鲁丝片| 亚洲激情网站免费观看| 国产高清不卡一区二区| 欧美日韩一级视频| 亚洲色图视频免费播放| 国产综合成人久久大片91| 欧美日本一区二区三区四区| 国产精品进线69影院| 国产精品综合一区二区三区| 欧美精品tushy高清| 亚洲一区在线观看免费观看电影高清 | 欧美一级二级三级乱码| 亚洲免费在线观看视频| 处破女av一区二区| 2020国产精品久久精品美国| 青青草97国产精品免费观看无弹窗版| 9久草视频在线视频精品| 国产女人18毛片水真多成人如厕| 美女尤物国产一区| 日韩你懂的电影在线观看| 日韩电影在线观看一区| 欧美日韩精品一区二区三区蜜桃| 亚洲欧美激情小说另类| 不卡在线视频中文字幕| 国产精品乱码一区二区三区软件| 国产一区免费电影| 久久精品欧美一区二区三区麻豆| 九九九久久久精品| 精品电影一区二区| 国产精品18久久久久久久久久久久 | 亚洲在线免费播放| 色天天综合久久久久综合片| 欧美日韩免费高清一区色橹橹| 亚洲免费大片在线观看| 日本久久精品电影| 一区二区三区四区激情| 欧美视频一区二区| 日韩精品欧美精品| 日韩欧美国产系列| 国产美女精品一区二区三区| 国产精品网曝门| 色系网站成人免费| 亚洲成av人片观看| 日韩精品中文字幕在线一区| 国产一区二区调教| 爽爽淫人综合网网站| 亚洲美女偷拍久久| 国产一区二区精品在线观看| 91美女片黄在线观看| 亚洲精品乱码久久久久| 欧美日韩精品一区二区| 久久91精品久久久久久秒播| 国产欧美日韩不卡免费| 97精品国产97久久久久久久久久久久 | 精品捆绑美女sm三区| 国产成人自拍网| 亚洲自拍欧美精品| 日韩欧美色电影| 波多野洁衣一区| 亚洲一区二区三区四区中文字幕| 日韩视频免费观看高清完整版 | 亚洲国产精品99久久久久久久久| 成人97人人超碰人人99| 午夜a成v人精品| 国产日产精品1区| 欧美亚州韩日在线看免费版国语版| 青青草国产成人99久久| 中文字幕在线不卡| 日韩精品一区二区三区三区免费| 成年人午夜久久久| 日韩极品在线观看| 综合中文字幕亚洲| 精品福利一二区| 欧美伊人久久久久久午夜久久久久| 精品系列免费在线观看| 亚洲综合在线免费观看| 国产午夜精品一区二区三区视频| 欧美日韩在线亚洲一区蜜芽| 成人午夜在线播放| 麻豆免费看一区二区三区| 亚洲美女免费在线| 国产女人18毛片水真多成人如厕| 69堂成人精品免费视频| 色欲综合视频天天天| 高清在线观看日韩| 黄色日韩三级电影| 日韩电影在线观看电影| 日韩码欧中文字| 中文字幕乱码亚洲精品一区| 精品嫩草影院久久| 欧美一区二区三区爱爱| 欧美日韩在线观看一区二区| 色老综合老女人久久久| 成人黄色综合网站| 成人激情黄色小说| 国产精品一区二区男女羞羞无遮挡| 免费成人在线影院| 日韩激情av在线| 爽好久久久欧美精品| 亚洲国产另类av| 一区二区三区四区在线免费观看 | 欧美伊人精品成人久久综合97| 国产91丝袜在线播放0| 国产揄拍国内精品对白| 国模少妇一区二区三区| 韩国av一区二区三区四区| 美女尤物国产一区| 精品亚洲国产成人av制服丝袜| 蜜桃视频在线一区| 久久se精品一区二区| 精品中文av资源站在线观看| 精品制服美女久久| 国产精品亚洲一区二区三区妖精| 韩国视频一区二区| 国产成人免费视频| 成a人片亚洲日本久久| 91免费看视频| 欧美午夜精品免费| 3d成人动漫网站| 日韩视频免费直播| 国产欧美日韩精品一区| 亚洲人成影院在线观看| 黄色精品一二区| 欧美一个色资源| 91激情在线视频| 欧亚洲嫩模精品一区三区| 欧美日韩高清在线| 欧美成人午夜电影| 香蕉乱码成人久久天堂爱免费| 日韩精品三区四区| 国产精品一区二区果冻传媒| 99精品在线免费| 欧美日韩一级视频| 久久精品一区二区三区av | 韩国av一区二区三区四区| 国产精品1024久久| 欧美在线观看你懂的| 欧美成人一区二区三区片免费 | 精品毛片乱码1区2区3区| 国产精品美女久久久久高潮| 亚洲一区av在线| 久久成人免费网站| 99精品欧美一区| 欧美一区午夜精品| 亚洲欧洲精品一区二区精品久久久| 亚洲午夜电影网| 国产一区二区三区在线观看精品 | 亚洲成在人线在线播放| 国产成人综合自拍| 91精品免费观看| 亚洲欧洲日韩av|