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

📄 artx_conf_sam7s.lst

📁 Keil UV3中自带操作系统ARTX的应用例程
💻 LST
📖 第 1 页 / 共 4 页
字号:
 00000790            DS          4
 00000794          task_id:
 00000794            DS          4
 00000798          os_robin_time:
 00000798            DS          2
 0000079A          os_del_flag:
 0000079A            DS          1



*** CODE SEGMENT '?PR?os_idle_demon?T?ARTX_Conf_SAM7S':
  198:    }
 00000000          L_3:
 00000000  E7FE      B           L_3  ; T=0x00000000
  199: } /* end of os_idle_demon */
 00000002          ENDP ; 'os_idle_demon?T'


*** CODE SEGMENT '?PR?os_tmr_call?T?ARTX_Conf_SAM7S':
  209: } /* end of os_tmr_call */
 00000000  4770      BX          R14
 00000002          ENDP ; 'os_tmr_call?T'


*** CODE SEGMENT '?PR?os_stk_overflow?T?ARTX_Conf_SAM7S':
  214: static void os_stk_overflow (void) {
 00000000  B500      PUSH        {LR}
  222:    task_id = os_get_TID (os_runtask);
 00000002  4800      LDR         R0,=os_runtask ; os_runtask
 00000004  6800      LDR         R0,[R0,#0x0] ; os_runtask
 00000006  F7FF      BL          os_get_TID?T  ; T=0x0001  (1)
 00000008  FFFB      BL          os_get_TID?T  ; T=0x0001  (2)
 0000000A  4800      LDR         R1,=task_id ; task_id
 0000000C  6008      STR         R0,[R1,#0x0] ; task_id
  225:    for (;;);
 0000000E          L_8:
 0000000E  E7FE      B           L_8  ; T=0x0000000E
  226: }
 00000010  BC08      POP         {R3}
 00000012  4718      BX          R3
 00000014          ENDP ; 'os_stk_overflow?T'


*** CODE SEGMENT '?PR?os_clock_interrupt?A?ARTX_Conf_SAM7S':
ARM COMPILER V2.42,  ARTX_Conf_SAM7S                                                       20/02/06  16:27:40  PAGE 12  

  234:         STMDB   SP!,{R0-R1}                 ; Save Full Context
 00000000  E92D0003  STMDB       R13!,{R0-R1}
  235:         STMDB   SP,{SP}^                    ; User SP
 00000004  E94D2000  STMDB       R13,{SP}^
  236:         LDMDB   SP,{R0}
 00000008  E91D0001  LDMDB       R13,{R0}
  237:         MRS     R1,SPSR                     ; User CPSR
 0000000C  E14F1000  MRS         R1,SPSR
  238:         SUB     LR,LR,#0x4
 00000010  E24EE004  SUB         R14,R14,#0x0004
  239:         STMDB   R0!,{R1,LR}                 ; Push PC, CPSR
 00000014  E9204002  STMDB       R0!,{R1,LR}
  240:         STMDB   R0,{LR}^                    ; Push User LR
 00000018  E9404000  STMDB       R0,{LR}^
  241:         SUB     R0,R0,#0x4                  ; Write back problem !!
 0000001C  E2400004  SUB         R0,R0,#0x0004
  242:         STMDB   R0!,{R2-R12}                ; Push R12-R2
 00000020  E9201FFC  STMDB       R0!,{R2-R12}
  243:         LDMIA   SP!,{R2-R3}
 00000024  E8BD000C  LDMIA       R13!,{R2-R3}
  244:         STMDB   R0!,{R2-R3}                 ; Push R1-R0
 00000028  E920000C  STMDB       R0!,{R2-R3}
  246:         LDR     R1,=os_runtask              ; os_runtask
 0000002C  E51F1000  LDR         R1,=os_runtask
  247:         LDR     R1,[R1,#0x0]                ; os_runtask
 00000030  E5911000  LDR         R1,[R1,#0x0]
  248:         STR     R0,[R1,#TCB_TSTACK]         ; os_runtask->tsk_stack
 00000034  E5810024  STR         R0,[R1,#0x24]
  250:    OS_TIACK();
 00000038  E5100000  LDR         R0,=0xFFFFFD38
 0000003C  E5901000  LDR         R1,[R0,#0x0]
 00000040  E5100000  LDR         R0,=0xFFFFF130
 00000044  E5801000  STR         R1,[R0,#0x0]
 00000048  E3A01002  MOV         R1,#0x2
 0000004C  E5100000  LDR         R0,=0xFFFFF128
 00000050  E5801000  STR         R1,[R0,#0x0]
  251:    tsk_lock ();
 00000054  EBFFFFE9  BL          tsk_lock?A  ; Targ=0x0
  252:    os_runtask->full_ctx = __TRUE;
 00000058  E3A00001  MOV         R0,#0x1
 0000005C  E5101000  LDR         R1,=os_runtask ; os_runtask
 00000060  E5911000  LDR         R1,[R1,#0x0] ; os_runtask
 00000064  E5C10021  STRB        R0,[R1,#0x21]
  253:    os_runtask->state  = READY;
 00000068  E3A00001  MOV         R0,#0x1
 0000006C  E5101000  LDR         R1,=os_runtask ; os_runtask
 00000070  E5911000  LDR         R1,[R1,#0x0] ; os_runtask
 00000074  E5C10001  STRB        R0,[R1,#0x1]
  254:    os_put_rdy_first (os_runtask);
 00000078  E5100000  LDR         R0,=os_runtask ; os_runtask
 0000007C  E5900000  LDR         R0,[R0,#0x0] ; os_runtask
 00000080  EBFFFFDE  BL          os_put_rdy_first?A  ; Targ=0x0
  255:    os_runtask = &os_clock_TCB;
 00000084  E5101000  LDR         R1,=os_clock_TCB ; os_clock_TCB
 00000088  E5100000  LDR         R0,=os_runtask ; os_runtask
 0000008C  E5801000  STR         R1,[R0,#0x0] ; os_runtask
  256:    os_clock_TCB.state = RUNNING;
 00000090  E3A01002  MOV         R1,#0x2
 00000094  E5100000  LDR         R0,=os_clock_TCB + 0x1 ; os_clock_TCB+1
 00000098  E5C01000  STRB        R1,[R0,#0x0] ; os_clock_TCB+1
  258:         LDR     R0,=os_runtask              ; os_runtask
 0000009C  E51F0000  LDR         R0,=os_runtask
  259:         LDR     R0,[R0,#0x0]                ; os_runtask
 000000A0  E5900000  LDR         R0,[R0,#0x0]
  260:         LDR     R0,[R0,#TCB_TSTACK]         ; os_runtask->tsk_stack
 000000A4  E5900024  LDR         R0,[R0,#0x24]
ARM COMPILER V2.42,  ARTX_Conf_SAM7S                                                       20/02/06  16:27:40  PAGE 13  

  262:         LDMIA   R0!,{R4-R8,R12}
 000000A8  E8B011F0  LDMIA       R0!,{R4-R8,R12}
  263:         MSR     SPSR_cxsf,R8
 000000AC  E16FF008  MSR         SPSR_cxsf,R8
  264:         STMDB   SP,{R0}                     ; Set User SP
 000000B0  E90D0001  STMDB       R13,{R0}
  265:         LDMDB   SP,{SP}^
 000000B4  E95D2000  LDMDB       R13,{SP}^
  266:         MOVS    PC,R12                      ; RETI
 000000B8  E1B0F00C  MOVS        R15,R12
  268: } /* end of os_clock_interrupt */
 000000BC          ENDP ; 'os_clock_interrupt?A'


*** CODE SEGMENT '?PR?os_def_interrupt?A?ARTX_Conf_SAM7S':
  272: void os_def_interrupt (void) __irq  {
 00000000  E92D0003  STMDB       R13!,{R0-R1}
  274:    OS_IACK();
 00000004  E3A01000  MOV         R1,#0x0
 00000008  E5100000  LDR         R0,=0xFFFFF130
 0000000C  E5801000  STR         R1,[R0,#0x0]
  275: }
 00000010  E8BD0003  LDMIA       R13!,{R0-R1}
 00000014  E25EF004  SUBS        R15,R14,#0x0004
 00000018          ENDP ; 'os_def_interrupt?A'


*** CODE SEGMENT '?PR?os_tmr_init?T?ARTX_Conf_SAM7S':
  282:    OS_TINIT();
 00000000  4800      LDR         R1,=0x300752F
 00000002  4800      LDR         R0,=0xFFFFFD30
 00000004  6001      STR         R1,[R0,#0x0]
 00000006  4900      LDR         R1,=os_def_interrupt?A ; os_def_interrupt?A
 00000008  4800      LDR         R0,=0xFFFFF134
 0000000A  6001      STR         R1,[R0,#0x0]
 0000000C  4900      LDR         R1,=os_clock_interrupt?A ; os_clock_interrupt?A
 0000000E  4800      LDR         R0,=0xFFFFF084
 00000010  6001      STR         R1,[R0,#0x0]
 00000012  2120      MOV         R1,#0x20
 00000014  4800      LDR         R0,=0xFFFFF004
 00000016  6001      STR         R1,[R0,#0x0]
 00000018  2102      MOV         R1,#0x2
 0000001A  4800      LDR         R0,=0xFFFFF120
 0000001C  6001      STR         R1,[R0,#0x0]
  284:    os_robin_time = OS_ROBINTOUT;
 0000001E  2105      MOV         R1,#0x5
 00000020  4800      LDR         R0,=os_robin_time ; os_robin_time
 00000022  8001      STRH        R1,[R0,#0x0] ; os_robin_time
  286: } /* end of os_tmr_init */
 00000024  4770      BX          R14
 00000026          ENDP ; 'os_tmr_init?T'


*** CODE SEGMENT '?PR?os_tmr_reload?T?ARTX_Conf_SAM7S':
  293: } /* end of os_tmr_reload */
 00000000  4770      BX          R14
 00000002          ENDP ; 'os_tmr_reload?T'


*** CODE SEGMENT '?PR?os_tmr_force_irq?T?ARTX_Conf_SAM7S':
  299:    OS_TFIRQ();
 00000000  2102      MOV         R1,#0x2
 00000002  4800      LDR         R0,=0xFFFFF12C
 00000004  6001      STR         R1,[R0,#0x0]
  300: } /* end of os_tmr_force_irq */
 00000006  4770      BX          R14
 00000008          ENDP ; 'os_tmr_force_irq?T'


*** CODE SEGMENT '?PR?os_tmr_inspect_cnt?T?ARTX_Conf_SAM7S':
  306:    return (OS_TVAL);
 00000000  4800      LDR         R0,=0xFFFFFD3C
 00000002  6800      LDR         R0,[R0,#0x0]
 00000004  4800      LDR         R1,=0xFFFFF
 00000006  4008      AND         R0,R1
  307: } /* end of os_tmr_inspect_cnt */
ARM COMPILER V2.42,  ARTX_Conf_SAM7S                                                       20/02/06  16:27:40  PAGE 14  

 00000008  4770      BX          R14
 0000000A          ENDP ; 'os_tmr_inspect_cnt?T'


*** CODE SEGMENT '?PR?os_tmr_inspect_ovf?T?ARTX_Conf_SAM7S':
  313:    return (OS_TOVF);
 00000000  4800      LDR         R0,=0xFFFFFD34
 00000002  6800      LDR         R0,[R0,#0x0]
 00000004  2101      MOV         R1,#0x1
 00000006  4008      AND         R0,R1
  314: } /* end of os_tmr_inspect_ovf */
 00000008  4770      BX          R14
 0000000A          ENDP ; 'os_tmr_inspect_ovf?T'


*** CODE SEGMENT '?PR?tsk_lock?T?ARTX_Conf_SAM7S':
  321:    OS_LOCK();
 00000000  2102      MOV         R1,#0x2
 00000002  4800      LDR         R0,=0xFFFFF124
 00000004  6001      STR         R1,[R0,#0x0]
  322: } /* end of tsk_lock */
 00000006  4770      BX          R14
 00000008          ENDP ; 'tsk_lock?T'


*** CODE SEGMENT '?PR?tsk_unlock?T?ARTX_Conf_SAM7S':
  328:    OS_UNLOCK();
 00000000  2102      MOV         R1,#0x2
 00000002  4800      LDR         R0,=0xFFFFF120
 00000004  6001      STR         R1,[R0,#0x0]
  329: } /* end of tsk_unlock */
 00000006  4770      BX          R14
 00000008          ENDP ; 'tsk_unlock?T'


*** CODE SEGMENT '?PR?os_init_mem?T?ARTX_Conf_SAM7S':
  333: void os_init_mem (void) {
 00000000  B500      PUSH        {LR}
 00000002            ; SCOPE-START
  336:    for (i = 0; i < OS_TASKCNT; i++) {
 00000002  2000      MOV         R0,#0x0
 00000004  ---- Variable 'i' assigned to Register 'R0' ----
 00000004          L_16:
  337:       os_active_TCB[i] = NULL;
 00000004  2100      MOV         R1,#0x0
 00000006  1C03      MOV         R3,R0 ; i
 00000008  009B      LSL         R3,R3,#0x2 ; i
 0000000A  4800      LDR         R2,=os_active_TCB ; os_active_TCB
 0000000C  50D1      STR         R1,[R2,R3]
  338:    }
 0000000E  3001      ADD         R0,#0x1
 00000010  1C01      MOV         R1,R0 ; i
 00000012  2906      CMP         R1,#0x6 ; i
 00000014  D3F6      BCC         L_16  ; T=0x00000004
  339:    _init_box (&m_tcb, sizeof(m_tcb), sizeof(struct OS_TCB));
 00000016  4800      LDR         R0,=m_tcb ; m_tcb
 00000018  494B      LDR         R1,=0x12C
 0000001A  2230      MOV         R2,#0x30
 0000001C  F7FF      BL          _init_box?T  ; T=0x0001  (1)
 0000001E  FFF0      BL          _init_box?T  ; T=0x0001  (2)
  340:    _init_box (&m_stk, sizeof(m_stk), OS_STKSIZE*4);
 00000020  4800      LDR         R0,=m_stk ; m_stk
 00000022  4800      LDR         R1,=0x64C
 00000024  22C8      MOV         R2,#0xC8
 00000026  F7FF      BL          _init_box?T  ; T=0x0001  (1)
 00000028  FFEB      BL          _init_box?T  ; T=0x0001  (2)
 0000002A            ; SCOPE-END
  344: } /* end of os_init_mem */
 0000002A  BC08      POP         {R3}
 0000002C  4718      BX          R3
 0000002E          ENDP ; 'os_init_mem?T'


*** CODE SEGMENT '?PR?os_alloc_TCB?T?ARTX_Conf_SAM7S':
  348: P_TCB os_alloc_TCB () {
 00000000  B500      PUSH        {LR}
ARM COMPILER V2.42,  ARTX_Conf_SAM7S                                                       20/02/06  16:27:40  PAGE 15  

  349:    return (_alloc_box (m_tcb));
 00000002  4800      LDR         R0,=m_tcb ; m_tcb
 00000004  DF06      SWI         0x6 ; _alloc_box?T
  350: } /* end of os_alloc_TCB */
 00000006  BC08      POP         {R3}
 00000008  4718      BX          R3
 0000000A          ENDP ; 'os_alloc_TCB?T'


*** CODE SEGMENT '?PR?os_free_TCB?T?ARTX_Conf_SAM7S':
  354: 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' ----
  356:    _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
  357:    _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
  359:    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
  361:       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
  362:    }
 00000022          L_19:
  364: } /* 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_Conf_SAM7S':
  372:    return (NULL);
 00000000  2000      MOV         R0,#0x0
  374: } /* end of os_alloc_TMR */
 00000002  4770      BX          R14
 00000004          ENDP ; 'os_alloc_TMR?T'


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


*** CODE SEGMENT '?PR?os_init_context?T?ARTX_Conf_SAM7S':

⌨️ 快捷键说明

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