- Visual C++源码
- Visual Basic源码
- C++ Builder源码
- Java源码
- Delphi源码
- C/C++源码
- PHP源码
- Perl源码
- Python源码
- Asm源码
- Pascal源码
- Borland C++源码
- Others源码
- SQL源码
- VBScript源码
- JavaScript源码
- ASP/ASPX源码
- C#源码
- Flash/ActionScript源码
- matlab源码
- PowerBuilder源码
- LabView源码
- Flex源码
- MathCAD源码
- VBA源码
- IDL源码
- Lisp/Scheme源码
- VHDL源码
- Objective-C源码
- Fortran源码
- tcl/tk源码
- QT源码
UiMpTest.c
资源名称:SDK_M5661.rar [点击查看]
上传用户:hjhsjcl
上传日期:2020-09-25
资源大小:11378k
文件大小:6k
源码类别:
压缩解压
开发平台:
C++ Builder
- /*==========================================================================
- Copyright (c) 2004 ALi Corporation. All Rights Reserved
- File: UiCommon.c
- content: user interface for usb module
- History: Created by TNE 2004/8/17
- ==========================================================================*/
- #define _UI_USB_H_
- #include <DP8051XP.H>
- #include "TypeDef.h"
- #include "Const.h"
- #include "Reg5661.h"
- #include "Common.h"
- #include "UiCommon.h"
- #include "UiSysStr.h"
- #include "Usb.h"
- #include "OledString.h"
- #include "DDM.h"
- #include "NandFlash.h"
- #include "TestFunc.h"
- //#include "FmChip.h" //Walace060126#2
- #include "FmChipDrv.h" //Walace060126#2
- //#include "OLED.h"050923 del
- void UiFlashDisk(void);
- bit GetUsbConfig(void); //041208
- extern void SD_POWER_OFF(void);
- /*--------------------------------------------------------------------------
- Description:
- Main program for TARGET UsbFlashDisk
- Arguments:
- Global arguments:
- Returns:
- --------------------------------------------------------------------------*/
- main(void)
- {
- #if(SETTING_FOR_ISP_START)
- CKCON &= 0xF8;
- CKCON |= 0x07; // STRECH = 111
- obREADYENL=SM_EN|USB_EN|SD_EN;
- obREADYENH=(SRAMRA_EN|RA_EN|SYSREG_EN)|0xF0;
- //CKCON &= 0xF9; // STRECH = 001 //David 050406
- CKCON &= 0xF8; // STRECH = 000
- IE = 0;
- EA = 1;
- IP = 0;
- PX0 = 1;
- TMOD = 0x10;
- TCON = 0;
- T2CON= 0;
- TA=0xAA;
- TA=0x55;
- WDCON =0;
- // Context_Switch from BR.
- // 1. MCUCLK from USB, (120/4)
- // 2. SRAMCLK from USB, (120/4)
- // 3. SMCLK Disable, but from DCV
- // 4. DCVCLK disable
- // 5. Do not Reset Pipe
- obCLKLCDCTRL|=0x20; //Div2 Enable
- obDCVARRD = 0x04; //DCV clock
- obDCVWRDATA = 0xe1; //147 MHz
- obCLKSMCTRL=0xA0; //48Mhz
- obCLKSMDIVF=0x00;
- obSMREADCYC = 0x02;
- obSMWRITECYC = 0x02;
- obSMHOLDTIME = 0x00;
- obDCVARRD=0x04;
- obDCVWRDATA=0xf1; //disable dcv clock
- //gfExtendPowerOn=TRUE;
- gfNandInit=FALSE;
- NandGpioInit();
- NandInit();
- gxbMaxLUN =1;
- gbDescriptorSource = ROM; // Initial config Descriptor from ROM
- UsbDeviceInit(); //041208
- gxbDrawUsbUi = 0x00; //041213
- #else
- #if(SETTING_FOR_ICE_START)
- SettingForIceStart();
- #endif
- //obDCVARRD=0x0C; //DCV Addr 0x0C
- //obDCVWRDATA=0x46; //PWM Duty Cycle limited for un-know issue
- SetDCVPWMCycle(PWM_USB_CYCLE); //Walace060607#4
- obDCVARRD=0x0D; //DCV Addr 0x0d
- obDCVWRDATA=0xf9; //Set 0xf9
- IE = 0;
- EA = 1;
- //041216 start
- //SM Clock
- obCLKSMCTRL=0xD0;
- gfNandInit=FALSE;
- /* obCLKSMDIVF=0x03;
- obCLKSMCTRL=0xb8; //73(67)/5=14.6(13.4)*/
- //041216 end
- UsbDeviceInit();
- if(GetUsbConfig()) //041208 //v03210#1 make function
- gxbDrawUsbUi = 0x80;
- else
- gxbDrawUsbUi = 0x00;
- ClkSmDis();
- #endif
- // OledDispMaskInitial();050923 del
- #if(_PM_MPTEST_)
- obSYSSOFTRSTCTRL|=DSP_RST_DIS;//DSP RST DIS
- obPMSIZE|=0x04;//MCU USE ALL
- obDMXSIZE&=0xF8;
- obDMYSIZE&=0xF8;
- obGPIOBDIR |= 0x01;
- obGPIOBDAT&=~0x01; //clear on-board power down function
- obGPIOEDAT &= ~0x40;
- obGPIOEDIR |=0x40; //clear FM power down
- gxwFmFreq = 1007;
- FmInit();
- /* {
- obGPIOCDIR |= 0x01;
- for(gxwFmFreq=0xffff;gxwFmFreq>0;gxwFmFreq--)
- {
- obGPIOCDAT |= 0x01;
- }
- obGPIOCDIR &= ~0x01;
- }
- FmPLLRegTest(&MpCmdOld, &MpRet);
- */
- gxbLcdContrast=LCD_DEFAULT_CONTRAST;
- MpCmdOld.PENDING = 0;
- MpRet.STATUS = 0;
- MpRet.RESULT_1 = 0;
- #endif
- obUSBOTGSPEED |= USB_ON;
- while(1)
- {
- //041214: set bit 0
- // obDCVARRD=0x14; //Power Control
- // obDCVWRDATA=(obDCVRDDATA&0xFD); //VREG_BAT use VDDA
- obDCVARRD=0x14; //Power Control
- obDCVWRDATA=(obDCVRDDATA|0x01); //VREG_BAT use VDDA
- //041214
- //if(!VbusCheck())//if disconnect //Walace060901#2
- if(VbusCheck(CHECK_VBUS_OFF)) //if disconnect //Walace060901#2
- {
- obUSBOTGSPEED &= USB_OFFJ;
- EX0=0;
- /*
- obCLKLCDCTRL|=0x20; //Div2 Enable
- obDCVARRD=0x04; //DCV clock
- obDCVWRDATA=0xe1; //147 MHz
- //Mcu Clock
- obCLKMCUDIVF=0x03;
- obCLKMCUCTRL=0xb8; //73(67)/5=14.6(13.4)
- //Ra Clock
- obCLKSRAMDIVF=0x03;
- obCLKSRAMCTRL=0xb8; //73(67)/5=14.6(13.4)
- //SM Clock
- obCLKSMDIVF=0x03;
- obCLKSMCTRL=0xb8; //73(67)/5=14.6(13.4)
- SD_POWER_OFF();
- obCLKCODECCTRL=0x50;
- obCLKSDCTRL=0x50;
- obUSBOTGCTRL |= 0x02; //DPLL power down
- obMODSEL3 &= 0xBF; //USB Disable
- obSYSSOFTRSTCTRL &= 0x7F; //Usb Reset
- obSYSSOFTRSTCTRL=SM_RST_DIS|RA_RST_DIS; //reset all, but not SM, RA
- obSYSSOFTRSTCTRL2=0x00;
- obMODSEL1=0x08;
- obMODSEL3=0x08;
- LoadProgram(PM_INIT,NORMAL_CODE);
- */
- }
- UsbDevice();
- }
- }
- bit GetUsbConfig(void) //041208 050822
- {
- if(NandReadPhySec(gxwAddrPMI,1,SRAM_USB_DESC_ADDR)) //read PMI
- {
- *((BYTE *)&gwRomIdx+1) = gxbConfig[PM_CONFIG]; //get config address
- *((BYTE *)&gwRomIdx) = gxbConfig[PM_CONFIG+1];
- gwRomIdx++; //Allen050308
- gxwUsbDescIndex=gwRomIdx;
- if(NandReadPhySec(gwRomIdx,1,SRAM_USB_DESC_ADDR)) //read config data
- {
- if((gxbConfig[0]==0x61)&&(gxbConfig[1]==0x56)&&(gxbConfig[2]==0xAA)&&(gxbConfig[3]==0x55)&&(gxbConfig[510]==0x55)&&(gxbConfig[511]==0xAA))
- {
- *((BYTE *)&gwRomIdx+1) = gxbConfig[INDEX_OF_MODE_SELECT];
- *((BYTE *)&gwRomIdx) = gxbConfig[INDEX_OF_MODE_SELECT+1];
- gxbMaxLUN = gxbConfig[gwRomIdx+1];
- gbDescriptorSource =SRAM;
- return TRUE;
- }
- }
- }
- gxbMaxLUN =1;
- gbDescriptorSource = ROM; // Initial config Descriptor from ROM
- return FALSE;
- }
- //vicky050624
- /*--------------------------------------------------------------------------
- Desciption:
- Handle USB suspend & resume
- Arguments:
- Returns:
- void
- --------------------------------------------------------------------------*/
- API void USB_Suspend(void) large
- {
- }