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

📄 os_cpu.lis

📁 非剥夺型占先式minOS_iccavr avr单片机 icc编译环境
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00A8 BF93              PUSH R27
 00AA AF93              PUSH R26
 00AC 0F92              PUSH R0
 00AE 1F92              PUSH R1
 00B0 2F92              PUSH R2
 00B2 3F92              PUSH R3
 00B4 4F92              PUSH R4
 00B6 5F92              PUSH R5
 00B8 FDB7              IN R31,0x3d
 00BA F0930000          STS _SaveSP,R31
 00BE FEB7              IN R31,0x3e
 00C0 F0930100          STS _SaveSP+1,R31
                         
 00C4                   .dbline 70
                       ;         "PUSH R30\n"
                       ;         "PUSH R29\n"
                       ;         "PUSH R28\n"
                       ;         "PUSH R27\n"
                       ;         "PUSH R26\n"
                       ; 
                       ;         "PUSH R0\n"
                       ;         "PUSH R1\n"
                       ;         "PUSH R2\n"
                       ;         "PUSH R3\n"
                       ;         "PUSH R4\n"
                       ;         "PUSH R5\n"
                       ; 
                       ;         "IN R31,0x3d\n"     //Save SPL
                       ;         "STS %SaveSP,R31\n"
                       ;         "IN R31,0x3e\n"     //Save SPH 
                       ;         "STS %SaveSP+1,R31\n"
                       ;     
                       ;     );
                       ; 
                       ;     OSTCB[OS_TASK_CrtPrio].OSStkTop = SaveSP; //Save the current task top.
 00C4 20910000          lds R18,_OS_TASK_CrtPrio
 00C8 3327              clr R19
 00CA 05E0              ldi R16,5
 00CC 10E0              ldi R17,0
 00CE 00D0              rcall mpy16s
 00D0 E02F              mov R30,R16
 00D2 F12F              mov R31,R17
 00D4 80E0              ldi R24,<_OSTCB
 00D6 90E0              ldi R25,>_OSTCB
 00D8 E80F              add R30,R24
 00DA F91F              adc R31,R25
 00DC 30900100          lds R3,_SaveSP+1
 00E0 20900000          lds R2,_SaveSP
 00E4 2082              std z+0,R2
 00E6 3182              std z+1,R3
 00E8                   .dbline 72
                       ; 
                       ;     OS_TASK_CrtPrio=OS_TASK_HighPri;
 00E8 20900000          lds R2,_OS_TASK_HighPri
 00EC 20920000          sts _OS_TASK_CrtPrio,R2
 00F0                   .dbline 75
                       ; 
                       ; // Load context from the stack
                       ;     SaveSP = OSTCB[OS_TASK_CrtPrio].OSStkTop;   //load the high priority task task top.
 00F0 222D              mov R18,R2
 00F2 3327              clr R19
 00F4 05E0              ldi R16,5
 00F6 10E0              ldi R17,0
 00F8 00D0              rcall mpy16s
 00FA E02F              mov R30,R16
 00FC F12F              mov R31,R17
 00FE 80E0              ldi R24,<_OSTCB
 0100 90E0              ldi R25,>_OSTCB
 0102 E80F              add R30,R24
 0104 F91F              adc R31,R25
 0106 2080              ldd R2,z+0
 0108 3180              ldd R3,z+1
 010A 30920100          sts _SaveSP+1,R3
 010E 20920000          sts _SaveSP,R2
 0112                   .dbline 77
                       ; 
                       ;     asm("CLI\n"                     
 0112 F894              CLI
 0114 F0910000          LDS R31,_SaveSP
 0118 FDBF              OUT 0x3d,R31
 011A F0910100          LDS R31,_SaveSP+1
 011E FEBF              OUT 0x3e,R31
 0120 7894              SEI
 0122 5F90              POP R5
 0124 4F90              POP R4
 0126 3F90              POP R3
 0128 2F90              POP R2
 012A 1F90              POP R1
 012C 0F90              POP R0
 012E AF91              POP R26
 0130 BF91              POP R27
 0132 CF91              POP R28
 0134 DF91              POP R29
 0136 EF91              POP R30
 0138 FF91              POP R31
                         
 013A                   .dbline -2
 013A                   .dbline 98
                       ;         "LDS R31,%SaveSP\n" 
                       ;         "OUT 0x3d,R31\n"
                       ;         "LDS R31,%SaveSP+1\n" 
                       ;         "OUT 0x3e,R31\n"
                       ;         "SEI\n"
                       ;         
                       ;         "POP R5\n"
                       ;         "POP R4\n"
                       ;         "POP R3\n"
                       ;         "POP R2\n"
                       ;         "POP R1\n"
                       ;         "POP R0\n"
                       ;         
                       ;         "POP R26\n"
                       ;         "POP R27\n"
                       ;         "POP R28\n"
                       ;         "POP R29\n"
                       ;         "POP R30\n"
                       ;         "POP R31\n"
                       ;     );
                       ; }
 013A                 L5:
 013A                   .dbline 0 ; func end
 013A 0895              ret
 013C                   .dbfunc s OSInitSP _OSInitSP fI
                         .even
 013C                 _OSInitSP::
 013C                   .dbline -1
 013C                   .dbline 101
                       ; //Initial CPU SP for main() function stack.
                       ; void OSInitSP(void)
                       ; {
 013C                   .dbline 102
                       ;     SaveSP = (INT16U)&TASK_main_PrioStk[MAX_STK_SIZE-1];    //load the high priority task task top.
 013C 80E0              ldi R24,<_TASK_main_PrioStk+47
 013E 90E0              ldi R25,>_TASK_main_PrioStk+47
 0140 90930100          sts _SaveSP+1,R25
 0144 80930000          sts _SaveSP,R24
 0148                   .dbline 103
                       ;     asm("POP R0\n"
 0148 0F90              POP R0
 014A 1F90              POP R1
 014C F0910000          LDS R31,_SaveSP
 0150 FDBF              OUT 0x3d,R31
 0152 F0910100          LDS R31,_SaveSP+1
 0156 FEBF              OUT 0x3e,R31
 0158 1F92              PUSH R1
 015A 0F92              PUSH R0
                         
 015C                   .dbline -2
 015C                   .dbline 112
                       ;         "POP R1\n"
                       ;         "LDS R31,%SaveSP\n" 
                       ;         "OUT 0x3d,R31\n"
                       ;         "LDS R31,%SaveSP+1\n" 
                       ;         "OUT 0x3e,R31\n"
                       ;         "PUSH R1\n"
                       ;         "PUSH R0\n"
                       ;     );
                       ; }
 015C                 L6:
 015C                   .dbline 0 ; func end
 015C 0895              ret
 015E                   .dbfunc s OSTickISR _OSTickISR fI
                         .even
 015E                 _OSTickISR::
 015E 00D0              rcall push_lset
 0160                   .dbline -1
 0160                   .dbline 116
                       ; 
                       ; //OS Time Tick Interrupt,OS 时钟节拍中断.
                       ; void OSTickISR(void) 
                       ; {
 0160                   .dbline 117
                       ;     TCNT0  = T0_TCNT0;   // (256 - (T0_RELOAD & 0xff))
 0160 8AE7              ldi R24,122
 0162 82BF              out 0x32,R24
 0164                   .dbline 118
                       ;     AppTickHook();     //Hook file for a time tick --- 用户每个时间节拍的钩子函数

⌨️ 快捷键说明

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