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

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

?? os_cpu_c.lst

?? uc0s zai 51 上的移植
?? LST
?? 第 1 頁 / 共 2 頁
字號:
 185   1          //INT16U *stk;
 186   1              OS_STK  *stk;
 187   1      
 188   1          opt    = opt;                           /* 'opt' is not used, prevent warning                      */
 189   1          stk    = (OS_STK *)ptos;                /* Load stack pointer                                      */
 190   1                                                                                              //裝入堆棧指針ptos到stk
 191   1              *--stk = ((INT16U)task) &  0x00ff;              //保存任務地址底字節
 192   1              *--stk = ((INT16U)task) >> 8;                   //保存任務地址高字節
 193   1      //      *--stk = 'S';                                                   //保存堆棧指針SP
 194   1              *--stk = 'A';                                                   //入棧:ACC
 195   1              *--stk = 'B';                                                   //入棧:B
 196   1              *--stk = 'H';                                                   //入棧:DPH             //暫時忽略第二指針
 197   1              *--stk = 'L';                                                   //入棧:DPL
 198   1              *--stk = PSW;                                                   //入棧:PSW
 199   1              *--stk = '0';                                                   //入棧:R0
 200   1              *--stk = (((INT16U)os_pdata) & 0x00ff); //偏移底位即R1
 201   1              *--stk = (((INT16U)os_pdata) & 0xff00) >> 8;//偏移高位即R2
 202   1              *--stk = 0x01;                                                  //空間編碼
 203   1                                                                                              //用寄存器傳遞os_pdata
 204   1              *--stk = '4';                                                   //入棧:R4-R7
 205   1              *--stk = '5';
 206   1              *--stk = '6';
 207   1              *--stk = '7';
 208   1      
 209   1                                                                                              //END
 210   1          return ((OS_STK *)stk);
 211   1      }
 212          
 213          /*$PAGE*/
 214          
 215          /*$PAGE*/
 216          /*
 217          *********************************************************************************************************
 218          *                        INITIALIZE A TASK'S STACK FOR FLOATING POINT EMULATION
 219          *
 220          * Description: This function MUST be called BEFORE calling either OSTaskCreate() or OSTaskCreateExt() in
 221          *              order to initialize the task's stack to allow the task to use the Borland floating-point 
 222          *              emulation.  The returned pointer MUST be used in the task creation call.
 223          *
 224          *              Ex.:   OS_STK TaskStk[1000];
 225          *
 226          *
 227          *                     void main (void)
 228          *                     {
 229          *                         OS_STK *ptos;
 230          *                         OS_STK *pbos;
 231          *                         INT32U  size;
 232          *
 233          *
 234          *                         OSInit();
 235          *                         .
 236          *                         .
 237          *                         ptos  = &TaskStk[999];
 238          *                         pbos  = &TaskStk[0];
 239          *                         psize = 1000;
C51 COMPILER V7.20   OS_CPU_C                                                              04/25/2005 23:03:52 PAGE 5   

 240          *                         OSTaskStkInit_FPE_x86(&ptos, &pbos, &size);
 241          *                         OSTaskCreate(Task, (void *)0, ptos, 10);
 242          *                         .
 243          *                         .
 244          *                         OSStart();
 245          *                     }
 246          *
 247          * Arguments  : pptos         is the pointer to the task's top-of-stack pointer which would be passed to 
 248          *                            OSTaskCreate() or OSTaskCreateExt().
 249          *
 250          *              ppbos         is the pointer to the new bottom of stack pointer which would be passed to
 251          *                            OSTaskCreateExt().
 252          *
 253          *              psize         is a pointer to the size of the stack (in number of stack elements).  You 
 254          *                            MUST allocate sufficient stack space to leave at least 384 bytes for the 
 255          *                            floating-point emulation.
 256          *
 257          * Returns    : The new size of the stack once memory is allocated to the floating-point emulation.
 258          *
 259          * Note(s)    : 1) _SS  is a Borland 'pseudo-register' and returns the contents of the Stack Segment (SS)
 260          *              2) The pointer to the top-of-stack (pptos) will be modified so that it points to the new
 261          *                 top-of-stack.
 262          *              3) The pointer to the bottom-of-stack (ppbos) will be modified so that it points to the new
 263          *                 bottom-of-stack.
 264          *              4) The new size of the stack is adjusted to reflect the fact that memory was reserved on
 265          *                 the stack for the floating-point emulation.
 266          *********************************************************************************************************
 267          */
 268          
 269          /*$PAGE*/
 270          //void  OSTaskStkInit_FPE_x86 (OS_STK **pptos, OS_STK **ppbos, INT32U *psize)
 271          //{
 272          //    INT32U   lin_tos;                                 /* 'Linear' version of top-of-stack    address   *
             -/
 273          //    INT32U   lin_bos;                                 /* 'Linear' version of bottom-of-stack address   *
             -/
 274          //    INT16U   seg;
 275          //    INT16U   off;
 276          //    INT32U   bytes;
 277          
 278          
 279          //    seg      = FP_SEG(*pptos);                        /* Decompose top-of-stack pointer into seg:off   *
             -/
 280          //    off      = FP_OFF(*pptos);
 281          //    lin_tos  = ((INT32U)seg << 4) + (INT32U)off;      /* Convert seg:off to linear address             *
             -/
 282          //    bytes    = *psize * sizeof(OS_STK);               /* Determine how many bytes for the stack        *
             -/
 283          //    lin_bos  = (lin_tos - bytes + 15) & 0xFFFFFFF0L;  /* Ensure paragraph alignment for BOS            *
             -/
 284              
 285          //    seg      = (INT16U)(lin_bos >> 4);                /* Get new 'normalized' segment                  *
             -/
 286          //    *ppbos   = (OS_STK *)MK_FP(seg, 0x0000);          /* Create 'normalized' BOS pointer               *
             -/
 287          //    memcpy(*ppbos, MK_FP(_SS, 0), 384);               /* Copy FP emulation memory to task's stack      *
             -/
 288          //    bytes    = bytes - 16;                            /* Loose 16 bytes because of alignment           *
             -/
 289          //    *pptos   = (OS_STK *)MK_FP(seg, (INT16U)bytes);   /* Determine new top-of-stack                    *
             -/
 290          //    *ppbos   = (OS_STK *)MK_FP(seg, 384);             /* Determine new bottom-of-stack                 *
C51 COMPILER V7.20   OS_CPU_C                                                              04/25/2005 23:03:52 PAGE 6   

             -/
 291          //    bytes    = bytes - 384;
 292          //    *psize   = bytes / sizeof(OS_STK);                /* Determine new stack size                      *
             -/
 293          //}
 294          
 295          /*$PAGE*/
 296          /*
 297          *********************************************************************************************************
 298          *                                           TASK SWITCH HOOK
 299          *
 300          * Description: This function is called when a task switch is performed.  This allows you to perform other
 301          *              operations during a context switch.
 302          *
 303          * Arguments  : none
 304          *
 305          * Note(s)    : 1) Interrupts are disabled during this call.
 306          *              2) It is assumed that the global pointer 'OSTCBHighRdy' points to the TCB of the task that
 307          *                 will be 'switched in' (i.e. the highest priority task) and, 'OSTCBCur' points to the 
 308          *                 task being switched out (i.e. the preempted task).
 309          *********************************************************************************************************
 310          */
 311          #if OS_CPU_HOOKS_EN > 0 
 312          void  OSTaskSwHook (void) LG_REENTRANT
 313          {
 314   1      }
 315          #endif
 316          
 317          /*
 318          *********************************************************************************************************
 319          *                                           OSTCBInit() HOOK
 320          *
 321          * Description: This function is called by OS_TCBInit() after setting up most of the TCB.
 322          *
 323          * Arguments  : ptcb    is a pointer to the TCB of the task being created.
 324          *
 325          * Note(s)    : 1) Interrupts may or may not be ENABLED during this call.
 326          *********************************************************************************************************
 327          */
 328          #if OS_CPU_HOOKS_EN > 0 && OS_VERSION > 203
 329          void  OSTCBInitHook (OS_TCB *ptcb) LG_REENTRANT
 330          {
 331   1          ptcb = ptcb;                                           /* Prevent Compiler warning                 */
 332   1      }
 333          #endif
 334          
 335          
 336          /*
 337          *********************************************************************************************************
 338          *                                               TICK HOOK
 339          *
 340          * Description: This function is called every tick.
 341          *
 342          * Arguments  : none
 343          *
 344          * Note(s)    : 1) Interrupts may or may not be ENABLED during this call.
 345          *********************************************************************************************************
 346          */
 347          #if OS_CPU_HOOKS_EN > 0 
 348          void  OSTimeTickHook (void) LG_REENTRANT
 349          {
 350   1      }
C51 COMPILER V7.20   OS_CPU_C                                                              04/25/2005 23:03:52 PAGE 7   

 351          #endif


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    634    ----
   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一区二区三区免费野_久草精品视频
中文字幕成人在线观看| 国产在线麻豆精品观看| 免费观看成人av| 成人国产精品免费| 精品久久国产97色综合| 一区二区三区精品| 不卡的av电影在线观看| 久久人人爽爽爽人久久久| 午夜视频在线观看一区| 91视频在线观看| 欧美激情一区二区| 精品一区二区在线看| 欧美日韩高清一区二区三区| 最新日韩在线视频| 风间由美性色一区二区三区| 日韩一二在线观看| 日日摸夜夜添夜夜添亚洲女人| 99国产麻豆精品| 国产精品全国免费观看高清| 精品一二线国产| 日韩欧美激情一区| 青椒成人免费视频| 日韩视频在线观看一区二区| 亚洲丰满少妇videoshd| 一本色道久久综合精品竹菊| 中文av一区二区| 成人免费高清视频| 国产精品入口麻豆九色| 成人av在线一区二区三区| 国产日韩视频一区二区三区| 国产在线精品一区二区夜色| 欧美岛国在线观看| 经典三级在线一区| 久久免费精品国产久精品久久久久| 欧美aaaaa成人免费观看视频| 6080国产精品一区二区| 五月天久久比比资源色| 91精品一区二区三区在线观看| 视频一区欧美日韩| 91精品国产91久久综合桃花| 日本亚洲三级在线| 欧美变态凌虐bdsm| 国产成+人+日韩+欧美+亚洲| 日本一区二区电影| 色婷婷亚洲综合| 午夜视频一区二区| 日韩精品自拍偷拍| 国产一区二区伦理片| 欧美国产1区2区| 在线精品视频一区二区| 午夜免费久久看| www国产精品av| 国产69精品久久久久777| 欧美激情一区二区三区全黄| 一本到高清视频免费精品| 亚洲激情成人在线| 日韩一级片在线播放| 东方aⅴ免费观看久久av| 亚洲日本在线a| 欧美肥胖老妇做爰| 国产高清精品在线| 一级日本不卡的影视| 欧美一卡在线观看| 成人美女视频在线观看| 亚洲精品视频一区| 欧美精品一区二区三区一线天视频| 成人av午夜电影| 五月天丁香久久| 国产午夜久久久久| 在线一区二区观看| 国产成人免费视| 日韩成人伦理电影在线观看| 国产日韩在线不卡| 91精品国产欧美一区二区18| 国产高清精品在线| 丝袜美腿高跟呻吟高潮一区| 国产亚洲欧美在线| 欧美人与禽zozo性伦| 国产999精品久久| 日韩av不卡一区二区| 国产精品久久影院| 日韩欧美成人激情| 在线观看日产精品| 高清久久久久久| 男女男精品视频| 亚洲激情校园春色| 国产精品久久久久久久久晋中 | 欧美a一区二区| 亚洲日本在线天堂| 亚洲国产高清在线| 日韩欧美精品在线视频| 欧美性猛交xxxxxxxx| k8久久久一区二区三区| 美女久久久精品| 天堂资源在线中文精品| 中文字幕国产精品一区二区| 日韩一二在线观看| 91精品久久久久久蜜臀| 欧美在线视频不卡| 91啪亚洲精品| 99久久精品国产一区二区三区| 国内成人免费视频| 久久精品国产99久久6| 午夜免费久久看| 亚洲国产精品久久久男人的天堂| 亚洲日本在线视频观看| 国产精品传媒入口麻豆| 久久精品网站免费观看| 欧美精品一区二区三区很污很色的 | 欧美日韩国产精选| 在线观看一区二区精品视频| 91猫先生在线| 色老汉一区二区三区| 91丨九色丨黑人外教| av在线一区二区| 一本到不卡精品视频在线观看| 成人深夜视频在线观看| 成人性视频网站| 91在线观看高清| 色综合咪咪久久| 欧美日韩一区二区三区高清| 欧美亚洲另类激情小说| 欧美精品日韩一区| 88在线观看91蜜桃国自产| 日韩免费在线观看| 国产午夜精品福利| 国产精品毛片高清在线完整版| 国产精品无码永久免费888| 国产精品久久久一本精品| 亚洲靠逼com| 午夜精品久久久久久久| 肉丝袜脚交视频一区二区| 蜜桃av噜噜一区| 国产成人精品在线看| 91在线小视频| 欧美日韩国产欧美日美国产精品| 日韩欧美电影一二三| 国产日产精品1区| 亚洲男同性视频| 视频一区二区国产| 国内不卡的二区三区中文字幕| 国产福利一区在线| 色视频成人在线观看免| 678五月天丁香亚洲综合网| 欧美精品一区二区三区很污很色的 | 亚洲伊人伊色伊影伊综合网| 天堂一区二区在线免费观看| 国内成人自拍视频| 在线观看一区日韩| 久久精品视频一区二区| 一区二区在线看| 韩国av一区二区三区在线观看| 成人午夜激情片| 欧美久久久久久久久中文字幕| 国产天堂亚洲国产碰碰| 香蕉加勒比综合久久| 国产传媒欧美日韩成人| 欧美日韩久久不卡| 国产精品福利一区二区| 日韩不卡手机在线v区| hitomi一区二区三区精品| 91.com在线观看| 1000部国产精品成人观看| 捆绑变态av一区二区三区| 97久久超碰国产精品电影| 日韩你懂的电影在线观看| 一区二区国产盗摄色噜噜| 国产乱一区二区| 91精品国产品国语在线不卡| 综合精品久久久| 国产一区二区视频在线播放| 欧美日韩大陆一区二区| 亚洲欧美在线另类| 国精品**一区二区三区在线蜜桃| 欧美综合欧美视频| 国产精品嫩草99a| 国产专区欧美精品| 欧美精品亚洲二区| 亚洲精品欧美激情| 成人黄页在线观看| 久久久国产一区二区三区四区小说 | 国产a久久麻豆| 精品国产乱码久久久久久夜甘婷婷 | www.66久久| 国产欧美视频在线观看| 老司机精品视频一区二区三区| 在线观看免费成人| 国产精品久久毛片av大全日韩| 国产精品亚洲一区二区三区在线 | 国产在线国偷精品产拍免费yy| 欧美精品粉嫩高潮一区二区| 亚洲欧美日本在线| 99国产麻豆精品| 亚洲久草在线视频| 色呦呦一区二区三区| 亚洲日本在线观看| 日本高清无吗v一区| 亚洲精品一二三| 欧洲一区在线电影| 亚洲尤物在线视频观看|