📄 main.lst
字号:
##############################################################################
# #
# IAR ARM ANSI C/C++ Compiler V4.30A/W32 KICKSTART 27/Oct/2005 17:55:18 #
# Copyright 1999-2005 IAR Systems. All rights reserved. #
# #
# Cpu mode = interwork #
# Endian = little #
# Stack alignment = 4 #
# Source file = E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicTools-I #
# AR4_30A-1_2\AT91SAM7X-BasicTools\src\main.c #
# Command line = E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicTools-I #
# AR4_30A-1_2\AT91SAM7X-BasicTools\src\main.c -lC #
# E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicTools-I #
# AR4_30A-1_2\AT91SAM7X-BasicTools\compil\Binary\List\ #
# -o E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicToo #
# ls-IAR4_30A-1_2\AT91SAM7X-BasicTools\compil\Binary\O #
# bj\ -z9 --debug --cpu_mode thumb --endian little #
# --cpu ARM7TDMI --stack_align 4 --interwork -e --fpu #
# None --dlib_config "D:\Program Files\IAR #
# Systems\Embedded Workbench 4.0 #
# Kickstart\arm\LIB\dl4tptinl8n.h" -I #
# E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicTools-I #
# AR4_30A-1_2\AT91SAM7X-BasicTools\compil\srcIAR\ -I #
# E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicTools-I #
# AR4_30A-1_2\AT91SAM7X-BasicTools\compil\..\src\ -I #
# E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicTools-I #
# AR4_30A-1_2\AT91SAM7X-BasicTools\compil\..\..\ -I #
# "D:\Program Files\IAR Systems\Embedded Workbench #
# 4.0 Kickstart\arm\INC\" #
# List file = E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicTools-I #
# AR4_30A-1_2\AT91SAM7X-BasicTools\compil\Binary\List\ #
# main.lst #
# Object file = E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicTools-I #
# AR4_30A-1_2\AT91SAM7X-BasicTools\compil\Binary\Obj\m #
# ain.r79 #
# #
# #
##############################################################################
E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicTools-IAR4_30A-1_2\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
21 // Include Standard files
22 #include "project.h"
23
24
25 /* Global variables */
26 #define SPEED ( AT91B_MAIN_OSC /1000)
\ In segment DATA_I, align 4, align-sorted
27 unsigned int LedSpeed = SPEED *20 ;
\ LedSpeed:
\ 00000000 DS8 4
\ 00000004 REQUIRE `?<Initializer for LedSpeed>`
\ In segment DATA_C, align 4, align-sorted
28 const int led_mask[AT91B_NB_LEB]= {AT91B_LED1, AT91B_LED2, AT91B_LED3, AT91B_LED4};
\ led_mask:
\ 00000000 000008000000 DC32 524288, 1048576, 2097152, 4194304
\ 100000002000
\ 00004000
29
30 //*--------------------------------------------------------------------------------------
31 //* Function Name : change_speed
32 //* Object : Adjust "LedSpeed" value depending on SW1 and SW2 are pressed or not
33 //* Input Parameters : none
34 //* Output Parameters : Update of LedSpeed value.
35 //*--------------------------------------------------------------------------------------
\ In segment CODE, align 4, keep-with-next
36 void change_speed ( void )
37 {//* Begin
38 if ( (AT91F_PIO_GetInput(AT91D_BASE_PIO_SW) & AT91B_SW1) == 0 )
\ change_speed:
\ 00000000 0C49 LDR R1,??change_speed_0 ;; 0xfffff63c
\ 00000002 0A68 LDR R2,[R1, #+0]
\ 00000004 .... LDR R0,??DataTable1 ;; LedSpeed
\ 00000006 1201 LSL R2,R2,#+0x4
\ 00000008 06D4 BMI ??change_speed_1
39 {
40 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]
41 }
42 if ( (AT91F_PIO_GetInput(AT91D_BASE_PIO_SW) & AT91B_SW3) == 0 )
\ ??change_speed_1:
\ 00000018 0968 LDR R1,[R1, #+0]
\ 0000001A 8900 LSL R1,R1,#+0x2
\ 0000001C 07D4 BMI ??change_speed_2
43 {
44 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]
45 }
46
47 }//* End
\ ??change_speed_2:
\ 0000002E 00B0 ADD SP,#+0
\ 00000030 7047 BX LR ;; return
\ 00000032 C046 NOP
\ ??change_speed_0:
\ 00000034 3CF6FFFF DC32 0xfffff63c
\ 00000038 01480000 DC32 0x4801
\ 0000003C 00B8FFFF DC32 0xffffb800
\ 00000040 00401901 DC32 0x1194000
48
49 //*--------------------------------------------------------------------------------------
50 //* Function Name : wait
51 //* Object : Software waiting loop
52 //* Input Parameters : none. Waiting time is defined by the global variable LedSpeed.
53 //* Output Parameters : none
54 //*--------------------------------------------------------------------------------------
\ In segment CODE, align 4, keep-with-next
55 void wait ( void )
56 {//* Begin
\ wait:
\ 00000000 00B5 PUSH {LR}
57 unsigned int waiting_time ;
58 change_speed () ;
\ 00000002 ........ BL change_speed
59 for(waiting_time = 0; waiting_time < LedSpeed; waiting_time++) ;
\ 00000006 0020 MOV R0,#+0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -