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

📄 os_cpu_c.lst

📁 ucOSII在kit-conC167评估板上的移植。
💻 LST
📖 第 1 页 / 共 4 页
字号:
                   620   _OSTimeTickHook PROC    FAR
                   621           ?SYMB   '',00H,95,0
                   622   ; Locals:
                   623   ; 
                   624   ; CSEs:
                   625   ; 
                   626   ; os_cpu_c.c  167       }
                   627           ?LINE   167
013E 9830          628           MOV     R3,[R0+]
0140 9820          629           MOV     R2,[R0+]
0142 D120          630           ATOMIC  #03h
0144 ECF3     3    631           PUSH    R3
0146 ECF2     2    632           PUSH    R2
0148 DB00     1    633           RETS
                   634   _OSTimeTickHook ENDP
               R   635           ?SYMB   '',$,17,167
                   636   ; os_cpu_c.c  168       
                   637   ; os_cpu_c.c  169       
                   638   ; os_cpu_c.c  170       #endif
                   639   ; os_cpu_c.c  171       
                   640   ; os_cpu_c.c  172       /*
                   641   ; os_cpu_c.c  173       ***********************************************************************************
                         **********************
                   642   ; os_cpu_c.c  174       *                                        BUILD A TASK'S STACK AREA
                   643   ; os_cpu_c.c  175       *
                   644   ; os_cpu_c.c  176       * Description: This function is called by OSTaskStkInit to initialise the
                   645   ; os_cpu_c.c  177       *              stack frame of the task being created.
                   646   ; os_cpu_c.c  178       *
                   647   ; os_cpu_c.c  179       * Arguments  : page          is a pointer to the current task user stack page.
                   648   ; os_cpu_c.c  180       *
                   649   ; os_cpu_c.c  181       *              offset        is a pointer to the current task user stack offset.
                   650   ; os_cpu_c.c  182       *
                   651   ; os_cpu_c.c  183       *              datapag       is a pointer to a user supplied data area page when th
                         e task first executes.
                   652   ; os_cpu_c.c  184       *
                   653   ; os_cpu_c.c  185       *              datapof       is a pointer to a user supplied data area offset when 
                         the task first executes.
                   654   ; os_cpu_c.c  186       *
                   655   ; os_cpu_c.c  187       * Returns    : None
                   656   ; os_cpu_c.c  188       ***********************************************************************************
                         **********************
                   657   ; os_cpu_c.c  189       */
                   658   ; os_cpu_c.c  190       void OSTaskBuildStk (INT16U page, INT16U offset, INT16U datapag, INT16U datapof)
                   659   ; os_cpu_c.c  191       {
                   660           ?LINE   191
                   661           PUBLIC  _OSTaskBuildStk
               R   662           ?SYMB   'OSTaskBuildStk',_OSTaskBuildStk,37,1
                   663           ?SYMB   '',191,8,34
                   664   _OSTaskBuildStk PROC    FAR
                   665           ?SYMB   '',00H,95,0
                   666   ; @w1 = R12
C166/ST10 assembler v6.0 r2 SN00082920-083 (c) 1998 TASKING, Inc.                       Date: Dec  5 2000  Time: 10:02:44  Page:  14
os_cpu_c

 LOC CODE        LINE   SOURCELINE

                   667   ; @w2 = R13
                   668   ; @w3 = R14
                   669   ; @w4 = R15
                   670   ; Locals:
                   671   ; 
                   672   ; CSEs:
                   673   ;     offset = R13
                   674   ;     datapof = R15
                   675   ;     page = R12
                   676   ;     datapag = R14
                   677   ; 
                   678           ?SYMB   'page',4,99,272
                   679           ?SYMB   'offset',3,99,272
                   680           ?SYMB   'datapag',2,99,272
                   681           ?SYMB   'datapof',1,99,272
               R   682           ?SYMB   'R12',$,100,4
               R   683           ?SYMB   'R13',$,100,3
               R   684           ?SYMB   'R14',$,100,2
               R   685           ?SYMB   'R15',$,100,1
               R   686           ?SYMB   '',$,102,4
               R   687           ?SYMB   '',$,102,3
               R   688           ?SYMB   '',$,102,2
               R   689           ?SYMB   '',$,102,1
                   690   ; os_cpu_c.c  192       #pragma asm(@1=page, @2=offset, @3=datapag, @4=datapof)
                   691           ?LINE   192
                   692           ?LINE   265
                   693   ;                                           ; SAVE USED REGISTERS
014A ECF1          694       PUSH   R1
014C ECF2          695       PUSH   R2
014E ECF3          696       PUSH   R3
0150 ECF4          697       PUSH   R4
0152 ECFA          698       PUSH   R10
0154 EC01          699       PUSH   DPP1
                   700   
                   701   ;                                           ; LOAD INITIAL TASK STACK.
0156 F04D          702       MOV    R4,R13                            ; Get pointer to Task Stack
0158 F6FC02FE      703       MOV    DPP1,R12                          ; Task Stack DPP1:R4
015C F02E          704       MOV    R2,R14                            ; Page pointer to passed parameter
015E F03F          705       MOV    R3,R15                            ; Offset pointer to passed parameter
                   706   
                   707   ;                                           ; ADJUST THE TASK USER OFFSET POINTER
0160 06F40A00      708       ADD    R4,#10                           ; Point at user stack offset
0164 A814          709       MOV    R1,[R4]                          ; Get initial user offset pointer
0166 26F12C00      710       SUB    R1,#2Ch                          ; adjust user offset pointer to save task registers
016A B814          711       MOV    [R4],R1                          ; Save true user offset pointer
016C F04D          712       MOV    R4,R13                            ; Reload current stack pointer
                   713   
                   714   ;                                           ; INITIALISE REGISTER VALUES
016E 2011          715       SUB    R1,R1                            ; Set R1 to zero
0170 E6FA1111      716       MOV    R10,#01111h                      ; R1 initialised to 1111
0174 88A4          717       MOV    [-R4],R10
0176 E6FA2222      718       MOV    R10,#02222h                      ; R2 initialised to 2222
017A 88A4          719       MOV    [-R4],R10
017C E6FA3333      720       MOV    R10,#03333h                      ; R3 initialised to 3333
0180 88A4          721       MOV    [-R4],R10
C166/ST10 assembler v6.0 r2 SN00082920-083 (c) 1998 TASKING, Inc.                       Date: Dec  5 2000  Time: 10:02:44  Page:  15
os_cpu_c

 LOC CODE        LINE   SOURCELINE

0182 E6FA4444      722       MOV    R10,#04444h                      ; R4 initialised to 4444
0186 88A4          723       MOV    [-R4],R10
0188 E6FA5555      724       MOV    R10,#05555h                      ; R5 initialised to 5555
018C 88A4          725       MOV    [-R4],R10
018E E6FA6666      726       MOV    R10,#06666h                      ; R6 initialised to 6666
0192 88A4          727       MOV    [-R4],R10
0194 E6FA7777      728       MOV    R10,#07777h                      ; R7 initialised to 7777
0198 88A4          729       MOV    [-R4],R10
019A E6FA8888      730       MOV    R10,#08888h                      ; R8 initialised to 8888
019E 88A4          731       MOV    [-R4],R10
01A0 E6FA9999      732       MOV    R10,#09999h                      ; R9 initialised to 9999
01A4 88A4          733       MOV    [-R4],R10
01A6 E6FAAAAA      734       MOV    R10,#0AAAAh                      ; R10 initialised to AAAA
01AA 88A4          735       MOV    [-R4],R10
01AC E6FABBBB      736       MOV    R10,#0BBBBh                      ; R11 initialised to BBBB
01B0 88A4          737       MOV    [-R4],R10
01B2 F0A3          738       MOV    R10,R3                           ; R12 initialised to point @ POF of pdata
01B4 88A4          739       MOV    [-R4],R10
01B6 F0A2          740       MOV    R10,R2                           ; R13 initialised to point @ PAG of pdata
01B8 88A4          741       MOV    [-R4],R10
01BA E6FAEEEE      742       MOV    R10,#0EEEEh                      ; R14 initialised to EEEE
01BE 88A4          743       MOV    [-R4],R10
01C0 E6FAFFFF      744       MOV    R10,#0FFFFh                      ; R15 initialised to FFFF
01C4 88A4          745       MOV    [-R4],R10
01C6 F2FA10FE      746       MOV    R10,CP                           ; Get the Context Pointer (CP)
01CA 88A4          747       MOV    [-R4],R10                        ; Put it on the user stack
01CC F2FA06FE      748       MOV    R10,DPP3                         ; Get Data Page Pointer 3 (DPP3)
01D0 88A4          749       MOV    [-R4],R10                        ; Put it on the user stack
01D2 F2FA04FE      750       MOV    R10,DPP2                         ; Get Data Page Pointer 2 (DPP2)
01D6 88A4          751       MOV    [-R4],R10                        ; Put it on the user stack
01D8 F2FA00FE      752       MOV    R10,DPP0                         ; Get Data Page Pointer 0 (DPP0)
01DC 88A4          753       MOV    [-R4],R10                        ; Put it on the user stack
01DE 8814          754       MOV    [-R4],R1                         ; Set Multiply/Divide Control (MDC)
01E0 8814          755       MOV    [-R4],R1                         ; Set Multiply/Divide High (MDH)
01E2 8814          756       MOV    [-R4],R1                         ; Set Multiply/Divide Low (MDL)
                   757   
                   758   ;                                           ; RESTORE USED REGISTERS
01E4 FC01          759       POP    DPP1
01E6 FCFA          760       POP    R10
01E8 FCF4          761       POP    R4
01EA FCF3          762       POP    R3
01EC FCF2          763       POP    R2
01EE FCF1          764       POP    R1
                   765   ; os_cpu_c.c  265        #pragma endasm
                   766   ; os_cpu_c.c  266       }
                   767           ?LINE   266
01F0 9830          768           MOV     R3,[R0+]
01F2 9820          769           MOV     R2,[R0+]
01F4 D120          770           ATOMIC  #03h
01F6 ECF3     3    771           PUSH    R3
01F8 ECF2     2    772           PUSH    R2
01FA DB00     1    773           RETS
                   774   _OSTaskBuildStk ENDP
               R   775           ?SYMB   '',$,17,266
                   776   ; os_cpu_c.c  267       
C166/ST10 assembler v6.0 r2 SN00082920-083 (c) 1998 TASKING, Inc.                       Date: Dec  5 2000  Time: 10:02:44  Page:  16
os_cpu_c

 LOC CODE        LINE   SOURCELINE

                   777   ; os_cpu_c.c  268       /*$PAGE*/
                   778   ; os_cpu_c.c  269       /*
                   779   ; os_cpu_c.c  270       ***********************************************************************************
                         **********************
                   780   ; os_cpu_c.c  271       *                                       INITIALIZE SYSTEM TICK
                   781   ; os_cpu_c.c  272       *
                   782   ; os_cpu_c.c  273       * Description: This function is called to initialize and configure the system inter
                         rupt tick.
                   783   ; os_cpu_c.c  274       *
                   784   ; os_cpu_c.c  275       * Arguments  : none
                   785   ; os_cpu_c.c  276       ***********************************************************************************
                         **********************
                   786   ; os_cpu_c.c  277       */
                   787   ; os_cpu_c.c  278       void  OSTickISRInit (void)
                   788   ; os_cpu_c.c  279       {
                   789           ?LINE   279
                   790           PUBLIC  _OSTickISRInit
               R   791           ?SYMB   'OSTickISRInit',_OSTickISRInit,37,1
                   792           ?SYMB   '',279,8,34
                   793   _OSTickISRInit  PROC    FAR
                   794           ?SYMB   '',00H,95,0
                   795   ; Locals:
                   796   ; 
                   797   ; CSEs:
                   798   ; 
                   799   ; os_cpu_c.c  280               IEN=1;                                  // allg. Interrupt freigeben
                   800           ?LINE   280
01FC BF88          801           BSET    IEN
                   802   ; os_cpu_c.c  281               T3CON=0x0;                              // Mode: Timer, Input Prescaler = 1
                         6 -> 26ms -> 38 times/sec,
                   803           ?LINE   281
01FE E6A10000      804           MOV     T3CON,#00h
                   805   ; os_cpu_c.c  282               T3IC=68;                                // Timer3 Prioritaet und Interrupt 
                         freigeben
                   806           ?LINE   282
0202 E6B14400      807           MOV     T3IC,#044h
                   808   ; os_cpu_c.c  283               T3R=1;                                               
                   809           ?LINE   283
0206 6FA1          810           BSET    T3R
                   811   ; os_cpu_c.c  284       }
                   812           ?LINE   284
0208 9830          813           MOV     R3,[R0+]
020A 9820          814           MOV     R2,[R0+]
020C D120          815           ATOMIC  #03h
020E ECF3     3    816           PUSH    R3
0210 ECF2     2    817           PUSH    R2
0212 DB00     1    818           RETS
                   819   _OSTickISRInit  ENDP
               R   820           ?SYMB   '',$,17,284
                   821   OS_CPU_C_1_PR   ENDS
                   822   
                   823   C166_US SECTION DATA WORD GLBUSRSTACK 'CUSTACK'
0000               824           DS      20
                   825   C166_US ENDS
                   826   
C166/ST10 assembler v6.0 r2 SN00082920-083 (c) 1998 TASKING, Inc.                       Date: Dec  5 2000  Time: 10:02:44  Page:  17
os_cpu_c

 LOC CODE        LINE   SOURCELINE

                   827   
                   828           REGDEF  R0-R15
                   829           END

total errors: 0, warnings: 0

⌨️ 快捷键说明

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