?? main.lst
字號:
ARM COMPILER V2.53, main 23/07/06 16:59:03 PAGE 1
ARM COMPILER V2.53, COMPILATION OF MODULE main
OBJECT MODULE PLACED IN main.obj
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe main\main.c THUMB WARNINGLEVEL(3) OPTIMIZE(8,SPEED) DEBUG PRINT(.\MAIN.LST)
-TABS(4) OBJECT(main.obj)
stmt level source
1 /*------------------------------------------------------------
2 FILE NAME : main.c
3 DESCRIPTION : main function of bs1084 arm firmware.
4 VERSION : 0.0.1 (c)aureole
5 AUTHOR : Aureole
6 CREATE DATE : 07.17.2006
7 MODIFY DATE : 00.00.2006
8 LOGS :---\
9 -0.1.0 ----. 04.20.2006
10 -0.1.1 ----. 07.18.2006 transplant for keil Arm compiler.
11 --------------------------------------------------------------*/
12
13
14 //--------------------Include files-----------------------//
15
16 #include "..\include\config.h"
17 #include "..\include\main.h"
18 #include "..\include\ltc2600.h"
19 #include "..\include\spi.h"
20 #include "..\include\ad9958.h"
21 #include "..\include\common.h"
22 #include "..\include\my_lib.h"
23 #include "..\include\uart.h"
24 #include "..\include\timer.h"
25
26 #include <stdio.h>
27 #include <string.h>
28 #include <stdlib.h>
29
30 //-------------------Variable ----------------------------//
31 ARM_PORT p0,p1;
32
33 WAVEFORM_STRUCT parameter[2]={
34 {
35 WAVEFORM_SINE,
36 DEFAULT_FREQUENCY,
37 DEFAULT_AMPLITUDE,
38 (float)0.0
39 },
40 {
41 WAVEFORM_SINE,
42 DEFAULT_FREQUENCY,
43 DEFAULT_AMPLITUDE,
44 (float)0.0
45 }
46 };
47
48 unsigned int channel=0;
49 char buffer[BUFFER_SIZE]; //buffer
50
51 //-------------------Function prototype-------------------//
52 void initialize_system(void);
53 void set_relay(void);
54
55
56 /*--------------------------------------------------------
57 NAME : main
58 ENTRY TYPE: void
ARM COMPILER V2.53, main 23/07/06 16:59:03 PAGE 2
59 RETURN TYPE: void
60 PURPOSE : ---
61 VERSION : 0.1
62 DESCRIPTION:
63 CREATE DATE: 3.30.2006
64 LOGS : 1.first create;
65 ---------------------------------------------------------*/
66 int main(void)
67 {
68 1 unsigned char feedback=0,command_ready=0;
69 1 double temp=0;
70 1 int j=0;
71 1
72 1 initialize_system();
73 1
74 1 while(1){
75 2 //command receive and feedback;
76 2 if(uart0_receive_ok_flag){
77 3 uart0_receive_ok_flag=FALSE;
78 3 if(!feedback){
79 4 if(!strcmp(receive_buffer,"ERROR\r\n"))goto aa;
80 4 feedback=TRUE;
81 4 strcpy(buffer,receive_buffer);
82 4 send_string_to_uart0(receive_buffer);
83 4 clear_receive_buffer();
84 4 aa:;
85 4 }else{
86 4 if(!strcmp(receive_buffer,"OK\r\n"))command_ready=1;
87 4 feedback=FALSE;
88 4 }
89 3 }
90 2
91 2 //command interpret
92 2 if(command_ready){
93 3 command_ready=FALSE;
94 3 if(!strncmp(buffer,"FREQ",4)){
95 4 temp=__atof(buffer+5);
96 4 set_frequency(CHANNEL_A_B,temp);
97 4 }
98 3 }
99 2 if(j++==100000){
100 3 LED_ON
101 3
102 3
103 3 send_string_to_uart1("Hello I'm Vector");
104 3
105 3 };
106 2 if(j==200000){
107 3 LED_OFF
108 3
109 3 j=0;
110 3
111 3 };
112 2 }
113 1 }
114
115 /*--------------------------------------------------------
116 NAME : initialize_system
117 ENTRY TYPE: void
118 RETURN TYPE: void
119 PURPOSE : ---
120 VERSION : 0.1
121 DESCRIPTION:
122 CREATE DATE: 4.5.2006
123 LOGS : 1.first create;
124 ---------------------------------------------------------*/
ARM COMPILER V2.53, main 23/07/06 16:59:03 PAGE 3
125 void initialize_system(void)
126 {
127 1 unsigned long int i;
128 1
129 1
130 1 initialize_ltc2600();
131 1
132 1 set_sine_ac_zero(cal_a.sine_ac_zero,cal_b.sine_ac_zero);
133 1 set_squa_ac_zero(cal_a.squa_ac_zero,cal_b.squa_ac_zero);
134 1
135 1
136 1
137 1 initialize_led();
138 1 LED_ON;
139 1
140 1 for(i=0;i<800000;i++); //power on delay;
141 1
142 1
143 1 initialize_master_spi();
144 1 initialize_ad9958();
145 1 set_frequency(CHANNEL_A,8000000.0);
146 1 set_frequency(CHANNEL_B,8000000.0);
147 1
148 1 set_phase(CHANNEL_A,0.0);
149 1
150 1
151 1 LED_OFF;
152 1 IO0DIR|=(1<<16);
153 1 IO0DIR|=(1<<17);
154 1 p0.bits.bit16=1;
155 1 p0.bits.bit17=1;
156 1 IO0PIN=p0.value;
157 1
158 1 set_amplitude(CHANNEL_A,parameter[0].waveform,20.0);
159 1 set_amplitude(CHANNEL_B,parameter[1].waveform,20.0);
160 1
161 1 initialize_uart0();
162 1 initialize_uart1();
163 1 initialize_timer0();
164 1 enable_timer0();
165 1 }
166
167 /*--------------------------------------------------------
168 NAME : clear_buffer
169 ENTRY TYPE: void
170 RETURN TYPE: void
171 PURPOSE : ---
172 VERSION : 0.1
173 DESCRIPTION:
174 CREATE DATE: 4.8.2006
175 LOGS : 1.first create;
176 ---------------------------------------------------------*/
177 void clear_buffer(void)
178 {
179 1 memset(buffer,0,BUFFER_SIZE);
180 1 }
ARM COMPILER V2.53, main 23/07/06 16:59:03 PAGE 4
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** EXTERNALS:
EXTERN CODE16 (set_sine_ac_zero?T)
EXTERN CODE16 (set_squa_ac_zero?T)
EXTERN CODE16 (set_amplitude?T)
EXTERN DATA (cal_a)
EXTERN DATA (cal_b)
EXTERN CODE16 (initialize_master_spi?T)
EXTERN CODE16 (initialize_ad9958?T)
EXTERN CODE16 (set_frequency?T)
EXTERN CODE16 (set_phase?T)
EXTERN CODE16 (__atof?T)
EXTERN DATA (receive_buffer)
EXTERN DATA (uart0_receive_ok_flag)
EXTERN CODE16 (initialize_uart0?T)
EXTERN CODE16 (send_string_to_uart0?T)
EXTERN CODE16 (clear_receive_buffer?T)
EXTERN CODE16 (initialize_uart1?T)
EXTERN CODE16 (send_string_to_uart1?T)
EXTERN CODE16 (initialize_timer0?T)
EXTERN CODE16 (strcmp?T)
EXTERN CODE16 (strncmp?T)
EXTERN CODE16 (strcpy?T)
EXTERN CODE16 (memset?T)
EXTERN NUMBER (__startup)
*** PUBLICS:
PUBLIC initialize_system?T
PUBLIC main
PUBLIC clear_buffer?T
PUBLIC p0
PUBLIC p1
PUBLIC parameter
PUBLIC channel
PUBLIC buffer
*** DATA SEGMENT '?CON?main':
00000000 ??S_4:
00000000 DB 'Hello I'm Vector',0x00
00000011 ??S_3:
00000011 DB 'FREQ',0x00
00000016 ??S_2:
00000016 DB 'OK',0x0D,0x0A,0x00
0000001B ??S_1:
0000001B DB 'ERROR',0x0D,0x0A,0x00
*** DATA SEGMENT '?DT0?main':
00000000 p0:
00000000 DS 4
00000004 p1:
00000004 DS 4
00000008 parameter:
00000008 BEGIN_INIT
00000008 00000000 DD 0x0
0000000C 447A0000 DF32 1000
00000010 41200000 DF32 10
00000014 00000000 DF32 0
00000018 00000000 DD 0x0
0000001C 447A0000 DF32 1000
00000020 41200000 DF32 10
00000024 00000000 DF32 0
00000028 END_INIT
00000028 channel:
00000028 BEGIN_INIT
00000028 00000000 DD 0x0
ARM COMPILER V2.53, main 23/07/06 16:59:03 PAGE 5
0000002C END_INIT
0000002C buffer:
0000002C DS 100
*** CODE SEGMENT '?PR?main?main':
66: int main(void)
00000000 B500 PUSH {LR}
67: {
00000002 ; SCOPE-START
68: unsigned char feedback=0,command_ready=0;
00000002 2600 MOV R6,#0x0
00000004 1C37 MOV R7,R6 ; feedback
00000006 ---- Variable 'feedback' assigned to Register 'R7' ----
00000006 ---- Variable 'command_ready' assigned to Register 'R6' ----
69: double temp=0;
00000006 2500 MOV R5,#0x0
00000008 ---- Variable 'temp' assigned to Register 'R5' ----
70: int j=0;
00000008 2400 MOV R4,#0x0
0000000A ---- Variable 'j' assigned to Register 'R4' ----
72: initialize_system();
0000000A F7FF BL initialize_system?T ; T=0x0001 (1)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -