📄 artx_conf_sam7s.lst
字号:
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 + -