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

📄 timer.lst

📁 AT91M40800源码
💻 LST
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION    09/Sep/2008  07:54:50 #
# Copyright 1999-2005 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Cpu mode        =  interwork                                            #
#    Endian          =  little                                               #
#    Stack alignment =  4                                                    #
#    Source file     =  E:\AT91EBxx\timer.c                                  #
#    Command line    =  E:\AT91EBxx\timer.c --fpu None -D RAMCODE=1 -lCN     #
#                       E:\AT91EBxx\ramcode-EBxx\List\ -o                    #
#                       E:\AT91EBxx\ramcode-EBxx\Obj\ -z3 --no_cse           #
#                       --no_unroll --no_inline --no_code_motion --no_tbaa   #
#                       --no_clustering --no_scheduling --debug --cpu_mode   #
#                       arm --endian little --cpu ARM7TDMI --stack_align 4   #
#                       --interwork -e --dlib_config "C:\Program Files\IAR   #
#                       Systems\Embedded Workbench 4.0                       #
#                       Evaluation\arm\LIB\dl4tpainl8n.h" -I "C:\Program     #
#                       Files\IAR Systems\Embedded Workbench 4.0             #
#                       Evaluation\arm\INC\"                                 #
#    List file       =  E:\AT91EBxx\ramcode-EBxx\List\timer.lst              #
#    Object file     =  E:\AT91EBxx\ramcode-EBxx\Obj\timer.r79               #
#                                                                            #
#                                                                            #
##############################################################################

E:\AT91EBxx\timer.c
      1          
      2          /*
      3           * $Revision: 1.3 $
      4           */
      5          
      6          #include "config.h"
      7          #include "timer.h"
      8          #include "button.h"
      9          

   \                                 In segment DATA_Z, align 4, align-sorted
     10          static volatile int ms_ctr = 0;
   \                     ms_ctr:
   \   00000000                      DS8 4

   \                                 In segment DATA_Z, align 4, align-sorted
     11          static volatile int tick = 0;
   \                     tick:
   \   00000000                      DS8 4
     12          
     13          extern int test_number;
     14          
     15          static void ProcessInput(void);
     16          
     17          

   \                                 In segment CODE, align 4, keep-with-next
     18          void TimerBeat(void)
     19          {
   \                     TimerBeat:
   \   00000000   00402DE9           PUSH     {LR}
     20            // Called at 1000 Hz rate.
     21            ms_ctr++; // Sleep counter.
   \   00000004   ........           LDR      R0,??DataTable5  ;; ms_ctr
   \   00000008   ........           LDR      R1,??DataTable5  ;; ms_ctr
   \   0000000C   001091E5           LDR      R1,[R1, #+0]
   \   00000010   011091E2           ADDS     R1,R1,#+1
   \   00000014   001080E5           STR      R1,[R0, #+0]
     22            tick++; // Button debounce counter.
   \   00000018   ........           LDR      R0,??DataTable7  ;; tick
   \   0000001C   ........           LDR      R1,??DataTable7  ;; tick
   \   00000020   001091E5           LDR      R1,[R1, #+0]
   \   00000024   011091E2           ADDS     R1,R1,#+1
   \   00000028   001080E5           STR      R1,[R0, #+0]
     23            ProcessInput(); // Check buttons.
   \   0000002C   ........           BL       ProcessInput
     24          }
   \   00000030   0040BDE8           POP      {LR}
   \   00000034   1EFF2FE1           BX       LR               ;; return
     25          
     26          

   \                                 In segment CODE, align 4, keep-with-next
     27          void Sleep(int milliseconds)
     28          {
     29            ms_ctr = 0;
   \                     Sleep:
   \   00000000   ........           LDR      R1,??DataTable5  ;; ms_ctr
   \   00000004   0020A0E3           MOV      R2,#+0
   \   00000008   002081E5           STR      R2,[R1, #+0]
     30            while (ms_ctr < milliseconds) ;
   \                     ??Sleep_0:
   \   0000000C   ........           LDR      R1,??DataTable5  ;; ms_ctr
   \   00000010   001091E5           LDR      R1,[R1, #+0]
   \   00000014   000051E1           CMP      R1,R0
   \   00000018   FBFFFFBA           BLT      ??Sleep_0
     31          }
   \   0000001C   1EFF2FE1           BX       LR               ;; return
     32          
     33          

   \                                 In segment CODE, align 4, keep-with-next
     34          static void ProcessInput(void)
     35          {
   \                     ProcessInput:
   \   00000000   00402DE9           PUSH     {LR}
     36            /* Scan buttons with 50 ms interval     */
     37            if (tick >= 50)       
   \   00000004   ........           LDR      R0,??DataTable7  ;; tick
   \   00000008   000090E5           LDR      R0,[R0, #+0]
   \   0000000C   320050E3           CMP      R0,#+50
   \   00000010   030000BA           BLT      ??ProcessInput_0
     38            {
     39               ButtonScan();
   \   00000014   ........           _BLF     ButtonScan,??ButtonScan??rA
     40               tick = 0;
   \   00000018   ........           LDR      R0,??DataTable7  ;; tick
   \   0000001C   0010A0E3           MOV      R1,#+0
   \   00000020   001080E5           STR      R1,[R0, #+0]
     41            }
     42          }
   \                     ??ProcessInput_0:
   \   00000024   0040BDE8           POP      {LR}
   \   00000028   1EFF2FE1           BX       LR               ;; return

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable5:
   \   00000000   ........           DC32     ms_ctr

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable7:
   \   00000000   ........           DC32     tick
     43          

   Maximum stack usage in bytes:

     Function     CSTACK
     --------     ------
     ProcessInput     4
     Sleep            0
     TimerBeat        4


   Segment part sizes:

     Function/Label Bytes
     -------------- -----
     ms_ctr            4
     tick              4
     TimerBeat        56
     Sleep            32
     ProcessInput     44
     ??DataTable5      4
     ??DataTable7      4
      Others          36

 
 164 bytes in segment CODE
   8 bytes in segment DATA_Z
  12 bytes in segment INITTAB
 
 140 bytes of CODE memory (+ 36 bytes shared)
   8 bytes of DATA memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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