Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3404195
  • 博文数量: 754
  • 博客积分: 10132
  • 博客等级: 上将
  • 技术积分: 7780
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-14 23:36
文章分类

全部博文(754)

文章存档

2012年(3)

2011年(39)

2010年(66)

2009年(167)

2008年(479)

我的朋友

分类: LINUX

2008-04-21 01:28:35

#include "def.h"
#include "2410addr.h"
#include "config.h"
#include "board.h"
unsigned long download_len;
unsigned long download_addr;
extern int LoadFileFromUsb(U32 a1, U32 a2, U32 a3, U32 a4);
/***************************************************************************
Function name: Main
Parameter    : void
Description  : 初始化系统,串口,并调用USB下载实验函数
Return      : void
Argument     :
Autor & date :
****************************************************************************/
void Main(void)
{
 BoardInitStart();  //系统初始化,MMU初始化
 SystemClockInit();  //系统时钟初始化
 MemCfgInit();   //设置NAND FLASH的配置寄存器
// PortInit();    //S3C2410X的GPIO初始化
 SerialSwitch(0);  //选择串口0
 SerialChgBaud(115200); //波特率115200
 
 EnableInt();   //允许中断
// while( 1 )
 {
  printf("FFT-S3C2410 USB DEVICE Download File Test,please Enter 'ESC' to exit\n");
  LoadFileFromUsb(0,0,0,0);//USB DEVICE下载函数
  printf("FFT-S3C2410 USB DEVICE Test Finished\n");
 }
}
/***************************************************************************/
 
 
//USB Device下载函数
int LoadFileFromUsb(U32 a1, U32 a2, U32 a3, U32 a4)
{
 puts("USB download file\n");
 return BoardUsbDownload(0, 0);
}
 
 
//USB Device下载函数
static int BoardUsbDownload(U32 addr, U32 run)

 U8 fun;
 int len;
 
 /*GPIO初始化*/
 //GPH10、GPH9=input
 rGPHCON = rGPHCON&~(0xf<<18)|(0x5<<18);
    //To enhance the USB signal quality.
    //CLKOUT 0,1=OUTPUT to reduce the power consumption. 
 rGPGCON &= 0xfff3ffff; //GPG9 input
 fun = 1;
 //USB设备初始化,主要是初始化S3C2410X USB设备的控制寄存器。
 UsbdInit(fun); 
  
 Delay(100);
 rGPGCON |= 0x00040000; 
 rGPGDAT |= 0x0200;  //GPG9 ouput 1
   
 pISR_USBD =(unsigned)IsrUsbd;//连接USB设备的中断向量表
 ClearPending(BIT_USBD);//清除中断屏蔽位
 EnableIrq(BIT_USBD);//开USB设备中断
 
 len = WaitDownload(addr);
    
 DisableIrq(BIT_USBD);//关USB设备中断
 rGPGCON &= 0xfff3ffff; //GPG9 input
 
 if(len>0) {
  printf("\nUSB download finished,press any key to exit\n");
 }
 return len;
}
阅读(1131) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~