📄 user_main.lst
字号:
C51 COMPILER V7.09 USER_MAIN 05/22/2008 10:13:56 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE USER_MAIN
OBJECT MODULE PLACED IN ..\output\user_main.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\src\user_main.c LARGE OPTIMIZE(9,SIZE) BROWSE INCDIR(..\..\..\bsp\includ
-e;..\src\include;..\..\include) DEFINE(CONFIG_ASIC) DEBUG OBJECTEXTEND PRINT(.\user_main.lst) OBJECT(..\output\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"
*** WARNING C318 IN LINE 12 OF ..\src\user_main.c: can't open file 'api.h'
13 #include "lcd.h"
*** ERROR C129 IN LINE 102 OF ..\..\INCLUDE\LCD.H: missing ';' before 'lcd_max_str'
14 #include "key.h"
15 #include "common.h"
*** WARNING C318 IN LINE 5 OF ..\..\INCLUDE\COMMON.H: can't open file 'types.h'
16 #include "ap_common.h"
17 #include "display.h"
*** WARNING C318 IN LINE 4 OF ..\..\INCLUDE\DISPLAY.H: can't open file 'types.h'
18 #include "res_show.h"
19 #include "res.h"
20 #include "prefer.h"
21 #include "usb_main.h"
22 #include "logo.h"
23 #include "fm_tea5767.h"
24 #include "ui_main.h"
25 #include "batt.h"
26 #include "global_user.h"
*** WARNING C318 IN LINE 26 OF ..\src\user_main.c: can't open file 'global_user.h'
27
28 UINT16 count=0;
29 UINT16 count1=0;
30 UINT8 _flash;
31 INT8U low_batt_count = 0;
32 extern INT16U active;
33
34 extern INT16U code main_menu_fm[9];
35 extern INT16U code main_menu_nofm[8];
36 extern INT16U code main_menu_topfm[9];
37 extern INT16U code main_menu_topnofm[8];
38
39 #define CONFIG_EVB
40 #define CONFIG_NAND_LARGEPAGE
41
42 #define KEY(name) KEY_##name
43
44 #ifdef CONFIG_EVB // EVB Board
45 code UINT8 key_map[] =
46 {
47 KEY(UNUSED) , KEY(UNUSED) , KEY(PLAY) , KEY(PLAY) ,
48 KEY(PLAY) , KEY(PLAY) , KEY(PLAY) , KEY(PLAY) ,
C51 COMPILER V7.09 USER_MAIN 05/22/2008 10:13:56 PAGE 2
49 KEY(PLAY) , KEY(PLAY) , KEY(PREV) , KEY(PREV) ,
50 KEY(PREV) , KEY(PREV) , KEY(PREV) , KEY(NEXT) ,
51 KEY(NEXT) , KEY(NEXT) , KEY(NEXT) , KEY(NEXT) ,
52 KEY(AB_REPEAT), KEY(AB_REPEAT), KEY(AB_REPEAT), KEY(AB_REPEAT),
53 KEY(AB_REPEAT), KEY(MENU) , KEY(MENU) , KEY(MENU) ,
54 KEY(MENU) , KEY(MENU) , KEY(MENU) , KEY(MENU) ,
55 };
56 #else // FPGA Board
code UINT8 key_map[] =
{
KEY(UNUSED) , KEY(UNUSED) , KEY(UNUSED) , KEY(UNUSED) ,
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
69
70
71 code UINT8 battery_map[] =
72 {
73 BATTERY_LEVEL_1, BATTERY_LEVEL_2, BATTERY_LEVEL_3, BATTERY_LEVEL_4 ,
74 BATTERY_LEVEL_5, BATTERY_LEVEL_6, BATTERY_LEVEL_7, BATTERY_LEVEL_8 ,
75 BATTERY_LEVEL_9, BATTERY_LEVEL_10, BATTERY_LEVEL_11, BATTERY_LEVEL_12,
76 BATTERY_LEVEL_13, BATTERY_LEVEL_14, BATTERY_LEVEL_15, BATTERY_LEVEL_16,
77 BATTERY_LEVEL_17, BATTERY_LEVEL_18, BATTERY_LEVEL_19, BATTERY_LEVEL_20,
78 BATTERY_LEVEL_21, BATTERY_LEVEL_22, BATTERY_LEVEL_23, BATTERY_LEVEL_24,
79 BATTERY_LEVEL_25, BATTERY_LEVEL_26, BATTERY_LEVEL_27, BATTERY_LEVEL_28,
80 BATTERY_LEVEL_29, BATTERY_LEVEL_30, BATTERY_LEVEL_31, BATTERY_LEVEL_32,
81 };
82
83
84 UINT8 event_argv;
85
86 #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
104
105
106 void event_short_button(void)
107 {
108 key_process(event_argv);
109 }
110
C51 COMPILER V7.09 USER_MAIN 05/22/2008 10:13:56 PAGE 3
111 void event_long_button(void)
112 {
113 //Print("Long Button\n");
114 switch(event_argv) {
115 case KEY(NEXT):
116 case KEY(PREV):
117 if(curr_screen->id == SCREEN_MAIN)
118 event_argv += (KEY_FORWARD - KEY_NEXT);
119 break;
120 case KEY(VOL_DN):
121 case KEY(VOL_UP):
122 case KEY(PLAY):
123 event_argv += (KEY_LONG_PLAY - KEY_PLAY);
124 break;
125 case KEY(MENU):
126 event_argv += (KEY_LONG_MENU - KEY_MENU);
127 break;
128 default:
129 return;
130 }
131
132 key_process(event_argv);
133 }
134
135 void event_button_release(void)
136 {
137 //Print("Button lease\n");
138 key_process(KEY_RELEASE);
139 }
140
141 void event_usb_status_change(void)
142 {
143 }
144 void event_card_change()
145 {
146 if(event_argv==2)
147 {
148 // if(my_disk == DISK_SD)
149 // {
150 /*
151 if(music_on)
152 {
153 api_bStop();
154 music_on = false;
155 }
156 if(api_bChangeDisk(DISK_NAND))
157 my_disk = DISK_NAND;
158 */
159 // }
160 //
161 }
162 }
163
164
165 void event_init_startup(void);
166 void event_usb_cable_out(void)
167 {
168
169 }
170
171
172 void event_usb_cable_in(void)
C51 COMPILER V7.09 USER_MAIN 05/22/2008 10:13:56 PAGE 4
173 {
174 api_bLoad(Code_USER13,1);
175 }
176
177 void event_quarter_sec(void)
178 {
179 //INT8 buf[4];
180 #ifdef TEST
bg_color = 0x0000F77F;
gfx_set_bg(0x0000F77F);
fg_color = COLOR_SELECT;
my_sprintf(_buf, "%02d",(INT16U)api_u8GetBatteryRemain());
lcd_puts(32, 32, _buf, FONTSIZE_HYPER);
#endif
189
190 vKeyTimeOut();
191 /*
192 if(api_u8GetBatteryRemain() <= BATTERY_LEVEL_20)
193 {
194 low_batt_count++;
195 }
196 else
197 {
198 low_batt_count = 0;
199 }
200 if(low_batt_count==6) //shut down
201 {
202 close_volume();
203 bResShowPic(LOWPOWER,0,0);
204 delay(10000);
205 delay(10000);
206 vShutDown();
207 }
208
209 */
210 }
211
212 void event_loop_epilog(void)
213 {
214 }
215
216 void event_init_startup(void)
217 {
218 #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
228 api_vKeyMapRegister(key_map);
229
230 api_vSetPassCount(20);
231
232 api_vBatteryLevelRegister(battery_map);
233
234 api_bLoadPreferenceData((void*)(&tUserPreference),sizeof(USER_PREFERENCE_T));
C51 COMPILER V7.09 USER_MAIN 05/22/2008 10:13:56 PAGE 5
235
236 if (tUserPreference.u8magic != 0xa5)
237 {
238 vPreferenceDataInit();
239 tUserPreference.u8LanguageId =0;
240 api_bSavePreferenceData(&tUserPreference,sizeof(USER_PREFERENCE_T));
241 }
242
243 if(tUserPreference.u8LanguageId>4)
244 api_bSetLanguage(0);
245 else
246 api_bSetLanguage(tUserPreference.u8LanguageId);
247
248 u16TimerCount = 0;
249
250 my_disk = DISK_NAND;
251
252 #ifdef FIRST
lcd_init();
lcd_set_brightness(tUserPreference.u8Contrast);
#endif
256 count = 0;
257 gui_init();
258
259 #ifdef dynamic_load
#ifdef FIRST
bRadioInit();
delay(2);
api_vSetFMOnOFF(FM_TURN_OFF);
bRadioStop();
menu_id = 100;
usb_plug = 0;
#endif
if(menu_id==100 /*|| menu_id == 0*/)
active = 0;
else
active = menu_id;
#endif
274
275 api_bChangeDisk(DISK_NAND);
276 vOpenBackLight();
277 screen_map(SCREEN_MAIN);
278 }
279
280
281 typedef void event_handler(void);
282
283 static code event_handler *handlers[] = {
284 event_init_startup, // EVENT_INIT_STARTUP
285 NULL, // EVENT_WATCHDOG_UP
286 NULL, // EVENT_LOOP_PROLOG
287 event_loop_epilog, // EVENT_LOOP_EPILOG
288 NULL, // EVENT_OCTANT_SEC
289 event_quarter_sec, // EVENT_QUARTER_SEC
290 event_usb_cable_in, // EVENT_USB_CABLE_IN
291 event_usb_cable_out, // EVENT_USB_CABLE_OUT
292 event_usb_status_change, // EVENT_USB_STATUS_CHANGE
293 event_card_change, // EVENT_CARD_CHANGE
294 event_long_button, // EVENT_LONG_BUTTON
295 event_short_button, // EVENT_SHORT_BUTTON
296 event_button_release, // EVENT_BUTTON_RELEASE
C51 COMPILER V7.09 USER_MAIN 05/22/2008 10:13:56 PAGE 6
297 // event_dsp_exception, // EVENT_DSP_EXCEPTION
298 };
299
300 void user_main(UINT8 event, UINT8 argv)
301 {
302 event_argv = argv;
303 event -= 0x80;
304
305 if(handlers[event])
306 (*handlers[event])();
307 }
308
C51 COMPILATION COMPLETE. 4 WARNING(S), 1 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -