📄 os_cpu.lst
字号:
188 .LM21:
189 006c 3F92 PUSH R3
63:C:/WinAVR/minOS_WinAVR/os_cpu.c **** asm("PUSH R4");
191 .LM22:
192 006e 4F92 PUSH R4
64:C:/WinAVR/minOS_WinAVR/os_cpu.c **** asm("PUSH R5");
194 .LM23:
195 0070 5F92 PUSH R5
65:C:/WinAVR/minOS_WinAVR/os_cpu.c ****
66:C:/WinAVR/minOS_WinAVR/os_cpu.c **** asm("IN R31,0x3d");
197 .LM24:
198 0072 FDB7 IN R31,0x3d
67:C:/WinAVR/minOS_WinAVR/os_cpu.c **** asm("STS SaveSP,R31");
200 .LM25:
201 0074 F093 0000 STS SaveSP,R31
68:C:/WinAVR/minOS_WinAVR/os_cpu.c **** asm("IN R31,0x3e");
203 .LM26:
204 0078 FEB7 IN R31,0x3e
69:C:/WinAVR/minOS_WinAVR/os_cpu.c **** asm("STS SaveSP+1,R31");
206 .LM27:
207 007a F093 0000 STS SaveSP+1,R31
70:C:/WinAVR/minOS_WinAVR/os_cpu.c ****
71:C:/WinAVR/minOS_WinAVR/os_cpu.c **** OSTCB[OS_TASK_CrtPrio].OSStkTop = SaveSP; //Save the current task top.
209 .LM28:
210 /* #NOAPP */
211 007e 8091 0000 lds r24,OS_TASK_CrtPrio
212 0082 9927 clr r25
213 0084 20E0 ldi r18,lo8(OSTCB)
214 0086 30E0 ldi r19,hi8(OSTCB)
215 0088 F92F mov r31,r25
216 008a E82F mov r30,r24
217 008c EE0F lsl r30
218 008e FF1F rol r31
219 0090 EE0F lsl r30
220 0092 FF1F rol r31
221 0094 E80F add r30,r24
222 0096 F91F adc r31,r25
223 0098 E20F add r30,r18
224 009a F31F adc r31,r19
225 009c 8091 0000 lds r24,SaveSP
226 00a0 9091 0000 lds r25,(SaveSP)+1
227 00a4 8083 st Z,r24
228 00a6 9183 std Z+1,r25
72:C:/WinAVR/minOS_WinAVR/os_cpu.c ****
73:C:/WinAVR/minOS_WinAVR/os_cpu.c **** OS_TASK_CrtPrio=OS_TASK_HighPri;
230 .LM29:
231 00a8 8091 0000 lds r24,OS_TASK_HighPri
232 00ac 8093 0000 sts OS_TASK_CrtPrio,r24
74:C:/WinAVR/minOS_WinAVR/os_cpu.c ****
75:C:/WinAVR/minOS_WinAVR/os_cpu.c **** // Load context from the stack
76:C:/WinAVR/minOS_WinAVR/os_cpu.c **** SaveSP = OSTCB[OS_TASK_CrtPrio].OSStkTop; //load the high priority task task top.
234 .LM30:
235 00b0 9927 clr r25
236 00b2 F92F mov r31,r25
237 00b4 E82F mov r30,r24
238 00b6 EE0F lsl r30
239 00b8 FF1F rol r31
240 00ba EE0F lsl r30
241 00bc FF1F rol r31
242 00be E80F add r30,r24
243 00c0 F91F adc r31,r25
244 00c2 E20F add r30,r18
245 00c4 F31F adc r31,r19
246 00c6 8081 ld r24,Z
247 00c8 9181 ldd r25,Z+1
248 00ca 9093 0000 sts (SaveSP)+1,r25
249 00ce 8093 0000 sts SaveSP,r24
77:C:/WinAVR/minOS_WinAVR/os_cpu.c ****
78:C:/WinAVR/minOS_WinAVR/os_cpu.c **** asm("CLI");
251 .LM31:
252 /* #APP */
253 00d2 F894 CLI
79:C:/WinAVR/minOS_WinAVR/os_cpu.c **** asm("LDS R31,SaveSP");
255 .LM32:
256 00d4 F091 0000 LDS R31,SaveSP
80:C:/WinAVR/minOS_WinAVR/os_cpu.c **** asm("OUT 0x3d,R31");
258 .LM33:
259 00d8 FDBF OUT 0x3d,R31
81:C:/WinAVR/minOS_WinAVR/os_cpu.c **** asm("LDS R31,SaveSP+1");
261 .LM34:
262 00da F091 0000 LDS R31,SaveSP+1
82:C:/WinAVR/minOS_WinAVR/os_cpu.c **** asm("OUT 0x3e,R31");
264 .LM35:
265 00de FEBF OUT 0x3e,R31
83:C:/WinAVR/minOS_WinAVR/os_cpu.c **** asm("SEI");
267 .LM36:
268 00e0 7894 SEI
84:C:/WinAVR/minOS_WinAVR/os_cpu.c ****
85:C:/WinAVR/minOS_WinAVR/os_cpu.c **** asm("POP R5");
270 .LM37:
271 00e2 5F90 POP R5
86:C:/WinAVR/minOS_WinAVR/os_cpu.c **** asm("POP R4");
273 .LM38:
274 00e4 4F90 POP R4
87:C:/WinAVR/minOS_WinAVR/os_cpu.c **** asm("POP R3");
276 .LM39:
277 00e6 3F90 POP R3
88:C:/WinAVR/minOS_WinAVR/os_cpu.c **** asm("POP R2");
279 .LM40:
280 00e8 2F90 POP R2
89:C:/WinAVR/minOS_WinAVR/os_cpu.c **** asm("POP R1");
282 .LM41:
283 00ea 1F90 POP R1
90:C:/WinAVR/minOS_WinAVR/os_cpu.c **** asm("POP R0");
285 .LM42:
286 00ec 0F90 POP R0
91:C:/WinAVR/minOS_WinAVR/os_cpu.c ****
92:C:/WinAVR/minOS_WinAVR/os_cpu.c **** asm("POP R26");
288 .LM43:
289 00ee AF91 POP R26
93:C:/WinAVR/minOS_WinAVR/os_cpu.c **** asm("POP R27");
291 .LM44:
292 00f0 BF91 POP R27
94:C:/WinAVR/minOS_WinAVR/os_cpu.c **** asm("POP R28");
294 .LM45:
295 00f2 CF91 POP R28
95:C:/WinAVR/minOS_WinAVR/os_cpu.c **** asm("POP R29");
297 .LM46:
298 00f4 DF91 POP R29
96:C:/WinAVR/minOS_WinAVR/os_cpu.c **** asm("POP R30");
300 .LM47:
301 00f6 EF91 POP R30
97:C:/WinAVR/minOS_WinAVR/os_cpu.c **** asm("POP R31");
303 .LM48:
304 00f8 FF91 POP R31
305 /* #NOAPP */
306 /* epilogue: frame size=0 */
307 00fa 0895 ret
308 /* epilogue end (size=1) */
309 /* function OSCtxSw size 111 (110) */
312 .global __vector_7
314 __vector_7:
98:C:/WinAVR/minOS_WinAVR/os_cpu.c ****
99:C:/WinAVR/minOS_WinAVR/os_cpu.c **** }
100:C:/WinAVR/minOS_WinAVR/os_cpu.c ****
101:C:/WinAVR/minOS_WinAVR/os_cpu.c **** //OS Time Tick Interrupt,OS 时钟节拍中断.
102:C:/WinAVR/minOS_WinAVR/os_cpu.c **** INTERRUPT(SIG_OVERFLOW0)
103:C:/WinAVR/minOS_WinAVR/os_cpu.c **** {
316 .LM49:
317 /* prologue: frame size=0 */
318 00fc 7894 sei
319 00fe 1F92 push __zero_reg__
320 0100 0F92 push __tmp_reg__
321 0102 0FB6 in __tmp_reg__,__SREG__
322 0104 0F92 push __tmp_reg__
323 0106 1124 clr __zero_reg__
324 0108 2F93 push r18
325 010a 3F93 push r19
326 010c 4F93 push r20
327 010e 5F93 push r21
328 0110 6F93 push r22
329 0112 7F93 push r23
330 0114 8F93 push r24
331 0116 9F93 push r25
332 0118 AF93 push r26
333 011a BF93 push r27
334 011c EF93 push r30
335 011e FF93 push r31
336 /* prologue end (size=18) */
104:C:/WinAVR/minOS_WinAVR/os_cpu.c **** TCNT0 = T0_TCNT0; // (256 - (T0_RELOAD & 0xff))
338 .LM50:
339 0120 8AE7 ldi r24,lo8(122)
340 0122 82BF out 82-0x20,r24
105:C:/WinAVR/minOS_WinAVR/os_cpu.c **** #if OS_TICK_HOOK_EN>0
106:C:/WinAVR/minOS_WinAVR/os_cpu.c **** // AppTickHook(); //Hook file for a time tick --- 用户每个时间节拍的钩子函数
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -