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

📄 user_main.lst

📁 智原mp3 SDK 开发包 与巨力 有mp3 wma ogg decoder
💻 LST
字号:
C51 COMPILER V7.50   USER_MAIN                                                             09/05/2008 09:53:54 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE USER_MAIN
OBJECT MODULE PLACED IN ..\output\output_bin\output_program\user_main.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\..\code\ap_main\src\user_main.c LARGE OPTIMIZE(9,SIZE) BROWSE INCDIR(..\
                    -..\..\bsp\include;..\..\code\ap_main\src\include;..\..\code\global;..\..\code\include) DEFINE(CONFIG_ASIC,dynamic_load,F
                    -IRST) DEBUG OBJECTEXTEND PRINT(..\output\output_bin\output_program\user_main.lst) OBJECT(..\output\output_bin\output_pro
                    -gram\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 "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"
  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)     ,
  49                  KEY(PLAY)     , KEY(PREV)     , 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),
C51 COMPILER V7.50   USER_MAIN                                                             09/05/2008 09:53:54 PAGE 2   

  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   1              key_process(event_argv);
 109   1      }
 110          
 111          void event_long_button(void)
 112          {
 113   1              //Print("Long Button\n");
 114   1              switch(event_argv) {
C51 COMPILER V7.50   USER_MAIN                                                             09/05/2008 09:53:54 PAGE 3   

 115   2                      case KEY(NEXT):
 116   2                      case KEY(PREV):
 117   2                              if(curr_screen->id == SCREEN_MAIN)
 118   2                                      event_argv += (KEY_FORWARD - KEY_NEXT);
 119   2                              break;  
 120   2                      case KEY(VOL_DN):
 121   2                      case KEY(VOL_UP):
 122   2                      case KEY(PLAY):
 123   2                              event_argv += (KEY_LONG_PLAY - KEY_PLAY);
 124   2                              break;
 125   2                      case KEY(MENU):
 126   2                              event_argv += (KEY_LONG_MENU - KEY_MENU);
 127   2                              break;                          
 128   2                      default:
 129   2                              return;
 130   2              }
 131   1              
 132   1              key_process(event_argv);
 133   1      }
 134          
 135          void event_button_release(void)
 136          {
 137   1              //Print("Button lease\n");
 138   1              key_process(KEY_RELEASE);
 139   1      }
 140          
 141          void event_usb_status_change(void)
 142          {
 143   1      }
 144          void event_card_change()
 145          {
 146   1              if(event_argv==2) 
 147   1              {
 148   2              //      if(my_disk == DISK_SD)
 149   2              //      {
 150   2                              /*
 151   2                              if(music_on)
 152   2                              {
 153   2                                      api_bStop();
 154   2                                      music_on = false;
 155   2                              }
 156   2                              if(api_bChangeDisk(DISK_NAND))
 157   2                                      my_disk = DISK_NAND;
 158   2                              */
 159   2              //      }
 160   2              //
 161   2              }
 162   1      }
 163          
 164          
 165          void event_init_startup(void);
 166          void event_usb_cable_out(void)
 167          {
 168   1              
 169   1      }
 170          
 171          
 172          void event_usb_cable_in(void)
 173          {
 174   1              api_vLoad(Code_USER13,1);
 175   1      }                                       
 176          
C51 COMPILER V7.50   USER_MAIN                                                             09/05/2008 09:53:54 PAGE 4   

 177          void event_quarter_sec(void)
 178          {       
 179   1              //INT8 buf[4];
 180   1      #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   1              
 190   1              vKeyTimeOut();          
 191   1      /*      
 192   1              if(api_u8GetBatteryRemain() <= BATTERY_LEVEL_20)
 193   1              {
 194   1                      low_batt_count++;
 195   1              }       
 196   1              else 
 197   1              {
 198   1                      low_batt_count = 0;
 199   1              }       
 200   1              if(low_batt_count==6) //shut down
 201   1              {                           
 202   1                      close_volume();         
 203   1                      bResShowPic(LOWPOWER,0,0);
 204   1                      delay(10000);
 205   1                      delay(10000);
 206   1                      vShutDown();            
 207   1              }
 208   1              
 209   1      */                      
 210   1      }
 211          
 212          void event_loop_epilog(void)
 213          {
 214   1      }
 215          
 216          void event_init_startup(void)
 217          {
 218   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  
 228   1              api_vKeyMapRegister(key_map);    
 229   1              
 230   1              api_vSetPassCount(20);
 231   1              
 232   1              api_vBatteryLevelRegister(battery_map);
 233   1              
 234   1              api_bLoadPreferenceData((void*)(&tUserPreference),sizeof(USER_PREFERENCE_T));         
 235   1              
 236   1              if (tUserPreference.u8magic != 0xa5)
 237   1              {
 238   2                  vPreferenceDataInit();
C51 COMPILER V7.50   USER_MAIN                                                             09/05/2008 09:53:54 PAGE 5   

 239   2                  tUserPreference.u8LanguageId =0;
 240   2                  api_bSavePreferenceData(&tUserPreference,sizeof(USER_PREFERENCE_T));
 241   2              }
 242   1              
 243   1              if(tUserPreference.u8LanguageId>4)  
 244   1                      api_bSetLanguage(0);
 245   1              else 
 246   1                      api_bSetLanguage(tUserPreference.u8LanguageId);
 247   1                      
 248   1              u16TimerCount = 0;
 249   1                      
 250   1              my_disk = DISK_NAND;
 251   1                              
 252   1      #ifdef FIRST
 253   1              lcd_init();     
 254   1              lcd_set_brightness(tUserPreference.u8Contrast); 
 255   1      #endif  
 256   1          
 257   1              count = 0;      
 258   1              gui_init();
 259   1              
 260   1      #ifdef dynamic_load
 261   1      #ifdef FIRST
 262   1              bRadioInit();
 263   1              delay(2);
 264   1              api_vSetFMOnOFF(FM_TURN_OFF);
 265   1              bRadioStop();   
 266   1              menu_id = 100;
 267   1              usb_plug = 0;
 268   1      #endif  
 269   1              if(menu_id==100 /*|| menu_id == 0*/)
 270   1                      active = 0;
 271   1              else
 272   1                      active = menu_id;       
 273   1              
 274   1      #endif  
 275   1              
 276   1              api_bChangeDisk(DISK_NAND);
 277   1              vOpenBackLight();
 278   1      
 279   1              screen_map(SCREEN_MAIN);
 280   1      }
 281          
 282          
 283          typedef void event_handler(void);
 284          
 285          static code event_handler *handlers[] = {
 286                  event_init_startup,             // EVENT_INIT_STARTUP
 287                  NULL,                           // EVENT_WATCHDOG_UP
 288                  NULL,                           // EVENT_LOOP_PROLOG
 289                  event_loop_epilog,              // EVENT_LOOP_EPILOG
 290                  NULL,                           // EVENT_OCTANT_SEC
 291                  event_quarter_sec,              // EVENT_QUARTER_SEC
 292                  event_usb_cable_in,             // EVENT_USB_CABLE_IN
 293                  event_usb_cable_out,            // EVENT_USB_CABLE_OUT
 294                  event_usb_status_change,        // EVENT_USB_STATUS_CHANGE
 295                  event_card_change,              // EVENT_CARD_CHANGE
 296                  event_long_button,              // EVENT_LONG_BUTTON
 297                  event_short_button,             // EVENT_SHORT_BUTTON
 298                  event_button_release,           // EVENT_BUTTON_RELEASE
 299          //      event_dsp_exception,            // EVENT_DSP_EXCEPTION
 300          };
C51 COMPILER V7.50   USER_MAIN                                                             09/05/2008 09:53:54 PAGE 6   

 301          
 302          void user_main(UINT8 event, UINT8 argv)
 303          {
 304   1              event_argv = argv;
 305   1              event -= 0x80;
 306   1      
 307   1              if(handlers[event])
 308   1                      (*handlers[event])();
 309   1      }
 310          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    351    ----
   CONSTANT SIZE    =     90    ----
   XDATA SIZE       =      7    ----
   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 + -