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

📄 main.c

📁 S3C2410上非操作系统的usbHost程序
💻 C
字号:

#include  "base.h"
extern int s_usbhost_reset(void);//"reset - reset (rescan) USB controller\n"
extern int s_usbhost_start(void);
extern int s_usbhost_stop(void);//"usb stop [f]  - stop USB [f]=force stop\n"
extern int s_usbhost_tree(void);//"usb tree  - show USB device tree\n"
extern int s_usbhost_scan(void);
//extern int s_usbhost_stor(void);//"usb storage  - show details of USB storage devices\n"
extern int s_usbhost_part(void);//"usb part [dev] - print partition table of one or all USB storage devices\n"
extern int s_usbhost_info(int argc, char *argv[]);//"usb info [dev] - show available USB devices\n"
extern int s_usbhost_read(unsigned long rblk,unsigned long rcnt,unsigned char *rbuffer);//usb read addr blk# cnt - read `cnt' blocks starting at block `blk#'
//to memory address `addr'\n"
extern int s_usbhost_dev(int dev);//"usb dev [dev] - show or set current USB storage device\n"
extern void TestWaitMs(void);
/*=======================================
	"fatls   - list files in a directory (default /)\n",
    =======================================*/
extern int do_fat_ls (const char *pathandfilename);
/*=======================================
	"fatinfo - print information about filesystem\n",
   ========================================*/
extern int do_fat_fsinfo (void);
/*========================================
	"fatload - load binary file from a dos filesystem\n",
    ========================================*/
extern int do_fat_fsload (const char *filename,unsigned char *buffer,unsigned long addr,unsigned long count);
void DelayMs(unsigned short ms)
{
    int i,j;
    for(i=0;i<ms;i++)
    for(j=0;j<51000;j++);//75000=1.4ms 50000=986us
}


int main_code(void)
{
    char cmd;
    char tempbuf[10][100];
    char temppath[1000];
    unsigned char buffer[10000];
    int i,ret;
    unsigned long len;
//	 s_UartInit();	//du add 2007.2.10
    memset(tempbuf,0,sizeof(tempbuf));
//	 s_UartInit();	//du add 2007.2.10
    s_UartPrint("P78 welcome you!\n");
    rBWSCON = 0x01022202;//set lcd and sram databus width
    rGPECON &= ~(3<<8);
    rGPECON |= (1<<8);
    rGPEDAT &= ~(1<<4);
    rGPEUP  &= ~(1<<4);
	//=======du add
	s_usbhost_reset();
	//===================
    s_UartPrint("Usb Host Test!\n");
    s_TimerInit();
    s_UartPrint("---------------------\n");
    s_UartPrint("1-Start  2-Stop   3-Tree \n");
    s_UartPrint("4-Scan   5-Stor   6-Part \n");
    s_UartPrint("7-Info   8-Read   9-Dev \n");
    s_UartPrint("l-List   i-fsinfo r-read   \n");
    s_UartPrint("---------------------\n");
    while(1)
    {
        s_UartPrint("Please Select Function Key: ");
        cmd=s_getkey();
        s_UartPrint("\n");
        switch(cmd)
        {
        case '1':
            s_UartPrint("s_usbhost_start() \n");
            s_usbhost_start();
            break;
        case '2':
            //s_UartPrint("s_usbhost_stop() \n");
            //s_usbhost_stop();
            s_UartPrint("s_usbhost_dev(2, tempbuf) \n");
            s_usbhost_read(2,8,buffer);
            break;
        case '3':
            s_UartPrint("s_usbhost_tree() \n");
            s_usbhost_tree();
            break;
        case '4':
            s_UartPrint("s_usbhost_scan() \n");
            s_usbhost_scan();
            break;
        case '5':
            //s_UartPrint("s_usbhost_stor() \n");
            //s_usbhost_stor();
            break;
        case '6':
            s_UartPrint("s_usbhost_part() \n");
            s_usbhost_part();
            break;
        case '7':
            s_UartPrint("s_usbhost_info(2, tempbuf) \n");
      //      s_usbhost_info(2, tempbuf);
            break;
        case '8':
            s_UartPrint("s_usbhost_read(5, tempbuf) \n");
            s_usbhost_dev(0);
            s_usbhost_read(0,1,buffer);
            //s_usbhost_read(8,8,buffer);
            //s_usbhost_read(16,8,buffer);
            //s_usbhost_read(24,8,buffer);
            //s_usbhost_read(32,8,buffer);
            break;
        case '9':
            s_UartPrint("s_usbhost_dev(0, tempbuf) \n");
            s_usbhost_dev(0);
            break;
        case '0':
            s_UartPrint("s_usbhost_dev(1, tempbuf) \n");
            s_usbhost_read(1,8,buffer);
            break;
        case 'l':
        case 'L':
            s_UartPrint("do_fat_ls () \n");
            memset(temppath,0,sizeof(temppath));
            strcpy(temppath,"/");
            do_fat_ls (temppath);
            break;
        case 'i':
        case 'I':
            s_UartPrint("do_fat_fsinfo() \n");
            do_fat_fsinfo ();
            break;
        case 'r':
        case 'R':
			//===========
			

			//===========
           s_UartPrint("do_fat_fsload(0,5) \n");
            ret=do_fat_fsload ("readme.txt",buffer,0,5);			
           s_UartPrint("ret=%d \n",ret);
            s_UartPrint("do_fat_fsload(5,15) \n");
            ret=do_fat_fsload ("readme.txt",buffer,5,15);
            s_UartPrint("ret=%d  \n",ret);
            
            break;
        }
    }
    return 0;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -