📄 main.lst
字号:
##############################################################################
# #
# IAR ARM ANSI C/C++ Compiler V4.30A/W32 KICKSTART 25/Oct/2005 09:46:41 #
# Copyright 1999-2005 IAR Systems. All rights reserved. #
# #
# Cpu mode = interwork #
# Endian = little #
# Stack alignment = 4 #
# Source file = E:\SAM7X\at91sam7x256_iar\AT91_SAM7X256-IAR\AT91SAM7 #
# X256-BasicTools-IAR4_30A-1_2\AT91SAM7X-BasicTools\sr #
# c\main.c #
# Command line = E:\SAM7X\at91sam7x256_iar\AT91_SAM7X256-IAR\AT91SAM7 #
# X256-BasicTools-IAR4_30A-1_2\AT91SAM7X-BasicTools\sr #
# c\main.c -lC E:\SAM7X\at91sam7x256_iar\AT91_SAM7X256 #
# -IAR\AT91SAM7X256-BasicTools-IAR4_30A-1_2\AT91SAM7X- #
# BasicTools\compil\FLASH_Debug\List\ -o #
# E:\SAM7X\at91sam7x256_iar\AT91_SAM7X256-IAR\AT91SAM7 #
# X256-BasicTools-IAR4_30A-1_2\AT91SAM7X-BasicTools\co #
# mpil\FLASH_Debug\Obj\ -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\at91sam7x256_iar\AT91_SAM7X256-IAR\AT91SAM7 #
# X256-BasicTools-IAR4_30A-1_2\AT91SAM7X-BasicTools\co #
# mpil\srcIAR\ -I E:\SAM7X\at91sam7x256_iar\AT91_SAM7X #
# 256-IAR\AT91SAM7X256-BasicTools-IAR4_30A-1_2\AT91SAM #
# 7X-BasicTools\compil\..\src\ -I #
# E:\SAM7X\at91sam7x256_iar\AT91_SAM7X256-IAR\AT91SAM7 #
# X256-BasicTools-IAR4_30A-1_2\AT91SAM7X-BasicTools\co #
# mpil\..\..\ -I "D:\Program Files\IAR #
# Systems\Embedded Workbench 4.0 Kickstart\arm\INC\" #
# List file = E:\SAM7X\at91sam7x256_iar\AT91_SAM7X256-IAR\AT91SAM7 #
# X256-BasicTools-IAR4_30A-1_2\AT91SAM7X-BasicTools\co #
# mpil\FLASH_Debug\List\main.lst #
# Object file = E:\SAM7X\at91sam7x256_iar\AT91_SAM7X256-IAR\AT91SAM7 #
# X256-BasicTools-IAR4_30A-1_2\AT91SAM7X-BasicTools\co #
# mpil\FLASH_Debug\Obj\main.r79 #
# #
# #
##############################################################################
E:\SAM7X\at91sam7x256_iar\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 // 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_LED1, AT91B_LED2, AT91B_LED3, AT91B_LED4};
\ led_mask:
\ 00000000 000008000000 DC32 524288, 1048576, 2097152, 4194304
\ 100000002000
\ 00004000
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 9202 LSL R2,R2,#+0xA
\ 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 0902 LSL R1,R1,#+0x8
\ 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
46 }//* 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
47
48 //*--------------------------------------------------------------------------------------
49 //* Function Name : wait
50 //* Object : Software waiting loop
51 //* Input Parameters : none. Waiting time is defined by the global variable LedSpeed.
52 //* Output Parameters : none
53 //*--------------------------------------------------------------------------------------
\ In segment CODE, align 4, keep-with-next
54 void wait ( void )
55 {//* Begin
\ wait:
\ 00000000 00B5 PUSH {LR}
56 unsigned int waiting_time ;
57 change_speed () ;
\ 00000002 ........ BL change_speed
58 for(waiting_time = 0; waiting_time < LedSpeed; waiting_time++) ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -