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

📄 os_cpu_a.ls1

📁 移植UCOS2.00版内核到8051
💻 LS1
📖 第 1 页 / 共 4 页
字号:
                     561     ;   
                     562     ;   *UserStkSP=STKCount;
                     563     ;   
A51 MACRO ASSEMBLER  OS_CPU_A                                                             10/23/2007 17:47:44 PAGE     9

                     564     ;   do
                     565     ;   {
                     566     ;       SysStkSP++;
                     567     ;       UserStkSP++;
                     568     ;       *UserStkSP=*SysStkSP;
                     569     ;       STKCount--;
                     570     ;   }while(STKCount!=0);                
                     571     ;   }   */
                     572     ;   OSTimeTick();
                     573                             ; SOURCE LINE # 211
002A 120000   F      574             LCALL   _?OSTimeTick
                     575     ;       OSIntExit();
                     576                             ; SOURCE LINE # 212
002D 120000   F      577             LCALL   _?OSIntExit
                     578     ; }
                     579                             ; SOURCE LINE # 213
0030 D007            580             POP     AR7
0032 D006            581             POP     AR6
0034 D005            582             POP     AR5
0036 D004            583             POP     AR4
0038 D003            584             POP     AR3
003A D002            585             POP     AR2
003C D001            586             POP     AR1
003E D000            587             POP     AR0
0040 D0D0            588             POP     PSW
0042 D082            589             POP     DPL
0044 D083            590             POP     DPH
0046 D0F0            591             POP     B
0048 D0E0            592             POP     ACC
004A 32              593             RETI    
                     594     ; END OF OSTickISR
                     595     
                     596     ; 
                     597     ; void OSIntCtxSw(void)
                     598     
----                 599             RSEG  ?PR?OSIntCtxSw?OS_CPU_A
0000                 600     OSIntCtxSw:
                     601             USING   0
                     602                             ; SOURCE LINE # 215
                     603     ; {
                     604                             ; SOURCE LINE # 216
                     605     ;       OS_STK idata *SysStkSP;
                     606     ;       OS_STK *UserStkSP;
                     607     ;       INT8U  STKCount;
                     608     ;       
                     609     ;       OSTaskSwHook();
                     610                             ; SOURCE LINE # 221
0000 120000   F      611             LCALL   _?OSTaskSwHook
                     612     ;       
                     613     ;       OSTCBCur=OSTCBHighRdy;
                     614                             ; SOURCE LINE # 223
0003 900000   F      615             MOV     DPTR,#OSTCBHighRdy
0006 E0              616             MOVX    A,@DPTR
0007 F9              617             MOV     R1,A
0008 A3              618             INC     DPTR
0009 E0              619             MOVX    A,@DPTR
000A FA              620             MOV     R2,A
000B A3              621             INC     DPTR
000C E0              622             MOVX    A,@DPTR
000D 900000   F      623             MOV     DPTR,#OSTCBCur
0010 C9              624             XCH     A,R1
0011 F0              625             MOVX    @DPTR,A
0012 A3              626             INC     DPTR
0013 EA              627             MOV     A,R2
0014 F0              628             MOVX    @DPTR,A
0015 A3              629             INC     DPTR
A51 MACRO ASSEMBLER  OS_CPU_A                                                             10/23/2007 17:47:44 PAGE    10

0016 E9              630             MOV     A,R1
0017 F0              631             MOVX    @DPTR,A
                     632     ;       OSPrioCur=OSPrioHighRdy;
                     633                             ; SOURCE LINE # 224
0018 900000   F      634             MOV     DPTR,#OSPrioHighRdy
001B E0              635             MOVX    A,@DPTR
001C 900000   F      636             MOV     DPTR,#OSPrioCur
001F F0              637             MOVX    @DPTR,A
                     638     ; 
                     639     ;       UserStkSP=OSTCBCur->OSTCBStkPtr;
                     640                             ; SOURCE LINE # 226
0020 900000   F      641             MOV     DPTR,#OSTCBCur
0023 E0              642             MOVX    A,@DPTR
0024 FB              643             MOV     R3,A
0025 A3              644             INC     DPTR
0026 E0              645             MOVX    A,@DPTR
0027 FA              646             MOV     R2,A
0028 A3              647             INC     DPTR
0029 E0              648             MOVX    A,@DPTR
002A F9              649             MOV     R1,A
002B 120000   F      650             LCALL   ?C?PLDPTR
                     651     ;---- Variable 'UserStkSP?244' assigned to Register 'R1/R2/R3' ----
                     652     ;       SysStkSP=UserSysSP_Start;               
                     653                             ; SOURCE LINE # 227
002E AF00     F      654             MOV     R7,UserSysSP_Start
                     655     ;---- Variable 'SysStkSP?243' assigned to Register 'R7' ----
                     656     ;       STKCount=*UserStkSP;
                     657                             ; SOURCE LINE # 228
0030 120000   F      658             LCALL   ?C?CLDPTR
0033 FE              659             MOV     R6,A
                     660     ;---- Variable 'STKCount?245' assigned to Register 'R6' ----
                     661     ; //    STKCount-=4;
                     662     ;       SP=UserSysSP_Start+STKCount;
                     663                             ; SOURCE LINE # 230
0034 2500     F      664             ADD     A,UserSysSP_Start
0036 F581            665             MOV     SP,A
0038                 666     ?C0011:
                     667     ;       
                     668     ;       do{
                     669                             ; SOURCE LINE # 232
                     670     ;               UserStkSP++;
                     671                             ; SOURCE LINE # 233
0038 7401            672             MOV     A,#01H
003A 29              673             ADD     A,R1
003B F9              674             MOV     R1,A
003C E4              675             CLR     A
003D 3A              676             ADDC    A,R2
003E FA              677             MOV     R2,A
                     678     ;               SysStkSP++;
                     679                             ; SOURCE LINE # 234
003F 0F              680             INC     R7
                     681     ;               *SysStkSP=*UserStkSP;
                     682                             ; SOURCE LINE # 235
0040 120000   F      683             LCALL   ?C?CLDPTR
0043 A807            684             MOV     R0,AR7
0045 F6              685             MOV     @R0,A
                     686     ;     STKCount--;
                     687                             ; SOURCE LINE # 236
0046 DEF0            688             DJNZ    R6,?C0011
                     689     ;   }while(STKCount!=0);
                     690                             ; SOURCE LINE # 237
                     691     ; 
                     692     ; #if CXBP_OK>0 
                     693     ;   UserStkSP++;
                     694                             ; SOURCE LINE # 240
0048 7401            695             MOV     A,#01H
A51 MACRO ASSEMBLER  OS_CPU_A                                                             10/23/2007 17:47:44 PAGE    11

004A 29              696             ADD     A,R1
004B F9              697             MOV     R1,A
004C E4              698             CLR     A
004D 3A              699             ADDC    A,R2
004E FA              700             MOV     R2,A
                     701     ;   UserStkSP_tmp=UserStkSP;
                     702                             ; SOURCE LINE # 241
004F 900000   F      703             MOV     DPTR,#UserStkSP_tmp
0052 EB              704             MOV     A,R3
0053 F0              705             MOVX    @DPTR,A
0054 A3              706             INC     DPTR
0055 EA              707             MOV     A,R2
0056 F0              708             MOVX    @DPTR,A
0057 A3              709             INC     DPTR
0058 E9              710             MOV     A,R1
0059 F0              711             MOVX    @DPTR,A
                     712     ; #pragma asm
                     713     ;          MOV  R0,#LOW (UserStkSP_tmp)
005A 7800     F      714               MOV  R0,#LOW (UserStkSP_tmp)
                     715     ;         ;MOV  R0,#UserStkSP_tmp
                     716               ;MOV  R0,#UserStkSP_tmp
                     717     ;         ;INC  R0
                     718               ;INC  R0
                     719     ;         ;MOV  DPH,@R0    ;变量UserStkSP在IDATA中
                     720               ;MOV  DPH,@R0    ;变量UserStkSP在IDATA中
                     721     ;         ;INC  R0
                     722               ;INC  R0
                     723     ;         ;MOV  DPL,@R0  
                     724               ;MOV  DPL,@R0  
                     725     ;               
                     726               
                     727     ;         ;MOVX A,@DPTR
                     728               ;MOVX A,@DPTR
                     729     ;         MOVX A,@R0
005C E2              730               MOVX A,@R0
                     731     ;         MOV  ?C_XBP,A    ;?C_XBP 仿真堆栈指针高8位
005D F500     F      732               MOV  ?C_XBP,A    ;?C_XBP 仿真堆栈指针高8位
                     733     ;         ;INC  DPTR
                     734               ;INC  DPTR
                     735     ;         INC  R0
005F 08              736               INC  R0
                     737     ;         ;MOVX A,@DPTR
                     738               ;MOVX A,@DPTR
                     739     ;         MOVX A,@R0
0060 E2              740               MOVX A,@R0
                     741     ;         MOV  ?C_XBP+1,A  ;?C_XBP 仿真堆栈指针低8位
0061 F500     F      742               MOV  ?C_XBP+1,A  ;?C_XBP 仿真堆栈指针低8位
                     743     ; #pragma endasm
                     744     ; #endif
                     745     ; 
                     746     ; #pragma asm
                     747     ;  POPALL 
                     748               POPALL 
                     772     ;  RETI
0085 32              773               RETI
                     774     ; #pragma endasm 
                     775     ; 
                     776     ; }
                     777                             ; SOURCE LINE # 266
0086 22              778             RET     
                     779     ; END OF OSIntCtxSw
                     780     
                     781     ; 
                     782     ; void OSStartHighRdy(void)
                     783     
----                 784             RSEG  ?PR?OSStartHighRdy?OS_CPU_A
A51 MACRO ASSEMBLER  OS_CPU_A                                                             10/23/2007 17:47:44 PAGE    12

0000                 785     OSStartHighRdy:
                     786             USING   0
                     787                             ; SOURCE LINE # 268
                     788     ; {
                     789                             ; SOURCE LINE # 269
                     790     ;       OS_STK idata *SysStkSP;
                     791     ;       OS_STK *UserStkSP;
                     792     ;       INT8U  STKCount;
                     793     ;       
                     794     ;       OSTaskSwHook();
                     795                             ; SOURCE LINE # 274
0000 120000   F      796             LCALL   _?OSTaskSwHook
                     797     ;       
                     798     ;       
                     799     ;       SysStkSP=UserSysSP_Start;
                     800                             ; SOURCE LINE # 277
0003 AF00     F      801             MOV     R7,UserSysSP_Start
                     802     ;---- Variable 'SysStkSP?346' assigned to Register 'R7' ----
                     803     ;       OSTCBCur=OSTCBHighRdy;
                     804                             ; SOURCE LINE # 278
0005 900000   F      805             MOV     DPTR,#OSTCBHighRdy
0008 E0              806             MOVX    A,@DPTR
0009 F9              807             MOV     R1,A
000A A3              808             INC     DPTR
000B E0              809             MOVX    A,@DPTR
000C FA              810             MOV     R2,A
000D A3              811             INC     DPTR
000E E0              812             MOVX    A,@DPTR
000F 900000   F      813             MOV     DPTR,#OSTCBCur
0012 C9              814             XCH     A,R1
0013 F0              815             MOVX    @DPTR,A
0014 A3              816             INC     DPTR
0015 EA              817             MOV     A,R2
0016 F0              818             MOVX    @DPTR,A
0017 A3              819             INC     DPTR
0018 E9              820             MOV     A,R1
0019 F0              821             MOVX    @DPTR,A
                     822     ;       OSPrioCur=OSPrioHighRdy;
                     823                             ; SOURCE LINE # 279
001A 900000   F      824             MOV     DPTR,#OSPrioHighRdy
001D E0              825             MOVX    A,@DPTR
001E 900000   F      826             MOV     DPTR,#OSPrioCur
0021 F0              827             MOVX    @DPTR,A
                     828     ;       
                     829     ;       UserStkSP=OSTCBCur->OSTCBStkPtr;
                     830                             ; SOURCE LINE # 281
0022 900000   F      831             MOV     DPTR,#OSTCBCur
0025 E0              832             MOVX    A,@DPTR
0026 FB              833             MOV     R3,A
0027 A3              834             INC     DPTR
0028 E0              835             MOVX    A,@DPTR
0029 FA              836             MOV     R2,A
002A A3              837             INC     DPTR
002B E0              838             MOVX    A,@DPTR
002C F9              839             MOV     R1,A
002D 120000   F      840             LCALL   ?C?PLDPTR
                     841     ;---- Variable 'UserStkSP?347' assigned to Register 'R1/R2/R3' ----
                     842     ;       STKCount=*UserStkSP;
                     843                             ; SOURCE LINE # 282
0030 120000   F      844             LCALL   ?C?CLDPTR
0033 FE              845             MOV     R6,A

⌨️ 快捷键说明

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