📄 main.lst
字号:
##############################################################################
# #
# IAR ARM ANSI C/C++ Compiler V4.40A/W32 EVALUATION 18/Jun/2007 11:29:56 #
# Copyright 1999-2005 IAR Systems. All rights reserved. #
# #
# Cpu mode = interwork #
# Endian = little #
# Stack alignment = 4 #
# Source file = E:\课题\分布式电磁频谱侦察监视系统\ARM学习资料\实例\ #
# IAR实验代码\实验二\AT91SAM7X256 #
# IO实验代码\AT91SAM7X-BasicTools\src\main.c #
# Command line = "E:\课题\分布式电磁频谱侦察监视系统\ARM学习资料\实例 #
# \IAR实验代码\实验二\AT91SAM7X256 #
# IO实验代码\AT91SAM7X-BasicTools\src\main.c" -lC #
# "E:\课题\分布式电磁频谱侦察监视系统\ARM学习资料\实例 #
# \IAR实验代码\实验二\AT91SAM7X256 #
# IO实验代码\AT91SAM7X-BasicTools\compil\FLASH_Debug\L #
# ist\" -o "E:\课题\分布式电磁频谱侦察监视系统\ARM学习 #
# 资料\实例\IAR实验代码\实验二\AT91SAM7X256 #
# IO实验代码\AT91SAM7X-BasicTools\compil\FLASH_Debug\O #
# bj\" -z9 --debug --cpu_mode thumb --endian little #
# --cpu ARM7TDMI --stack_align 4 --interwork -e --fpu #
# None --dlib_config "C:\Program Files\IAR #
# Systems\Embedded Workbench 4.0 #
# Evaluation\ARM\LIB\dl4tptinl8n.h" -I #
# "E:\课题\分布式电磁频谱侦察监视系统\ARM学习资料\实例 #
# \IAR实验代码\实验二\AT91SAM7X256 #
# IO实验代码\AT91SAM7X-BasicTools\compil\srcIAR\" -I #
# "E:\课题\分布式电磁频谱侦察监视系统\ARM学习资料\实例 #
# \IAR实验代码\实验二\AT91SAM7X256 #
# IO实验代码\AT91SAM7X-BasicTools\compil\..\src\" -I #
# "E:\课题\分布式电磁频谱侦察监视系统\ARM学习资料\实例 #
# \IAR实验代码\实验二\AT91SAM7X256 #
# IO实验代码\AT91SAM7X-BasicTools\compil\..\..\" -I #
# "C:\Program Files\IAR Systems\Embedded Workbench #
# 4.0 Evaluation\ARM\INC\" #
# List file = E:\课题\分布式电磁频谱侦察监视系统\ARM学习资料\实例\ #
# IAR实验代码\实验二\AT91SAM7X256 #
# IO实验代码\AT91SAM7X-BasicTools\compil\FLASH_Debug\L #
# ist\main.lst #
# Object file = E:\课题\分布式电磁频谱侦察监视系统\ARM学习资料\实例\ #
# IAR实验代码\实验二\AT91SAM7X256 #
# IO实验代码\AT91SAM7X-BasicTools\compil\FLASH_Debug\O #
# bj\main.r79 #
# #
# #
##############################################################################
E:\课题\分布式电磁频谱侦察监视系统\ARM学习资料\实例\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
\ change_speed:
\ 00000000 00B5 PUSH {LR}
37 if ( (AT91F_PIO_GetInput(AT91D_BASE_PIO_SW) & AT91B_SW1) == 0 )
\ 00000002 0C49 LDR R1,??change_speed_0 ;; 0xfffff43c
\ 00000004 0A68 LDR R2,[R1, #+0]
\ 00000006 .... LDR R0,??DataTable1 ;; LedSpeed
\ 00000008 9200 LSLS R2,R2,#+2
\ 0000000A 06D4 BMI ??change_speed_1
38 {
39 if ( LedSpeed > SPEED ) LedSpeed -=SPEED ;
\ 0000000C 0268 LDR R2,[R0, #+0]
\ 0000000E 0A4B LDR R3,??change_speed_0+0x4 ;; 0x4801
\ 00000010 9A42 CMP R2,R3
\ 00000012 02D3 BCC ??change_speed_1
\ 00000014 094B LDR R3,??change_speed_0+0x8 ;; 0xffffb800
\ 00000016 D218 ADDS R2,R2,R3
\ 00000018 0260 STR R2,[R0, #+0]
40 }
41 if ( (AT91F_PIO_GetInput(AT91D_BASE_PIO_SW) & AT91B_SW3) == 0 )
\ ??change_speed_1:
\ 0000001A 0968 LDR R1,[R1, #+0]
\ 0000001C 4901 LSLS R1,R1,#+5
\ 0000001E 07D4 BMI ??change_speed_2
42 {
43 if ( LedSpeed < AT91B_MAIN_OSC ) LedSpeed +=SPEED ;
\ 00000020 0168 LDR R1,[R0, #+0]
\ 00000022 074A LDR R2,??change_speed_0+0xC ;; 0x1194000
\ 00000024 9142 CMP R1,R2
\ 00000026 03D2 BCS ??change_speed_2
\ 00000028 9022 MOVS R2,#+144
\ 0000002A D201 LSLS R2,R2,#+7 ;; #+18432
\ 0000002C 8918 ADDS R1,R1,R2
\ 0000002E 0160 STR R1,[R0, #+0]
44 }
45 }//* End
\ ??change_speed_2:
\ 00000030 01BC POP {R0}
\ 00000032 0047 BX R0 ;; return
\ ??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 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -