?? pwmtest.lst
字號:
ARM COMPILER V2.50a, pwmtest 08/03/06 18:03:56 PAGE 1
ARM COMPILER V2.50a, COMPILATION OF MODULE pwmtest
OBJECT MODULE PLACED IN .\Obj\pwmtest.obj
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe pwmtest.c THUMB INCDIR(..\Common\inc) DEBUG PRINT(.\LST\PWMTEST.LST) TABS(4)
- OBJECT(.\Obj\pwmtest.obj)
stmt level source
1 /*****************************************************************************
2 * pwmtest.c: main C entry file for Philips LPC214x Family Microprocessors
3 *
4 * Copyright(C) 2006, Philips Semiconductor
5 * All rights reserved.
6 *
7 * History
8 * 2005.10.01 ver 1.00 Prelimnary version, first Release
9 *
10 ******************************************************************************/
11 #include "LPC214x.h" /* LPC21xx definitions */
12 #include "type.h"
13 #include "irq.h"
14 #include "timer.h"
15 #include "pwm.h"
16
17 extern DWORD timer_counter;
18 extern DWORD match_counter;
19
20 /******************************************************************************
21 ** Main Function main()
22 ******************************************************************************/
23 int main (void)
24 {
25 1 DWORD cycle = PWM_CYCLE, offset = 0;
26 1
27 1 init_VIC();
28 1
29 1 if ( PWM_Init( 0 ) != TRUE )
30 1 {
31 2 while( 1 ); /* fatal error */
32 2 }
33 1
34 1 PWM_Set( cycle, offset );
35 1 PWM_Start();
36 1
37 1 while ( 1 )
38 1 {
39 2 if ( match_counter != 0 )
40 2 {
41 3 match_counter = 0;
42 3 if( offset <= PWM_CYCLE )
43 3 offset += PWM_OFFSET;
44 3 else
45 3 offset = 0;
46 3 PWM_Set( cycle, offset );
47 3 }
48 2 }
49 1 PWM_Stop() ;
50 1
51 1 return 0;
52 1 }
53
54 /******************************************************************************
55 ** End Of File
56 ******************************************************************************/
ARM COMPILER V2.50a, pwmtest 08/03/06 18:03:56 PAGE 2
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** EXTERNALS:
EXTERN CODE16 (init_VIC?T)
EXTERN CODE16 (PWM_Init?T)
EXTERN CODE16 (PWM_Set?T)
EXTERN CODE16 (PWM_Start?T)
EXTERN CODE16 (PWM_Stop?T)
EXTERN DATA (match_counter)
EXTERN NUMBER (__startup)
*** PUBLICS:
PUBLIC main
*** CODE SEGMENT '?PR?main?pwmtest':
23: int main (void)
00000000 B500 PUSH {LR}
24: {
00000002 ; SCOPE-START
25: DWORD cycle = PWM_CYCLE, offset = 0;
00000002 4800 LDR R5,=0x4B0
00000004 ---- Variable 'cycle' assigned to Register 'R5' ----
00000004 2600 MOV R6,#0x0
00000006 1C34 MOV R4,R6 ; offset
00000008 ---- Variable 'offset' assigned to Register 'R4' ----
27: init_VIC();
00000008 F7FF BL init_VIC?T ; T=0x0001 (1)
0000000A FFFA BL init_VIC?T ; T=0x0001 (2)
29: if ( PWM_Init( 0 ) != TRUE )
0000000C 1C30 MOV R0,R6
0000000E F7FF BL PWM_Init?T ; T=0x0001 (1)
00000010 FFF7 BL PWM_Init?T ; T=0x0001 (2)
00000012 2801 CMP R0,#0x1 ; PWM_Init?T
00000014 D000 BEQ L_1 ; T=0x00000018
31: while( 1 ); /* fatal error */
00000016 L_2:
00000016 E7FE B L_2 ; T=0x00000016
32: }
00000018 L_1:
34: PWM_Set( cycle, offset );
00000018 1C28 MOV R0,R5 ; cycle
0000001A 1C21 MOV R1,R4 ; offset
0000001C F7FF BL PWM_Set?T ; T=0x0001 (1)
0000001E FFF0 BL PWM_Set?T ; T=0x0001 (2)
35: PWM_Start();
00000020 F7FF BL PWM_Start?T ; T=0x0001 (1)
00000022 FFEE BL PWM_Start?T ; T=0x0001 (2)
37: while ( 1 )
00000024 L_8:
39: if ( match_counter != 0 )
00000024 4800 LDR R0,=match_counter ; match_counter
00000026 6800 LDR R0,[R0,#0x0] ; match_counter
00000028 2800 CMP R0,#0x0
0000002A D0FB BEQ L_8 ; T=0x00000024
41: match_counter = 0;
0000002C 2000 MOV R0,#0x0
0000002E 4800 LDR R1,=match_counter ; match_counter
00000030 6008 STR R0,[R1,#0x0] ; match_counter
42: if( offset <= PWM_CYCLE )
00000032 1C21 MOV R1,R4 ; offset
00000034 4800 LDR R2,=0x4B0
00000036 4291 CMP R1,R2 ; offset
00000038 D801 BHI L_11 ; T=0x0000003E
43: offset += PWM_OFFSET;
0000003A 34C8 ADD R4,#0xC8
ARM COMPILER V2.50a, pwmtest 08/03/06 18:03:56 PAGE 3
0000003C E000 B L_12 ; T=0x00000040
0000003E L_11:
45: offset = 0;
0000003E 1C04 MOV R4,R0 ; offset
00000040 L_12:
46: PWM_Set( cycle, offset );
00000040 1C28 MOV R0,R5 ; cycle
00000042 1C21 MOV R1,R4 ; offset
00000044 F7FF BL PWM_Set?T ; T=0x0001 (1)
00000046 FFDC BL PWM_Set?T ; T=0x0001 (2)
48: }
00000048 E7EC B L_8 ; T=0x00000024
51: return 0;
0000004A ; SCOPE-END
52: }
0000004A BC08 POP {R3}
0000004C 4718 BX R3
0000004E ENDP ; 'main'
Module Information Static
----------------------------------
code size = ------
data size = ------
const size = ------
End of Module Information.
ARM COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -