📄 os_cpu_a.lst
字号:
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 + -