📄 main.lst
字号:
##############################################################################
# #
# IAR ARM ANSI C/C++ Compiler V4.40A/W32 EVALUATION 21/Jul/2006 17:47:26 #
# Copyright 1999-2005 IAR Systems. All rights reserved. #
# Time limited license: 22 days left #
# #
# Cpu mode = interwork #
# Endian = little #
# Stack alignment = 4 #
# Source file = E:\Project\ucos-ii\counter\App\main.c #
# Command line = E:\Project\ucos-ii\counter\App\main.c -lCN #
# E:\Project\ucos-ii\counter\Debug\List\ -lA #
# E:\Project\ucos-ii\counter\Debug\List\ -o #
# E:\Project\ucos-ii\counter\Debug\Obj\ -s9 --no_cse #
# --no_unroll --no_inline --no_code_motion --no_tbaa #
# --no_clustering --no_scheduling --debug --cpu_mode #
# thumb --endian little --cpu ARM7TDMI-S #
# --stack_align 4 --interwork -e --fpu None #
# --dlib_config "E:\Program Files\IAR #
# Systems\Embedded Workbench 4.0 #
# Evaluation\ARM\LIB\dl4tptinl8n.h" -I #
# E:\Project\ucos-ii\counter\ -I #
# E:\Project\ucos-ii\counter\App\ -I #
# E:\Project\ucos-ii\counter\BSP\ -I #
# E:\Project\ucos-ii\counter\ARM\ -I #
# E:\Project\ucos-ii\counter\uCOS-II\ -I "E:\Program #
# Files\IAR Systems\Embedded Workbench 4.0 #
# Evaluation\ARM\INC\" #
# List file = E:\Project\ucos-ii\counter\Debug\List\main.lst #
# Object file = E:\Project\ucos-ii\counter\Debug\Obj\main.r79 #
# #
# #
##############################################################################
E:\Project\ucos-ii\counter\App\main.c
1 /****************************************************************************
2 * File:Main.C
3 * 功能:计数器,通过两个按键来控制加减计数器,并输出数码管显示.。
4 ****************************************************************************/
5 #include <includes.h>
\ In segment DATA_AN, at 0xe0028000
\ union <unnamed> const volatile __data _A_IOPIN
\ _A_IOPIN:
\ 00000000 DS8 4
\ In segment DATA_AN, at 0xe0028004
\ union <unnamed> volatile __data _A_IOSET
\ _A_IOSET:
\ 00000000 DS8 4
\ In segment DATA_AN, at 0xe0028008
\ union <unnamed> volatile __data _A_IODIR
\ _A_IODIR:
\ 00000000 DS8 4
\ In segment DATA_AN, at 0xe002800c
\ union <unnamed> volatile __data _A_IOCLR
\ _A_IOCLR:
\ 00000000 DS8 4
6
7 #define CON 0x000000ff //控制P0.0~P0.7
8
9 #define TASK_STK_SIZE 64
\ In segment DATA_Z, align 4, align-sorted
10 OS_STK Main_TaskStk[TASK_STK_SIZE];
\ Main_TaskStk:
\ 00000000 DS8 256
\ In segment DATA_Z, align 4, align-sorted
11 OS_STK Task0Stk[TASK_STK_SIZE];
\ Task0Stk:
\ 00000000 DS8 256
12
13 void Main_Task(void *data);
14 void Task0(void *data);
15 /****************************************************************************
16 * 名称:main()
17 * 功能:主函数,启动多任务环境
18 ****************************************************************************/
\ In segment CODE, align 4, keep-with-next
19 int main (void)
20 {
\ main:
\ 00000000 00B5 PUSH {LR}
21 OSInit();
\ 00000002 ........ _BLF OSInit,??OSInit??rT
22
23 OSTaskCreate(Main_Task, (void *)0, &Main_TaskStk[TASK_STK_SIZE - 1], 0);
\ 00000006 0023 MOVS R3,#+0
\ 00000008 044A LDR R2,??main_0 ;; Main_TaskStk + 252
\ 0000000A 0021 MOVS R1,#+0
\ 0000000C 0448 LDR R0,??main_0+0x4 ;; Main_Task
\ 0000000E ........ _BLF OSTaskCreate,??OSTaskCreate??rT
24 OSStart();
\ 00000012 ........ _BLF OSStart,??OSStart??rT
25 }
\ 00000016 0020 MOVS R0,#+0
\ 00000018 02BC POP {R1}
\ 0000001A 0847 BX R1 ;; return
\ ??main_0:
\ 0000001C ........ DC32 Main_TaskStk + 252
\ 00000020 ........ DC32 Main_Task
26 /****************************************************************************
27 * 名称:Main_Task()
28 * 功能:初始化目标板,建立其他任务
29 ****************************************************************************/
30
\ In segment CODE, align 4, keep-with-next
31 void Main_Task(void *pdata)
32 {
\ Main_Task:
\ 00000000 00B5 PUSH {LR}
33 pdata=pdata;
34 BSP_Init();
\ 00000002 ........ _BLF BSP_Init,??BSP_Init??rT
35
36 OSTaskCreate(Task0, (void *)0, &Task0Stk[TASK_STK_SIZE - 1], 2);
\ 00000006 0223 MOVS R3,#+2
\ 00000008 074A LDR R2,??Main_Task_0 ;; Task0Stk + 252
\ 0000000A 0021 MOVS R1,#+0
\ 0000000C 0748 LDR R0,??Main_Task_0+0x4 ;; Task0
\ 0000000E ........ _BLF OSTaskCreate,??OSTaskCreate??rT
37 IODIR=CON;
\ 00000012 0748 LDR R0,??Main_Task_0+0x8 ;; 0xe0028008
\ 00000014 FF21 MOVS R1,#+255
\ 00000016 0160 STR R1,[R0, #+0]
38 IOSET=CON;
\ 00000018 .... LDR R0,??DataTable1 ;; 0xe0028004
\ 0000001A 0160 STR R1,[R0, #+0]
39 OSTaskSuspend(OS_PRIO_SELF);
\ 0000001C FF20 MOVS R0,#+255
\ 0000001E ........ _BLF OSTaskSuspend,??OSTaskSuspend??rT
40 }
\ 00000022 01BC POP {R0}
\ 00000024 0047 BX R0 ;; return
\ 00000026 C046 Nop
\ ??Main_Task_0:
\ 00000028 ........ DC32 Task0Stk + 252
\ 0000002C ........ DC32 Task0
\ 00000030 088002E0 DC32 0xe0028008
41 /****************************************************************************
42 * 名称:Task0()
43 * 功能:任务
44 ****************************************************************************/
45
\ In segment CODE, align 4, keep-with-next
46 void Task0(void *pdata)
47 { INT16U temp;
\ Task0:
\ 00000000 10B5 PUSH {R4,LR}
48 pdata=pdata;
49 temp=0;
\ 00000002 0024 MOVS R4,#+0
50 while(TRUE){if((IOPIN&0x00030000)!=0x00030000)
\ ??Task0_0:
\ 00000004 1D48 LDR R0,??Task0_1 ;; 0xe0028000
\ 00000006 0068 LDR R0,[R0, #+0]
\ 00000008 C021 MOVS R1,#+192
\ 0000000A 8902 LSLS R1,R1,#+10 ;; #+196608
\ 0000000C 0140 ANDS R1,R1,R0
\ 0000000E C020 MOVS R0,#+192
\ 00000010 8002 LSLS R0,R0,#+10 ;; #+196608
\ 00000012 8142 CMP R1,R0
\ 00000014 02D0 BEQ ??Task0_2
51 OSTimeDly(OS_TICKS_PER_SEC/50);
\ 00000016 0220 MOVS R0,#+2
\ 00000018 ........ _BLF OSTimeDly,??OSTimeDly??rT
52 if((IOPIN&0x00030000)!=0x00030000)
\ ??Task0_2:
\ 0000001C 1748 LDR R0,??Task0_1 ;; 0xe0028000
\ 0000001E 0068 LDR R0,[R0, #+0]
\ 00000020 C021 MOVS R1,#+192
\ 00000022 8902 LSLS R1,R1,#+10 ;; #+196608
\ 00000024 0140 ANDS R1,R1,R0
\ 00000026 C020 MOVS R0,#+192
\ 00000028 8002 LSLS R0,R0,#+10 ;; #+196608
\ 0000002A 8142 CMP R1,R0
\ 0000002C EAD0 BEQ ??Task0_0
53 {
54 if((IOPIN&0x00030000)==0x00020000)
\ 0000002E 1348 LDR R0,??Task0_1 ;; 0xe0028000
\ 00000030 0068 LDR R0,[R0, #+0]
\ 00000032 C021 MOVS R1,#+192
\ 00000034 8902 LSLS R1,R1,#+10 ;; #+196608
\ 00000036 0140 ANDS R1,R1,R0
\ 00000038 8020 MOVS R0,#+128
\ 0000003A 8002 LSLS R0,R0,#+10 ;; #+131072
\ 0000003C 8142 CMP R1,R0
\ 0000003E 02D1 BNE ??Task0_3
55 temp++;
\ 00000040 641C ADDS R4,R4,#+1
\ 00000042 2404 LSLS R4,R4,#+16
\ 00000044 240C LSRS R4,R4,#+16
56 if((IOPIN&0x00030000)==0x00010000)
\ ??Task0_3:
\ 00000046 0D48 LDR R0,??Task0_1 ;; 0xe0028000
\ 00000048 0068 LDR R0,[R0, #+0]
\ 0000004A C021 MOVS R1,#+192
\ 0000004C 8902 LSLS R1,R1,#+10 ;; #+196608
\ 0000004E 0140 ANDS R1,R1,R0
\ 00000050 8020 MOVS R0,#+128
\ 00000052 4002 LSLS R0,R0,#+9 ;; #+65536
\ 00000054 8142 CMP R1,R0
\ 00000056 02D1 BNE ??Task0_4
57 temp--;
\ 00000058 641E SUBS R4,R4,#+1
\ 0000005A 2404 LSLS R4,R4,#+16
\ 0000005C 240C LSRS R4,R4,#+16
58 while((IOPIN&0x00030000)!=0x00030000);
\ ??Task0_4:
\ 0000005E 0748 LDR R0,??Task0_1 ;; 0xe0028000
\ 00000060 0068 LDR R0,[R0, #+0]
\ 00000062 C021 MOVS R1,#+192
\ 00000064 8902 LSLS R1,R1,#+10 ;; #+196608
\ 00000066 0140 ANDS R1,R1,R0
\ 00000068 C020 MOVS R0,#+192
\ 0000006A 8002 LSLS R0,R0,#+10 ;; #+196608
\ 0000006C 8142 CMP R1,R0
\ 0000006E F6D1 BNE ??Task0_4
59 IOCLR=CON;
\ 00000070 0348 LDR R0,??Task0_1+0x4 ;; 0xe002800c
\ 00000072 FF21 MOVS R1,#+255
\ 00000074 0160 STR R1,[R0, #+0]
60 IOSET=temp;
\ 00000076 .... LDR R0,??DataTable1 ;; 0xe0028004
\ 00000078 0460 STR R4,[R0, #+0]
\ 0000007A C3E7 B ??Task0_0
\ ??Task0_1:
\ 0000007C 008002E0 DC32 0xe0028000
\ 00000080 0C8002E0 DC32 0xe002800c
61 }
62 }
63 }
\ In segment CODE, align 4, keep-with-next
\ ??DataTable1:
\ 00000000 048002E0 DC32 0xe0028004
64
65
66
Maximum stack usage in bytes:
Function CSTACK
-------- ------
Main_Task 4
Task0 8
main 4
Segment part sizes:
Function/Label Bytes
-------------- -----
_A_IOPIN 4
_A_IOSET 4
_A_IODIR 4
_A_IOCLR 4
Main_TaskStk 256
Task0Stk 256
main 36
Main_Task 52
Task0 132
??DataTable1 4
Others 92
304 bytes in segment CODE
16 bytes in segment DATA_AN
512 bytes in segment DATA_Z
12 bytes in segment INITTAB
224 bytes of CODE memory (+ 92 bytes shared)
512 bytes of DATA memory (+ 16 bytes shared)
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -