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

📄 main.lst

📁 ARM仿真案例
💻 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 + -