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

📄 artx_config.lst

📁 LPC2142用演示ARTX的LED显示例程及KEY按键处理的演示程序.
💻 LST
📖 第 1 页 / 共 4 页
字号:

*** CODE SEGMENT '?PR?os_free_TCB?T?ARTX_Config':
  371: void os_free_TCB (P_TCB p_TCB) {
 00000000  B510      PUSH        {R4,LR}
 00000002  1C04      MOV         R4,R0 ; p_TCB
 00000004  ---- Variable 'p_TCB' assigned to Register 'R4' ----
  373:    _free_box (m_stk, p_TCB->stack);
 00000004  1C20      MOV         R0,R4 ; p_TCB
 00000006  6A81      LDR         R1,[R0,#0x28]
 00000008  4800      LDR         R0,=m_stk ; m_stk
 0000000A  DF07      SWI         0x7 ; _free_box?T
  374:    _free_box (m_tcb, p_TCB);
 0000000C  4800      LDR         R0,=m_tcb ; m_tcb
 0000000E  1C21      MOV         R1,R4 ; p_TCB
 00000010  DF07      SWI         0x7 ; _free_box?T
  376:    if (os_runtask == p_TCB) {
 00000012  1C21      MOV         R1,R4 ; p_TCB
 00000014  4800      LDR         R0,=os_runtask ; os_runtask
 00000016  6800      LDR         R0,[R0,#0x0] ; os_runtask
 00000018  4288      CMP         R0,R1 ; p_TCB
 0000001A  D102      BNE         L_19  ; T=0x00000022
  378:       os_del_flag = __TRUE;
 0000001C  2101      MOV         R1,#0x1
 0000001E  4800      LDR         R0,=os_del_flag ; os_del_flag
 00000020  7001      STRB        R1,[R0,#0x0] ; os_del_flag
  379:    }
 00000022          L_19:
  381: } /* end of os_free_TCB */
 00000022  BC10      POP         {R4}
 00000024  BC08      POP         {R3}
 00000026  4718      BX          R3
 00000028          ENDP ; 'os_free_TCB?T'


*** CODE SEGMENT '?PR?os_alloc_TMR?T?ARTX_Config':
  389:    return (NULL);
 00000000  2000      MOV         R0,#0x0
  391: } /* end of os_alloc_TMR */
 00000002  4770      BX          R14
 00000004          ENDP ; 'os_alloc_TMR?T'


*** CODE SEGMENT '?PR?os_free_TMR?T?ARTX_Config':
  402: } /* end of os_free_TMR */
 00000000  4770      BX          R14
 00000002          ENDP ; 'os_free_TMR?T'


*** CODE SEGMENT '?PR?os_init_context?T?ARTX_Config':
  406: void os_init_context (P_TCB p_TCB, U8 priority,
 00000000  B5F0      PUSH        {R4-R7,LR}
 00000002  1C1F      MOV         R7,R3 ; full_context
 00000004  ---- Variable 'full_context' assigned to Register 'R7' ----
 00000004  1C16      MOV         R6,R2 ; task_body
 00000006  ---- Variable 'task_body' assigned to Register 'R6' ----
 00000006  1C0A      MOV         R2,R1 ; priority
 00000008  ---- Variable 'priority' assigned to Register 'R2' ----
 00000008  1C05      MOV         R5,R0 ; p_TCB
 0000000A  ---- Variable 'p_TCB' assigned to Register 'R5' ----
 0000000A  ---- Variable 'stk' assigned to Register 'R4' ----
  407:                       FUNCP task_body, U8 full_context) {
 0000000A            ; SCOPE-START
  415:    p_TCB->cb_type = TCB;
 0000000A  2100      MOV         R1,#0x0
 0000000C  1C28      MOV         R0,R5 ; p_TCB
 0000000E  7001      STRB        R1,[R0,#0x0] ; p_TCB
  416:    p_TCB->state   = READY;
 00000010  2101      MOV         R1,#0x1
 00000012  1C28      MOV         R0,R5 ; p_TCB
 00000014  7041      STRB        R1,[R0,#0x1]
  417:    p_TCB->prio    = priority;
ARM COMPILER V2.42,  ARTX_Config                                                           17/01/06  16:24:22  PAGE 16  

 00000016  1C11      MOV         R1,R2 ; priority
 00000018  1C28      MOV         R0,R5 ; p_TCB
 0000001A  7081      STRB        R1,[R0,#0x2]
  418:    p_TCB->p_lnk   = NULL;
 0000001C  2100      MOV         R1,#0x0
 0000001E  1C28      MOV         R0,R5 ; p_TCB
 00000020  6041      STR         R1,[R0,#0x4]
  419:    p_TCB->p_rlnk  = NULL;
 00000022  2100      MOV         R1,#0x0
 00000024  1C28      MOV         R0,R5 ; p_TCB
 00000026  6081      STR         R1,[R0,#0x8]
  420:    p_TCB->p_dlnk  = NULL;
 00000028  2100      MOV         R1,#0x0
 0000002A  1C28      MOV         R0,R5 ; p_TCB
 0000002C  60C1      STR         R1,[R0,#0xC]
  421:    p_TCB->p_blnk  = NULL;
 0000002E  2100      MOV         R1,#0x0
 00000030  1C28      MOV         R0,R5 ; p_TCB
 00000032  6101      STR         R1,[R0,#0x10]
  422:    p_TCB->delta_time    = 0;
 00000034  2100      MOV         R1,#0x0
 00000036  1C28      MOV         R0,R5 ; p_TCB
 00000038  8281      STRH        R1,[R0,#0x14]
  423:    p_TCB->interval_time = 0;
 0000003A  2100      MOV         R1,#0x0
 0000003C  1C28      MOV         R0,R5 ; p_TCB
 0000003E  82C1      STRH        R1,[R0,#0x16]
  424:    p_TCB->events  = 0;
 00000040  2100      MOV         R1,#0x0
 00000042  1C28      MOV         R0,R5 ; p_TCB
 00000044  8301      STRH        R1,[R0,#0x18]
  425:    p_TCB->waits   = 0;
 00000046  2100      MOV         R1,#0x0
 00000048  1C28      MOV         R0,R5 ; p_TCB
 0000004A  8341      STRH        R1,[R0,#0x1A]
  428:    p_TCB->full_ctx = full_context;
 0000004C  1C39      MOV         R1,R7 ; full_context
 0000004E  1C28      MOV         R0,R5 ; p_TCB
 00000050  3021      ADD         R0,#0x21
 00000052  7001      STRB        R1,[R0,#0x0]
  431:    if (p_TCB->priv_stack != 0) {
 00000054  1C28      MOV         R0,R5 ; p_TCB
 00000056  8C40      LDRH        R0,[R0,#0x22]
 00000058  1C01      MOV         R1,R0
 0000005A  2900      CMP         R1,#0x0
 0000005C  D005      BEQ         L_21  ; T=0x0000006A
  433:       stk = &p_TCB->stack[p_TCB->priv_stack>>2];
 0000005E  0889      LSR         R1,R1,#0x2
 00000060  0089      LSL         R1,R1,#0x2
 00000062  1C28      MOV         R0,R5 ; p_TCB
 00000064  6A84      LDR         R4,[R0,#0x28]
 00000066  1864      ADD         R4,R1
  434:    }
 00000068  E006      B           L_22  ; T=0x00000078
 0000006A          L_21:
  437:       p_TCB->stack = _alloc_box (m_stk);
 0000006A  4800      LDR         R0,=m_stk ; m_stk
 0000006C  DF06      SWI         0x6 ; _alloc_box?T
 0000006E  1C29      MOV         R1,R5 ; p_TCB
 00000070  6288      STR         R0,[R1,#0x28]
  439:       stk = &p_TCB->stack[OS_STKSIZE];
 00000072  1C28      MOV         R0,R5 ; p_TCB
 00000074  6A84      LDR         R4,[R0,#0x28]
 00000076  34C8      ADD         R4,#0xC8
  440:    }
 00000078          L_22:
ARM COMPILER V2.42,  ARTX_Config                                                           17/01/06  16:24:22  PAGE 17  

  443:    *--stk = (U32)task_body;
 00000078  1C31      MOV         R1,R6 ; task_body
 0000007A  1C20      MOV         R0,R4 ; stk
 0000007C  3804      SUB         R0,#0x4
 0000007E  1C04      MOV         R4,R0 ; stk
 00000080  6001      STR         R1,[R0,#0x0]
  444:    i      = INITIAL_CPSR;
 00000082  4800      LDR         R0,=0x40000010
 00000084  ---- Variable 'i' assigned to Register 'R0' ----
  447:    if ((U32)task_body & 1) {
 00000084  1C31      MOV         R1,R6 ; task_body
 00000086  2201      MOV         R2,#0x1
 00000088  4211      TST         R1,R2
 0000008A  D001      BEQ         L_23  ; T=0x00000090
  448:       i |= 0x00000020;
 0000008C  2120      MOV         R1,#0x20
 0000008E  4308      ORR         R0,R1
  449:    }
 00000090          L_23:
  450:    *--stk = i;
 00000090  1C02      MOV         R2,R0 ; i
 00000092  1C21      MOV         R1,R4 ; stk
 00000094  3904      SUB         R1,#0x4
 00000096  1C0C      MOV         R4,R1 ; stk
 00000098  600A      STR         R2,[R1,#0x0]
  453:    for (i = full_context ? 13 : 4; i; i--) {
 0000009A  1C39      MOV         R1,R7 ; full_context
 0000009C  2900      CMP         R1,#0x0 ; full_context
 0000009E  D002      BEQ         L_29  ; T=0x000000A6
 000000A0  210D      MOV         R1,#0xD
 000000A2  1C08      MOV         R0,R1
 000000A4  E000      B           L_30  ; T=0x000000A8
 000000A6          L_29:
 000000A6  2004      MOV         R0,#0x4
 000000A8          L_30:
 000000A8  E005      B           L_26  ; T=0x000000B6
 000000AA          L_27:
  454:       *--stk = 0;
 000000AA  2200      MOV         R2,#0x0
 000000AC  1C21      MOV         R1,R4 ; stk
 000000AE  3904      SUB         R1,#0x4
 000000B0  1C0C      MOV         R4,R1 ; stk
 000000B2  600A      STR         R2,[R1,#0x0]
  455:    }
 000000B4  3801      SUB         R0,#0x1
 000000B6          L_26:
 000000B6  1C01      MOV         R1,R0 ; i
 000000B8  2900      CMP         R1,#0x0 ; i
 000000BA  D1F6      BNE         L_27  ; T=0x000000AA
  458:    if (full_context) {
 000000BC  1C38      MOV         R0,R7 ; full_context
 000000BE  2800      CMP         R0,#0x0 ; full_context
 000000C0  D005      BEQ         L_31  ; T=0x000000CE
  459:       *--stk = (U32)p_TCB->p_msg;
 000000C2  1C28      MOV         R0,R5 ; p_TCB
 000000C4  69C1      LDR         R1,[R0,#0x1C]
 000000C6  1C20      MOV         R0,R4 ; stk
 000000C8  3804      SUB         R0,#0x4
 000000CA  1C04      MOV         R4,R0 ; stk
 000000CC  6001      STR         R1,[R0,#0x0]
  460:    }
 000000CE          L_31:
  463:    p_TCB->tsk_stack = (U32)stk;
 000000CE  1C21      MOV         R1,R4 ; stk
 000000D0  1C28      MOV         R0,R5 ; p_TCB
 000000D2  6241      STR         R1,[R0,#0x24]
ARM COMPILER V2.42,  ARTX_Config                                                           17/01/06  16:24:22  PAGE 18  

  466:    p_TCB->ptask = task_body;
 000000D4  1C31      MOV         R1,R6 ; task_body
 000000D6  1C28      MOV         R0,R5 ; p_TCB
 000000D8  62C1      STR         R1,[R0,#0x2C]
  469:    p_TCB->stack[0] = MAGIC_WORD;
 000000DA  4800      LDR         R1,=0xE25A2EA5
 000000DC  1C28      MOV         R0,R5 ; p_TCB
 000000DE  6A80      LDR         R0,[R0,#0x28]
 000000E0  6001      STR         R1,[R0,#0x0]
 000000E2            ; SCOPE-END
  471: } /* end of os_init_context */
 000000E2  BCF0      POP         {R4-R7}
 000000E4  BC08      POP         {R3}
 000000E6  4718      BX          R3
 000000E8          ENDP ; 'os_init_context?T'


*** CODE SEGMENT '?PR?os_set_env?T?ARTX_Config':
  481:         LDR     R0,[R0,#TCB_TSTACK]         ; p_TCB in R0
 00000000  6A40      LDR         R0,[R0,#0x24]
  482:         MOV     SP,R0
 00000002  4685      MOV         R13,R0
  483:         ADD     SP,SP,#24                   ; ignore default context
 00000004  B006      ADD         R13,R13,#0x18
  485: } /* end of os_set_env */
 00000006  4770      BX          R14
 00000008          ENDP ; 'os_set_env?T'


*** CODE SEGMENT '?PR?os_switch_tasks?T?ARTX_Config':
  490: void os_switch_tasks (P_TCB p_new) __swi (0) {
 00000000  B510      PUSH        {R4,LR}
 00000002  1C04      MOV         R4,R0 ; p_new
 00000004  ---- Variable 'p_new' assigned to Register 'R4' ----
  495:    if (tstclrb (&os_del_flag) == __FALSE) {
 00000004  4800      LDR         R0,=os_del_flag ; os_del_flag
 00000006  F7FF      BL          tstclrb?T  ; T=0x0001  (1)
 00000008  FFFB      BL          tstclrb?T  ; T=0x0001  (2)
 0000000A  2800      CMP         R0,#0x0 ; tstclrb?T
 0000000C  D10C      BNE         L_32  ; T=0x00000028
  497:       if ((os_runtask->tsk_stack < (U32)os_runtask->stack) || 
 0000000E  4800      LDR         R0,=os_runtask ; os_runtask
 00000010  6803      LDR         R3,[R0,#0x0] ; os_runtask
 00000012  6A98      LDR         R0,[R3,#0x28]
 00000014  1C02      MOV         R2,R0
 00000016  6A59      LDR         R1,[R3,#0x24]
 00000018  4291      CMP         R1,R2
 0000001A  D303      BCC         L_34  ; T=0x00000024
 0000001C  6800      LDR         R0,[R0,#0x0]
 0000001E  4800      LDR         R1,=0xE25A2EA5
 00000020  4288      CMP         R0,R1
 00000022  D001      BEQ         L_32  ; T=0x00000028
 00000024          L_34:
  499:          os_stk_overflow ();
 00000024  F7FF      BL          os_stk_overflow?T  ; T=0x0001  (1)
 00000026  FFEC      BL          os_stk_overflow?T  ; T=0x0001  (2)
  501:    }
 00000028          L_32:
  503:    os_runtask->full_ctx = __FALSE;
 00000028  2100      MOV         R1,#0x0
 0000002A  4800      LDR         R0,=os_runtask ; os_runtask
 0000002C  6800      LDR         R0,[R0,#0x0] ; os_runtask
 0000002E  3021      ADD         R0,#0x21
 00000030  7001      STRB        R1,[R0,#0x0]
  504:    os_runtask = p_new;
 00000032  1C21      MOV         R1,R4 ; p_new
 00000034  4800      LDR         R0,=os_runtask ; os_runtask
 00000036  6001      STR         R1,[R0,#0x0] ; os_runtask
  505:    p_new->state = RUNNING;
 00000038  2102      MOV         R1,#0x2
ARM COMPILER V2.42,  ARTX_Config                                                           17/01/06  16:24:22  PAGE 19  

 0000003A  1C20      MOV         R0,R4 ; p_new
 0000003C  7041      STRB        R1,[R0,#0x1]
  510:    OS_UNLOCK();
 0000003E  2220      MOV         R2,#0x20
 00000040  4800      LDR         R0,=0xFFFFF010
 00000042  6801      LDR         R1,[R0,#0x0]
 00000044  4311      ORR         R1,R2
 00000046  6001      STR         R1,[R0,#0x0]
  511: } /* end of os_switch_tasks */
 00000048  BC10      POP         {R4}
 0000004A  BC08      POP         {R3}
 0000004C  4718      BX          R3
 0000004E          ENDP ; 'os_switch_tasks?T'


*** CODE SEGMENT '?PR?os_chk_robin?T?ARTX_Config':
  533: } /* end of os_chk_robin */
 00000000  4770      BX          R14
 00000002          ENDP ; 'os_chk_robin?T'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =      1437
  const size           =        18
End of Module Information.


ARM COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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