os_time.lst

来自「atmega单片机用的ucos系统 占用内存适中 是atmega单片机合适的操作」· LST 代码 · 共 400 行 · 第 1/2 页

LST
400
字号
 205 0080 90E0      		ldi r25,hi8(84)
 206 0082 76C0      		rjmp .L4
 207               	.L5:
  97:OSsrc/os_time.c ****                 }
  98:OSsrc/os_time.c ****             }
  99:OSsrc/os_time.c ****         }
 100:OSsrc/os_time.c ****     }
 101:OSsrc/os_time.c ****     if (minutes > 59) {
 209               	.LM17:
 210 0084 9BE3      		ldi r25,lo8(59)
 211 0086 9A15      		cp r25,r10
 212 0088 18F4      		brsh .L9
 102:OSsrc/os_time.c ****         return (OS_TIME_INVALID_MINUTES);        /* Validate arguments to be within range          
 214               	.LM18:
 215 008a 81E5      		ldi r24,lo8(81)
 216 008c 90E0      		ldi r25,hi8(81)
 217 008e 70C0      		rjmp .L4
 218               	.L9:
 103:OSsrc/os_time.c ****     }
 104:OSsrc/os_time.c ****     if (seconds > 59) {
 220               	.LM19:
 221 0090 ABE3      		ldi r26,lo8(59)
 222 0092 AD15      		cp r26,r13
 223 0094 18F4      		brsh .L10
 105:OSsrc/os_time.c ****         return (OS_TIME_INVALID_SECONDS);
 225               	.LM20:
 226 0096 82E5      		ldi r24,lo8(82)
 227 0098 90E0      		ldi r25,hi8(82)
 228 009a 6AC0      		rjmp .L4
 229               	.L10:
 106:OSsrc/os_time.c ****     }
 107:OSsrc/os_time.c ****     if (milli > 999) {
 231               	.LM21:
 232 009c B3E0      		ldi r27,hi8(1000)
 233 009e C83E      		cpi r28,lo8(1000)
 234 00a0 DB07      		cpc r29,r27
 235 00a2 18F0      		brlo .L11
 108:OSsrc/os_time.c ****         return (OS_TIME_INVALID_MILLI);
 237               	.LM22:
 238 00a4 83E5      		ldi r24,lo8(83)
 239 00a6 90E0      		ldi r25,hi8(83)
 240 00a8 63C0      		rjmp .L4
 241               	.L11:
 109:OSsrc/os_time.c ****     }
 110:OSsrc/os_time.c **** #endif
 111:OSsrc/os_time.c ****                                                  /* Compute the total number of clock ticks require
 112:OSsrc/os_time.c ****                                                  /* .. (rounded to the nearest tick)               
 113:OSsrc/os_time.c ****     ticks = ((INT32U)hours * 3600L + (INT32U)minutes * 60L + (INT32U)seconds) * OS_TICKS_PER_SEC
 243               	.LM23:
 244 00aa 9927      		clr r25
 245 00ac AA27      		clr r26
 246 00ae BB27      		clr r27
 247 00b0 BC01      		movw r22,r24
 248 00b2 CD01      		movw r24,r26
 249 00b4 20E1      		ldi r18,lo8(3600)
 250 00b6 3EE0      		ldi r19,hi8(3600)
 251 00b8 40E0      		ldi r20,hlo8(3600)
 252 00ba 50E0      		ldi r21,hhi8(3600)
 253 00bc 0E94 0000 		call __mulsi3
 254 00c0 7B01      		movw r14,r22
 255 00c2 8C01      		movw r16,r24
 256 00c4 8A2D      		mov r24,r10
 257 00c6 9927      		clr r25
 258 00c8 AA27      		clr r26
 259 00ca BB27      		clr r27
 260 00cc BC01      		movw r22,r24
 261 00ce CD01      		movw r24,r26
 262 00d0 2CE3      		ldi r18,lo8(60)
 263 00d2 30E0      		ldi r19,hi8(60)
 264 00d4 40E0      		ldi r20,hlo8(60)
 265 00d6 50E0      		ldi r21,hhi8(60)
 266 00d8 0E94 0000 		call __mulsi3
 267 00dc DC01      		movw r26,r24
 268 00de CB01      		movw r24,r22
 269 00e0 E80E      		add r14,r24
 270 00e2 F91E      		adc r15,r25
 271 00e4 0A1F      		adc r16,r26
 272 00e6 1B1F      		adc r17,r27
 273 00e8 ED0C      		add r14,r13
 274 00ea F11C      		adc r15,__zero_reg__
 275 00ec 011D      		adc r16,__zero_reg__
 276 00ee 111D      		adc r17,__zero_reg__
 277 00f0 C801      		movw r24,r16
 278 00f2 B701      		movw r22,r14
 279 00f4 24E6      		ldi r18,lo8(100)
 280 00f6 30E0      		ldi r19,hi8(100)
 281 00f8 40E0      		ldi r20,hlo8(100)
 282 00fa 50E0      		ldi r21,hhi8(100)
 283 00fc 0E94 0000 		call __mulsi3
 284 0100 7B01      		movw r14,r22
 285 0102 8C01      		movw r16,r24
 286 0104 CE01      		movw r24,r28
 287 0106 AA27      		clr r26
 288 0108 BB27      		clr r27
 289 010a BC01      		movw r22,r24
 290 010c CD01      		movw r24,r26
 291 010e 0E94 0000 		call __mulsi3
 292 0112 DC01      		movw r26,r24
 293 0114 CB01      		movw r24,r22
 294 0116 8C50      		subi r24,lo8(-(500))
 295 0118 9E4F      		sbci r25,hi8(-(500))
 296 011a AF4F      		sbci r26,hlo8(-(500))
 297 011c BF4F      		sbci r27,hhi8(-(500))
 298 011e BC01      		movw r22,r24
 299 0120 CD01      		movw r24,r26
 300 0122 28EE      		ldi r18,lo8(1000)
 301 0124 33E0      		ldi r19,hi8(1000)
 302 0126 40E0      		ldi r20,hlo8(1000)
 303 0128 50E0      		ldi r21,hhi8(1000)
 304 012a 0E94 0000 		call __udivmodsi4
 305 012e E20E      		add r14,r18
 306 0130 F31E      		adc r15,r19
 307 0132 041F      		adc r16,r20
 308 0134 151F      		adc r17,r21
 114:OSsrc/os_time.c ****           + OS_TICKS_PER_SEC * ((INT32U)milli + 500L / OS_TICKS_PER_SEC) / 1000L;
 115:OSsrc/os_time.c ****     loops = (INT16U)(ticks / 65536L);            /* Compute the integral number of 65536 tick delay
 310               	.LM24:
 311 0136 5801      		movw r10,r16
 312 0138 CC24      		clr r12
 313 013a DD24      		clr r13
 314 013c E501      		movw r28,r10
 116:OSsrc/os_time.c ****     ticks = ticks % 65536L;                      /* Obtain  the fractional number of ticks         
 316               	.LM25:
 317 013e 8FEF      		ldi r24,lo8(65535)
 318 0140 9FEF      		ldi r25,hi8(65535)
 319 0142 A0E0      		ldi r26,hlo8(65535)
 320 0144 B0E0      		ldi r27,hhi8(65535)
 321 0146 E822      		and r14,r24
 322 0148 F922      		and r15,r25
 323 014a 0A23      		and r16,r26
 324 014c 1B23      		and r17,r27
 117:OSsrc/os_time.c ****     OSTimeDly((INT16U)ticks);
 326               	.LM26:
 327 014e C701      		movw r24,r14
 328 0150 0E94 0000 		call OSTimeDly
 118:OSsrc/os_time.c ****     while (loops > 0) {
 119:OSsrc/os_time.c ****         OSTimeDly((INT16U)32768u);
 120:OSsrc/os_time.c ****         OSTimeDly((INT16U)32768u);
 121:OSsrc/os_time.c ****         loops--;
 330               	.LM27:
 331 0154 AB28      		or r10,r11
 332 0156 51F0      		breq .L16
 333               	.L14:
 335               	.LM28:
 336 0158 80E0      		ldi r24,lo8(-32768)
 337 015a 90E8      		ldi r25,hi8(-32768)
 338 015c 0E94 0000 		call OSTimeDly
 340               	.LM29:
 341 0160 80E0      		ldi r24,lo8(-32768)
 342 0162 90E8      		ldi r25,hi8(-32768)
 343 0164 0E94 0000 		call OSTimeDly
 345               	.LM30:
 346 0168 2197      		sbiw r28,1
 347 016a B1F7      		brne .L14
 348               	.L16:
 122:OSsrc/os_time.c ****     }
 123:OSsrc/os_time.c ****     return (OS_NO_ERR);
 350               	.LM31:
 351 016c 80E0      		ldi r24,lo8(0)
 352 016e 90E0      		ldi r25,hi8(0)
 353               	.L4:
 354               	/* epilogue: frame size=0 */
 355 0170 DF91      		pop r29
 356 0172 CF91      		pop r28
 357 0174 1F91      		pop r17
 358 0176 0F91      		pop r16
 359 0178 FF90      		pop r15
 360 017a EF90      		pop r14
 361 017c DF90      		pop r13
 362 017e CF90      		pop r12
 363 0180 BF90      		pop r11
 364 0182 AF90      		pop r10
 365 0184 0895      		ret
 366               	/* epilogue end (size=11) */
 367               	/* function OSTimeDlyHMSM size 154 (133) */
 373               	.Lscope1:
 374               		.text
 376               	Letext:
 377               	/* File "OSsrc/os_time.c": code  201 = 0x00c9 ( 175), prologues  12, epilogues  14 */
DEFINED SYMBOLS
                            *ABS*:00000000 os_time.c
                            *ABS*:0000003f __SREG__
                            *ABS*:0000003e __SP_H__
                            *ABS*:0000003d __SP_L__
                            *ABS*:00000000 __tmp_reg__
                            *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccqIaaaa.s:87     .text:00000000 OSTimeDly
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccqIaaaa.s:168    .text:00000054 OSTimeDlyHMSM
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccqIaaaa.s:376    .text:00000186 Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
OSTCBCur
OSRdyTbl
OSRdyGrp
OS_Sched
__mulsi3
__udivmodsi4

⌨️ 快捷键说明

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