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

📄 main.lst

📁 一个AT91SAM7X256 PIO中断控制实验
💻 LST
📖 第 1 页 / 共 2 页
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.30A/W32 EVALUATION    01/Nov/2006  09:21:41 #
# Copyright 1999-2005 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Cpu mode        =  interwork                                            #
#    Endian          =  little                                               #
#    Stack alignment =  4                                                    #
#    Source file     =  G:\光盘刻录\IAR实验代码\实验二\AT91SAM7X256          #
#                       IO实验代码\AT91SAM7X-BasicTools\src\main.c           #
#    Command line    =  "G:\光盘刻录\IAR实验代码\实验二\AT91SAM7X256         #
#                       IO实验代码\AT91SAM7X-BasicTools\src\main.c" -lC      #
#                       "G:\光盘刻录\IAR实验代码\实验二\AT91SAM7X256         #
#                       IO实验代码\AT91SAM7X-BasicTools\compil\RAM_Debug\Lis #
#                       t\" --remarks -o "G:\光盘刻录\IAR实验代码\实验二\AT9 #
#                       1SAM7X256 IO实验代码\AT91SAM7X-BasicTools\compil\RAM #
#                       _Debug\Obj\" -z9 --debug --cpu_mode thumb --endian   #
#                       little --cpu ARM7TDMI --stack_align 4 --interwork    #
#                       -e --fpu None --dlib_config "F:\Program Files\IAR    #
#                       Systems\Embedded Workbench 4.0                       #
#                       Evaluation\arm\LIB\dl4tptinl8n.h" -I                 #
#                       "G:\光盘刻录\IAR实验代码\实验二\AT91SAM7X256         #
#                       IO实验代码\AT91SAM7X-BasicTools\compil\srcIAR\" -I   #
#                       "G:\光盘刻录\IAR实验代码\实验二\AT91SAM7X256         #
#                       IO实验代码\AT91SAM7X-BasicTools\compil\..\src\" -I   #
#                       "G:\光盘刻录\IAR实验代码\实验二\AT91SAM7X256         #
#                       IO实验代码\AT91SAM7X-BasicTools\compil\..\..\" -I    #
#                       "F:\Program Files\IAR Systems\Embedded Workbench     #
#                       4.0 Evaluation\arm\INC\"                             #
#    List file       =  G:\光盘刻录\IAR实验代码\实验二\AT91SAM7X256          #
#                       IO实验代码\AT91SAM7X-BasicTools\compil\RAM_Debug\Lis #
#                       t\main.lst                                           #
#    Object file     =  G:\光盘刻录\IAR实验代码\实验二\AT91SAM7X256          #
#                       IO实验代码\AT91SAM7X-BasicTools\compil\RAM_Debug\Obj #
#                       \main.r79                                            #
#                                                                            #
#                                                                            #
##############################################################################

G:\光盘刻录\IAR实验代码\实验二\AT91SAM7X256 IO实验代码\AT91SAM7X-BasicTools\src\main.c
      1          //*----------------------------------------------------------------------------
      2          //*         ATMEL Microcontroller Software Support  -  ROUSSET  -
      3          //*----------------------------------------------------------------------------
      4          //  DISCLAIMER:  THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
      5          //  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
      6          //  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
      7          //  DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
      8          //  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
      9          //  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
     10          //  OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
     11          //  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
     12          //  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     13          //  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     14          //*----------------------------------------------------------------------------
     15          //* File Name           : main.c
     16          //* Object              : main application written in C
     17          //* Creation            : JPP   16/Sep/2005
     18          //*----------------------------------------------------------------------------
     19          
     20          // Include Standard files
     21          #include "project.h"
     22          
     23          
     24          /* Global variables */
     25          #define      SPEED 		( AT91B_MAIN_OSC /1000)

   \                                 In segment DATA_I, align 4, align-sorted
     26          unsigned int LedSpeed = SPEED *20 ;
   \                     LedSpeed:
   \   00000000                      DS8 4
   \   00000004                      REQUIRE `?<Initializer for LedSpeed>`

   \                                 In segment DATA_C, align 4, align-sorted
     27          const int led_mask[AT91B_NB_LEB]= {AT91B_LED4, AT91B_LED2, AT91B_LED3,AT91B_LED1 };
   \                     led_mask:
   \   00000000   000040000000       DC32 4194304, 1048576, 2097152, 524288
   \              100000002000
   \              00000800    
     28          
     29          //*--------------------------------------------------------------------------------------
     30          //* Function Name       : change_speed
     31          //* Object              : Adjust "LedSpeed" value depending on SW1 and SW2 are pressed or not
     32          //* Input Parameters    : none
     33          //* Output Parameters   : Update of LedSpeed value.
     34          //*--------------------------------------------------------------------------------------

   \                                 In segment CODE, align 4, keep-with-next
     35          void change_speed ( void )
     36          {//* Begin
     37              if ( (AT91F_PIO_GetInput(AT91D_BASE_PIO_SW) & AT91B_SW1) == 0 )
   \                     change_speed:
   \   00000000   0C49               LDR         R1,??change_speed_0  ;; 0xfffff43c
   \   00000002   0A68               LDR         R2,[R1, #+0]
   \   00000004   ....               LDR         R0,??DataTable1    ;; LedSpeed
   \   00000006   9200               LSL         R2,R2,#+0x2
   \   00000008   06D4               BMI         ??change_speed_1
     38              {
     39                  if ( LedSpeed > SPEED ) LedSpeed -=SPEED ;
   \   0000000A   0268               LDR         R2,[R0, #+0]
   \   0000000C   0A4B               LDR         R3,??change_speed_0+0x4  ;; 0x4801
   \   0000000E   9A42               CMP         R2,R3
   \   00000010   02D3               BCC         ??change_speed_1
   \   00000012   0A4B               LDR         R3,??change_speed_0+0x8  ;; 0xffffb800
   \   00000014   D218               ADD         R2,R2,R3
   \   00000016   0260               STR         R2,[R0, #+0]
     40              }
     41              if ( (AT91F_PIO_GetInput(AT91D_BASE_PIO_SW) & AT91B_SW3) == 0 )
   \                     ??change_speed_1:
   \   00000018   0968               LDR         R1,[R1, #+0]
   \   0000001A   4901               LSL         R1,R1,#+0x5
   \   0000001C   07D4               BMI         ??change_speed_2
     42              {
     43                  if ( LedSpeed < AT91B_MAIN_OSC ) LedSpeed +=SPEED ;
   \   0000001E   0168               LDR         R1,[R0, #+0]
   \   00000020   074A               LDR         R2,??change_speed_0+0xC  ;; 0x1194000
   \   00000022   9142               CMP         R1,R2
   \   00000024   03D2               BCS         ??change_speed_2
   \   00000026   9022               MOV         R2,#+0x90
   \   00000028   D201               LSL         R2,R2,#+0x7        ;; #+0x4800
   \   0000002A   8918               ADD         R1,R1,R2
   \   0000002C   0160               STR         R1,[R0, #+0]
     44              }
     45          }//* End
   \                     ??change_speed_2:
   \   0000002E   00B0               ADD         SP,#+0
   \   00000030   7047               BX          LR                 ;; return
   \   00000032   C046               NOP         
   \                     ??change_speed_0:
   \   00000034   3CF4FFFF           DC32        0xfffff43c
   \   00000038   01480000           DC32        0x4801
   \   0000003C   00B8FFFF           DC32        0xffffb800
   \   00000040   00401901           DC32        0x1194000
     46          
     47          //*--------------------------------------------------------------------------------------
     48          //* Function Name       : wait
     49          //* Object              : Software waiting loop
     50          //* Input Parameters    : none. Waiting time is defined by the global variable LedSpeed.
     51          //* Output Parameters   : none
     52          //*--------------------------------------------------------------------------------------

   \                                 In segment CODE, align 4, keep-with-next
     53          void wait ( void )
     54          {//* Begin
   \                     wait:
   \   00000000   00B5               PUSH        {LR}
     55              unsigned int waiting_time ;
     56              change_speed () ;
   \   00000002   ........           BL          change_speed
     57              for(waiting_time = 0; waiting_time < LedSpeed; waiting_time++) ;
   \   00000006   0020               MOV         R0,#+0

⌨️ 快捷键说明

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