⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 user_main.lst

📁 智原mp3 SDK 开发包 与巨力 有mp3 wma ogg decoder
💻 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 + -