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

📄 os_cpu_a.lst

📁 《uC/os-II 内核分析.移植与驱动程序开发》随书光盘中的全部源代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
     364 00000095 D00D       MOVB       XAR0,#13     
     365 00000096 9794       MOV        *+XAR4[AR0],AH                  ;保存 DP
     366 00000097 D00C       MOVB       XAR0,#12     
     367 00000098 9694       MOV        *+XAR4[AR0],AL                  ;保存 ST1
     368                    
     369 00000099 06BE       POP        ACC
     370 0000009a D00B       MOVB       XAR0,#11     
     371 0000009b 9794       MOV        *+XAR4[AR0],AH                  ;保存 AR1           
     372 0000009c D00A       MOVB       XAR0,#10     
     373 0000009d 9694       MOV        *+XAR4[AR0],AL                  ;保存 AR0
     374                    
     375                    
     376 0000009e 06BE       POP        ACC
     377 0000009f D009       MOVB       XAR0,#9     
     378 000000a0 9794       MOV        *+XAR4[AR0],AH                  ;保存 PH           
     379 000000a1 D008       MOVB       XAR0,#8     
     380 000000a2 9694       MOV        *+XAR4[AR0],AL                  ;保存 PL
     381                    
     382 000000a3 06BE       POP        ACC
     383 000000a4 D007       MOVB       XAR0,#7     
     384 000000a5 9794       MOV        *+XAR4[AR0],AH                  ;保存 AH           
     385 000000a6 D006       MOVB       XAR0,#6     
     386 000000a7 9694       MOV        *+XAR4[AR0],AL                  ;保存 AL
     387                    
     388 000000a8 06BE       POP        ACC
     389 000000a9 D005       MOVB       XAR0,#5     
     390 000000aa 9794       MOV        *+XAR4[AR0],AH                  ;保存 T     
     391 000000ab D004       MOVB       XAR0,#4     
     392 000000ac 9694       MOV        *+XAR4[AR0],AL                  ;保存 ST0      
     393                   
     394 000000ad 2AA9       POP    AL  
     395              ;********************************************************************************     
     396              
TMS320C2000 COFF Assembler PC Version 3.03 Sat Aug 02 12:26:42 2003

Tools Copyright (c) 1996-2002 Texas Instruments Incorporated
OS_CPU_A.ASM                                                         PAGE    9

     397              ;=================================================================================      
     398 000000ae 761F!          MOVW   DP,#_OSTCBHighRdy               ; OSTCBCur = OSTCBHighRdy
         000000af 0000 
     399 000000b0 0600!      MOVL   ACC,@_OSTCBHighRdy    
     400 000000b1 761F!      MOVW   DP,#_OSTCBCur
         000000b2 0000 
     401 000000b3 1E00!      MOVL   @_OSTCBCur,ACC        
     402                      
     403                      
     404 000000b4 761F!      MOVW   DP,#_OSPrioHighRdy          ;OSPrioCur = OSPrioHighRdy
         000000b5 0000 
     405 000000b6 9200!      MOV    AL,@_OSPrioHighRdy    
     406 000000b7 761F!      MOVW   DP,#_OSPrioCur
         000000b8 0000 
     407 000000b9 9600!      MOV    @_OSPrioCur,AL        
     408              ;=================================================================================           
     409                   
     410              ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
     411                   ;模拟中断
     412                   ;装载新任务的cpu环境
     413                   
     414                   
     415 000000ba 761F!      MOVW   DP,#_OSTCBHighRdy
         000000bb 0000 
     416 000000bc 8A00!      MOVL   XAR4,@_OSTCBHighRdy                 ; |165| 
     417 000000bd 8AC4       MOVL   XAR4,*+XAR4[0]              ; |165| 
     418                               
     419                                  
     420                    ;模拟中断      
     421 000000be 22A9        PUSH AL
     422                   
     423                                  
     424 000000bf D004        MOVB XAR0,#4     
     425 000000c0 9294        MOV  AL,*+XAR4[AR0]                       ;得到 ST0                                    
     426 000000c1 D005        MOVB XAR0,#5     
     427 000000c2 9394        MOV  AH,*+XAR4[AR0]                       ;得到 T      
     428 000000c3 1EBD        PUSH ACC
     429                   
     430                          
     431 000000c4 D006        MOVB XAR0,#6     
     432 000000c5 9294        MOV  AL,*+XAR4[AR0]                       ;得到 AL
     433 000000c6 D007        MOVB XAR0,#7     
     434 000000c7 9394        MOV  AH,*+XAR4[AR0]                       ;得到 AH
     435 000000c8 1EBD        PUSH ACC            
     436                          
     437 000000c9 D008        MOVB XAR0,#8     
     438 000000ca 9294        MOV  AL,*+XAR4[AR0]                       ;得到 PL            
     439 000000cb D009        MOVB XAR0,#9     
     440 000000cc 9394        MOV  AH,*+XAR4[AR0]                       ;得到 PH
     441 000000cd 1EBD        PUSH ACC
     442                          
     443                          
     444 000000ce D00A        MOVB XAR0,#10     
     445 000000cf 9294        MOV  AL,*+XAR4[AR0]                       ;得到 AR0            
     446 000000d0 D00B        MOVB XAR0,#11     
TMS320C2000 COFF Assembler PC Version 3.03 Sat Aug 02 12:26:42 2003

Tools Copyright (c) 1996-2002 Texas Instruments Incorporated
OS_CPU_A.ASM                                                         PAGE   10

     447 000000d1 9394        MOV  AH,*+XAR4[AR0]                       ;得到 AR1
     448 000000d2 1EBD        PUSH ACC
     449                          
     450 000000d3 D00C        MOVB XAR0,#12     
     451 000000d4 9294        MOV  AL,*+XAR4[AR0]                       ;得到 ST1      
     452 000000d5 D00D        MOVB XAR0,#13     
     453 000000d6 9394        MOV  AH,*+XAR4[AR0]                       ;得到 DP
     454 000000d7 1EBD        PUSH ACC                  
     455                    
     456 000000d8 D00E        MOVB XAR0,#14     
     457 000000d9 9294        MOV  AL,*+XAR4[AR0]                       ;得到 IER            
     458 000000da D00F        MOVB XAR0,#15     
     459 000000db 9394        MOV  AH,*+XAR4[AR0]                       ;得到 DBGSTAT
     460 000000dc 1EBD        PUSH ACC
     461                        
     462 000000dd 93D4        MOV     AH,*+XAR4[2]              ;task addr
     463 000000de 92DC        MOV     AL,*+XAR4[3]      
     464 000000df 1EBD        PUSH    ACC               
     465              ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
     466              
     467              
     468              ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
     469              ;恢复的RPC       
     470              
     471 000000e0 D011           MOVB XAR0,#17     
     472 000000e1 9794           MOV   *+XAR4[AR0],AH            
     473 000000e2 D010           MOVB XAR0,#16     
     474 000000e3 9694           MOV   *+XAR4[AR0],AL
     475 000000e4 1EBD           PUSH   ACC
     476 000000e5 0007           POP RPC         
     477                       
     478              ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@                
     479 000000e6 7602        IRET
     480              
     481              ;*********************************************************************************************************
     482              ;                                            HANDLE TICK ISR
     483              ;
     484              ; Description: This function is called 199.99 times per second or, 11 times faster than the normal DOS
     485              ;              tick rate of 18.20648 Hz.  Thus every 11th time, the normal DOS tick handler is called.
     486              ;              This is called chaining.  10 times out of 11, however, the interrupt controller on the PC
     487              ;              must be cleared to allow for the next interrupt.
     488              ;
     489              ; Arguments  : none
     490              ;
     491              ; Returns    : none
     492              ;
     493              ; Note(s)    : The following C-like pseudo-code describe the operation being performed in the code below.
     494              ;
     495              ;              Save all registers on the current task's stack;
     496              ;              OSIntNesting++;
     497              ;              OSTickDOSCtr--;
     498              ;              if (OSTickDOSCtr == 0) {
     499              ;                  INT 81H;               Chain into DOS every 54.925 mS 
     500              ;                                         (Interrupt will be cleared by DOS)
     501              ;              } else {
TMS320C2000 COFF Assembler PC Version 3.03 Sat Aug 02 12:26:42 2003

Tools Copyright (c) 1996-2002 Texas Instruments Incorporated
OS_CPU_A.ASM                                                         PAGE   11

     502              ;                  Send EOI to PIC;       Clear tick interrupt by sending an End-Of-Interrupt to the 8259
     503              ;                                         PIC (Priority Interrupt Controller)
     504              ;              }
     505              ;              OSTimeTick();              Notify uC/OS-II that a tick has occured       
     506              ;              OSIntExit();               Notify uC/OS-II about end of ISR
     507              ;              Restore all registers that were save on the current task's stack;
     508              ;              Return from Interrupt;
     509              ;*********************************************************************************************************
     510              ;
     511 000000e7       _OSTickISR:
     512                      .ref _OSTimeTick
     513                  .ref _OSIntNesting
     514                  .ref _OSIntExit
     515                  .ref _PieCtrlRegs
     516                      .global _OSTickISR      
     517              
     518                      
     519 000000e7 761F!         MOVW      DP,#_PieCtrlRegs+2
         000000e8 0000 
     520 000000e9 1802!     AND        @_PieCtrlRegs+2,#0xffBF ; |297| 
         000000ea FFBF 
     521                      
     522 000000eb 762F          AND   IFR,#0
         000000ec 0000 
     523 000000ed 761F!         MOVW      DP,#_OSIntNesting     ;提示uc/OS-II 进入中断
         000000ee 0000 
     524 000000ef 0A00!     INC       @_OSIntNesting        ; |168| 
     525                  
     526                  
     527 000000f0 7640!     LCR _OSTimeTick
         000000f1 0000 
     528 000000f2 7640!     LCR _OSIntExit      
         000000f3 0000 
     529                  
     530 000000f4 761F!     MOVW      DP,#_PieCtrlRegs+2
         000000f5 0000 
     531 000000f6 1A02!     OR        @_PieCtrlRegs+2,#0x0040 ; |297| 
         000000f7 0040 
     532                  
     533              
     534 000000f8 7602          IRET    
     535                      .end

No Assembly Errors, No Assembly Warnings

⌨️ 快捷键说明

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