📄 user_main.lst
字号:
C51 COMPILER V7.50 USER_MAIN 09/05/2008 10:00:13 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE USER_MAIN
OBJECT MODULE PLACED IN ..\output\output_bin\output_setting\user_main.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\..\code\ap_setting\src\user_main.c LARGE OPTIMIZE(9,SIZE) BROWSE INCDIR(
-..\..\..\bsp\include;..\..\code\ap_setting\src\include;..\..\code\global;..\..\code\include) DEFINE(CONFIG_ASIC,dynamic_
-load) DEBUG OBJECTEXTEND PRINT(..\output\output_bin\output_setting\user_main.lst) OBJECT(..\output\output_bin\output_set
-ting\user_main.obj)
line level source
1 /*
2 * user_main.c
3 *
4 * User Code Entry Function
5 *
6 * Copyright (c) FARADAY, All Right Reserved 2006
7 *
8 * Created by: K.J. Lin <kjlin@faraday-tech.com>
9 *
10 */
11 #include <stdio.h>
12 #include "api.h"
13 #include "lcd.h"
14 #include "key.h"
15 #include "common.h"
16 #include "ap_common.h"
17 #include "display.h"
18 #include "res_show.h"
19 #include "res.h"
20 //#include "lrc_parse.h"
21 #include "prefer.h"
22 #include "usb_main.h"
23 #include "setting_display.h"
24 #include "setting_main.h"
25 #include "ui_main.h"
26 #include "batt.h"
27 #include "global_user.h"
28 UINT8 cartoon_count=0;
29 INT8U low_batt_count = 0;
30 INT8U batt_count = 0;
31
32 #define CONFIG_EVB
33 #define CONFIG_NAND_LARGEPAGE
34
35 #define KEY(name) KEY_##name
36
37 #ifdef CONFIG_EVB // EVB Board
38 code UINT8 key_map[] =
39 {
40 KEY(UNUSED) , KEY(UNUSED) , KEY(PLAY) , KEY(PLAY) ,
41 KEY(PLAY) , KEY(PLAY) , KEY(PLAY) , KEY(PLAY) ,
42 KEY(PLAY) , KEY(PREV) , KEY(PREV) , KEY(PREV) ,
43 KEY(PREV) , KEY(PREV) , KEY(PREV) , KEY(NEXT) ,
44 KEY(NEXT) , KEY(NEXT) , KEY(NEXT) , KEY(AB_REPEAT),
45 KEY(AB_REPEAT), KEY(AB_REPEAT), KEY(AB_REPEAT), KEY(AB_REPEAT),
46 KEY(AB_REPEAT), KEY(MENU) , KEY(MENU) , KEY(MENU) ,
47 KEY(MENU) , KEY(MENU) , KEY(MENU) , KEY(MENU) ,
48 };
49 #else // FPGA Board
code UINT8 key_map[] =
{
KEY(UNUSED) , KEY(UNUSED) , KEY(UNUSED) , KEY(UNUSED) ,
C51 COMPILER V7.50 USER_MAIN 09/05/2008 10:00:13 PAGE 2
KEY(UNUSED) , KEY(UNUSED) , KEY(UNUSED) , KEY(UNUSED) ,
KEY(UNUSED) , KEY(UNUSED) , KEY(UNUSED) , KEY(MENU) ,
KEY(MENU) , KEY(MENU) , KEY(VOL_DN) , KEY(VOL_DN) ,
KEY(VOL_UP) , KEY(VOL_UP) , KEY(VOL_UP) , KEY(AB_REPEAT),
KEY(AB_REPEAT), KEY(PLAY) , KEY(PLAY) , KEY(PLAY) ,
KEY(STOP) , KEY(STOP) , KEY(STOP) , KEY(NEXT) ,
KEY(NEXT) , KEY(NEXT) , KEY(PREV) , KEY(PREV) ,
};
#endif
62
63 code UINT8 battery_map[] =
64 {
65 BATTERY_LEVEL_1, BATTERY_LEVEL_2, BATTERY_LEVEL_3, BATTERY_LEVEL_4 ,
66 BATTERY_LEVEL_5, BATTERY_LEVEL_6, BATTERY_LEVEL_7, BATTERY_LEVEL_8 ,
67 BATTERY_LEVEL_9, BATTERY_LEVEL_10, BATTERY_LEVEL_11, BATTERY_LEVEL_12,
68 BATTERY_LEVEL_13, BATTERY_LEVEL_14, BATTERY_LEVEL_15, BATTERY_LEVEL_16,
69 BATTERY_LEVEL_17, BATTERY_LEVEL_18, BATTERY_LEVEL_19, BATTERY_LEVEL_20,
70 BATTERY_LEVEL_21, BATTERY_LEVEL_22, BATTERY_LEVEL_23, BATTERY_LEVEL_24,
71 BATTERY_LEVEL_25, BATTERY_LEVEL_26, BATTERY_LEVEL_27, BATTERY_LEVEL_28,
72 BATTERY_LEVEL_29, BATTERY_LEVEL_30, BATTERY_LEVEL_31, BATTERY_LEVEL_32,
73 };
74
75 UINT8 event_argv;
76
77 #ifndef CONFIG_NAND_LARGEPAGE
INT16U free_mem_ptr;
INT16U free_mem_end_ptr;
INT32U *file_entry;
void xdata *my_malloc(UINT16 size)
{
void xdata *p;
if(size <= 0 || (free_mem_ptr + size > free_mem_end_ptr))
return 0;
p = (void *)free_mem_ptr;
free_mem_ptr += size;
return p;
}
#endif
95
96
97 void event_short_button(void)
98 {
99 1 key_process(event_argv);
100 1 }
101
102 void event_long_button(void)
103 {
104 1 //Print("Long Button\n");
105 1 switch(event_argv) {
106 2 case KEY(NEXT):
107 2 case KEY(PREV):
108 2 if(curr_screen->id == SCREEN_SETTING)
109 2 event_argv += (KEY_FORWARD - KEY_NEXT);
110 2 break;
111 2 case KEY(VOL_DN):
112 2 case KEY(VOL_UP):
113 2 case KEY(PLAY):
114 2 event_argv += (KEY_LONG_PLAY - KEY_PLAY);
C51 COMPILER V7.50 USER_MAIN 09/05/2008 10:00:13 PAGE 3
115 2 break;
116 2 case KEY(MENU):
117 2 event_argv += (KEY_LONG_MENU - KEY_MENU);
118 2 break;
119 2 default:
120 2 return;
121 2 }
122 1
123 1 key_process(event_argv);
124 1 }
125
126 void event_button_release(void)
127 {
128 1 //Print("Button lease\n");
129 1 key_process(KEY_RELEASE);
130 1 }
131
132 void event_usb_status_change(void)
133 {
134 1 }
135
136 void event_init_startup(void);
137 void event_usb_cable_out(void)
138 {
139 1 }
140
141 void event_usb_cable_in(void)
142 {
143 1 api_vLoad(Code_USER13,1);
144 1 }
145
146 void event_quarter_sec(void)
147 {
148 1 vKeyTimeOut();
149 1 if(screen_level!=SCREEN_LEVEL_USB_ON)
150 1 {
151 2 if(usb_plug)
152 2 {
153 3 ui_show_charge1();
154 3 }
155 2 }
156 1 else
157 1 {
158 2 ui_show_charge();
159 2 }
160 1
161 1 if(batt_count++ > 6 )
162 1 {
163 2 batt_count = 0;
164 2 if(!usb_plug)
165 2 ui_show_batt();
166 2 }
167 1 if(api_u8GetBatteryRemain() <= BATTERY_LEVEL_20)
168 1 {
169 2 low_batt_count++;
170 2 }
171 1 else
172 1 {
173 2 low_batt_count = 0;
174 2 }
175 1 if(low_batt_count==6) //shut down
176 1 {
C51 COMPILER V7.50 USER_MAIN 09/05/2008 10:00:13 PAGE 4
177 2 close_volume();
178 2 bResShowPic(LOWPOWER,0,0);
179 2 delay(500);
180 2 vShutDown();
181 2 }
182 1 }
183
184 void event_dsp_exception(void)
185 {
186 1 #if 0
if((curr_screen->id == SCREEN_MOVIE && screen_level == SCREEN_LEVEL_MOVIE_PLAY) ||
(curr_screen->id == SCREEN_PICTURE && screen_level == SCREEN_LEVEL_JPEG_DISP)) {
Print("Fmt err\n");
lcd_set_rw_area(SCREEN_START_X, SCREEN_START_Y, SCREEN_WIDTH, SCREEN_HEIGHT);
key_process(KEY(NEXT));
}
#endif
194 1 }
195
196 void event_loop_epilog(void)
197 {
198 1
199 1 }
200
201 void event_init_startup(void)
202 {
203 1 #ifndef CONFIG_NAND_LARGEPAGE
/* Nothing, just for demo "api_vGetFreeXdataInfo()" in small page flash. */
INT16U free_size, free_start;
api_vGetFreeXdataInfo(&free_size, &free_start);
free_mem_ptr = free_start;
free_mem_end_ptr = free_mem_ptr + free_size;
file_entry = (INT32U *)my_malloc(FILE_ENTRY_MAX * sizeof(UINT32));
#endif
213 1 api_vKeyMapRegister(key_map);
214 1 api_vSetPassCount(30);
215 1 api_vBatteryLevelRegister(battery_map);
216 1
217 1 api_bLoadPreferenceData((void*)(&tUserPreference),sizeof(USER_PREFERENCE_T));
218 1
219 1 /*
220 1 if (tUserPreference.u8magic != 0xa5)
221 1 {
222 1 vPreferenceDataInit();
223 1 tUserPreference.u8LanguageId =0;
224 1 api_bSavePreferenceData(&tUserPreference,sizeof(USER_PREFERENCE_T));
225 1 }
226 1 */
227 1
228 1 if(tUserPreference.u8LanguageId>4)
229 1 api_bSetLanguage(0);
230 1 else
231 1 api_bSetLanguage(tUserPreference.u8LanguageId);
232 1
233 1 //tUserPreference.u8Contrast = 192;
234 1 u16TimerCount = 0;
235 1 music_on = 0;
236 1 //lcd_init();
237 1 gui_init();
238 1 screen_level = SCREEN_LEVEL_MUSIC_STOP;
C51 COMPILER V7.50 USER_MAIN 09/05/2008 10:00:13 PAGE 5
239 1 screen_map(SCREEN_SETTING);
240 1 }
241
242
243 typedef void event_handler(void);
244
245 static code event_handler *handlers[] = {
246 event_init_startup, // EVENT_INIT_STARTUP
247 NULL, // EVENT_WATCHDOG_UP
248 NULL, // EVENT_LOOP_PROLOG
249 event_loop_epilog, // EVENT_LOOP_EPILOG
250 NULL, // EVENT_OCTANT_SEC
251 event_quarter_sec, // EVENT_QUARTER_SEC
252 event_usb_cable_in, // EVENT_USB_CABLE_IN
253 event_usb_cable_out, // EVENT_USB_CABLE_OUT
254 event_usb_status_change, // EVENT_USB_STATUS_CHANGE
255 NULL, // EVENT_CARD_CHANGE
256 event_long_button, // EVENT_LONG_BUTTON
257 event_short_button, // EVENT_SHORT_BUTTON
258 event_button_release, // EVENT_BUTTON_RELEASE
259 event_dsp_exception, // EVENT_DSP_EXCEPTION
260 };
261
262 void user_main(UINT8 event, UINT8 argv)
263 {
264 1 event_argv = argv;
265 1 event -= 0x80;
266 1
267 1 if(handlers[event])
268 1 (*handlers[event])();
269 1 }
270
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 330 ----
CONSTANT SIZE = 92 ----
XDATA SIZE = 4 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -