os_task.ls1
来自「在51单片机上移植成功的UCOS-II操作系统源代码,包括源代码及相关注释」· LS1 代码 · 共 1,019 行 · 第 1/5 页
LS1
1,019 行
0053 2400 F 343 ADD A,#LOW (OSTCBPrioTbl)
0055 F582 344 MOV DPL,A
0057 E4 345 CLR A
0058 3400 F 346 ADDC A,#HIGH (OSTCBPrioTbl)
005A F583 347 MOV DPH,A
005C EB 348 MOV A,R3
005D F0 349 MOVX @DPTR,A
005E A3 350 INC DPTR
005F EA 351 MOV A,R2
0060 F0 352 MOVX @DPTR,A
0061 A3 353 INC DPTR
0062 E9 354 MOV A,R1
0063 F0 355 MOVX @DPTR,A
356 ; /* ... the same thing until task is created.
*/
357 ; OS_EXIT_CRITICAL();
358 ; SOURCE LINE # 186
0064 D2AF 359 SETB EA
360 ; psp = (void *)OSTaskStkInit(task, ppdata, ptos, 0); /* Initialize the task's stac
k */
361 ; SOURCE LINE # 187
0066 90FFFE 362 MOV DPTR,#0FFFEH
0069 120000 F 363 LCALL ?C?ADDXBP
006C E4 364 CLR A
006D F0 365 MOVX @DPTR,A
006E A3 366 INC DPTR
006F F0 367 MOVX @DPTR,A
0070 90000C 368 MOV DPTR,#0CH
0073 120000 F 369 LCALL ?C?XBPOFF
0076 E0 370 MOVX A,@DPTR
0077 FB 371 MOV R3,A
0078 A3 372 INC DPTR
0079 E0 373 MOVX A,@DPTR
007A FA 374 MOV R2,A
007B A3 375 INC DPTR
007C E0 376 MOVX A,@DPTR
007D F9 377 MOV R1,A
007E 90FFFD 378 MOV DPTR,#0FFFDH
0081 120000 F 379 LCALL ?C?ADDXBP
0084 EB 380 MOV A,R3
0085 F0 381 MOVX @DPTR,A
0086 A3 382 INC DPTR
0087 EA 383 MOV A,R2
0088 F0 384 MOVX @DPTR,A
0089 A3 385 INC DPTR
008A E9 386 MOV A,R1
008B F0 387 MOVX @DPTR,A
008C 90000C 388 MOV DPTR,#0CH
008F 120000 F 389 LCALL ?C?XBPOFF
0092 E0 390 MOVX A,@DPTR
0093 FB 391 MOV R3,A
0094 A3 392 INC DPTR
0095 E0 393 MOVX A,@DPTR
0096 FA 394 MOV R2,A
0097 A3 395 INC DPTR
0098 E0 396 MOVX A,@DPTR
0099 F9 397 MOV R1,A
009A 90FFFD 398 MOV DPTR,#0FFFDH
009D 120000 F 399 LCALL ?C?ADDXBP
00A0 EB 400 MOV A,R3
00A1 F0 401 MOVX @DPTR,A
00A2 A3 402 INC DPTR
00A3 EA 403 MOV A,R2
00A4 F0 404 MOVX @DPTR,A
00A5 A3 405 INC DPTR
00A6 E9 406 MOV A,R1
A51 MACRO ASSEMBLER OS_TASK 09/09/2007 21:13:11 PAGE 8
00A7 F0 407 MOVX @DPTR,A
00A8 90000C 408 MOV DPTR,#0CH
00AB 120000 F 409 LCALL ?C?XBPOFF
00AE E0 410 MOVX A,@DPTR
00AF FB 411 MOV R3,A
00B0 A3 412 INC DPTR
00B1 E0 413 MOVX A,@DPTR
00B2 FA 414 MOV R2,A
00B3 A3 415 INC DPTR
00B4 E0 416 MOVX A,@DPTR
00B5 F9 417 MOV R1,A
00B6 120000 F 418 LCALL _?OSTaskStkInit
00B9 850083 F 419 MOV DPH,?C_XBP
00BC 850082 F 420 MOV DPL,?C_XBP+01H
00BF EB 421 MOV A,R3
00C0 F0 422 MOVX @DPTR,A
00C1 A3 423 INC DPTR
00C2 EA 424 MOV A,R2
00C3 F0 425 MOVX @DPTR,A
00C4 A3 426 INC DPTR
00C5 E9 427 MOV A,R1
00C6 F0 428 MOVX @DPTR,A
429 ; err = OSTCBInit(prio, psp, (void *)0, 0, 0, (void *)0, 0);
430 ; SOURCE LINE # 188
00C7 90FFFE 431 MOV DPTR,#0FFFEH
00CA 120000 F 432 LCALL ?C?ADDXBP
00CD E4 433 CLR A
00CE F0 434 MOVX @DPTR,A
00CF A3 435 INC DPTR
00D0 F0 436 MOVX @DPTR,A
00D1 FB 437 MOV R3,A
00D2 FA 438 MOV R2,A
00D3 F9 439 MOV R1,A
00D4 90FFFD 440 MOV DPTR,#0FFFDH
00D7 120000 F 441 LCALL ?C?ADDXBP
00DA EB 442 MOV A,R3
00DB F0 443 MOVX @DPTR,A
00DC A3 444 INC DPTR
00DD EA 445 MOV A,R2
00DE F0 446 MOVX @DPTR,A
00DF A3 447 INC DPTR
00E0 E9 448 MOV A,R1
00E1 F0 449 MOVX @DPTR,A
00E2 90FFFE 450 MOV DPTR,#0FFFEH
00E5 120000 F 451 LCALL ?C?ADDXBP
00E8 E4 452 CLR A
00E9 F0 453 MOVX @DPTR,A
00EA A3 454 INC DPTR
00EB F0 455 MOVX @DPTR,A
00EC 90FFFE 456 MOV DPTR,#0FFFEH
00EF 120000 F 457 LCALL ?C?ADDXBP
00F2 E4 458 CLR A
00F3 F0 459 MOVX @DPTR,A
00F4 A3 460 INC DPTR
00F5 F0 461 MOVX @DPTR,A
00F6 FB 462 MOV R3,A
00F7 FA 463 MOV R2,A
00F8 F9 464 MOV R1,A
00F9 90FFFD 465 MOV DPTR,#0FFFDH
00FC 120000 F 466 LCALL ?C?ADDXBP
00FF EB 467 MOV A,R3
0100 F0 468 MOVX @DPTR,A
0101 A3 469 INC DPTR
0102 EA 470 MOV A,R2
0103 F0 471 MOVX @DPTR,A
0104 A3 472 INC DPTR
A51 MACRO ASSEMBLER OS_TASK 09/09/2007 21:13:11 PAGE 9
0105 E9 473 MOV A,R1
0106 F0 474 MOVX @DPTR,A
0107 90000C 475 MOV DPTR,#0CH
010A 120000 F 476 LCALL ?C?XBPOFF
010D E0 477 MOVX A,@DPTR
010E FB 478 MOV R3,A
010F A3 479 INC DPTR
0110 E0 480 MOVX A,@DPTR
0111 FA 481 MOV R2,A
0112 A3 482 INC DPTR
0113 E0 483 MOVX A,@DPTR
0114 F9 484 MOV R1,A
0115 900019 485 MOV DPTR,#019H
0118 120000 F 486 LCALL ?C?XBPOFF
011B E0 487 MOVX A,@DPTR
011C FF 488 MOV R7,A
011D 120000 F 489 LCALL _?OSTCBInit
0120 900003 490 MOV DPTR,#03H
0123 120000 F 491 LCALL ?C?XBPOFF
0126 EF 492 MOV A,R7
0127 F0 493 MOVX @DPTR,A
494 ; if (err == OS_NO_ERR) {
495 ; SOURCE LINE # 189
0128 900003 496 MOV DPTR,#03H
012B 120000 F 497 LCALL ?C?XBPOFF
012E E0 498 MOVX A,@DPTR
012F 7033 499 JNZ ?C0005
500 ; OS_ENTER_CRITICAL();
501 ; SOURCE LINE # 190
0131 C2AF 502 CLR EA
503 ; OSTaskCtr++; /* Increment the #tasks counte
r */
504 ; SOURCE LINE # 191
0133 900000 F 505 MOV DPTR,#OSTaskCtr
0136 E0 506 MOVX A,@DPTR
0137 04 507 INC A
0138 F0 508 MOVX @DPTR,A
509 ; OSTaskCreateHook(OSTCBPrioTbl[prio]); /* Call user defined hook
*/
510 ; SOURCE LINE # 192
0139 90000D 511 MOV DPTR,#0DH
013C 120000 F 512 LCALL ?C?XBPOFF
013F E0 513 MOVX A,@DPTR
0140 75F003 514 MOV B,#03H
0143 A4 515 MUL AB
0144 2400 F 516 ADD A,#LOW (OSTCBPrioTbl)
0146 F582 517 MOV DPL,A
0148 E4 518 CLR A
0149 3400 F 519 ADDC A,#HIGH (OSTCBPrioTbl)
014B F583 520 MOV DPH,A
014D E0 521 MOVX A,@DPTR
014E FB 522 MOV R3,A
014F A3 523 INC DPTR
0150 E0 524 MOVX A,@DPTR
0151 FA 525 MOV R2,A
0152 A3 526 INC DPTR
0153 E0 527 MOVX A,@DPTR
0154 F9 528 MOV R1,A
0155 120000 F 529 LCALL _?OSTaskCreateHook
530 ; OS_EXIT_CRITICAL();
531 ; SOURCE LINE # 193
0158 D2AF 532 SETB EA
533 ; if (OSRunning) { /* Find highest priority task if multitaskin
g has started */
534 ; SOURCE LINE # 194
015A 7800 F 535 MOV R0,#LOW (OSRunning)
A51 MACRO ASSEMBLER OS_TASK 09/09/2007 21:13:11 PAGE 10
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?