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

📄 cmd_usbslave.c

📁 嵌入式试验箱S3C2410的bootloader源代码
💻 C
字号:
/* * mike.arm9@163.com, www.arm9.net * */#include <common.h>#include <command.h>#include <asm/byteorder.h>#include <def.h>#ifdef CONFIG_USB_DEVICEint g_bUSBWait = 1;u32 g_dwDownloadLen = 0;extern int download_run;extern volatile U32 dwUSBBufBase;extern volatile u32 dwUSBBufSize;extern __u32 usb_receive(char *buf, size_t len, U32 wait);int do_usbslave (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]){    int i;    size_t len = ~0UL;    char buf[32];    /* download_run为1时表示将文件保存在USB Host发送工具dnw指定的位置     * download_run为0时表示将文件保存在参数argv[2]指定的位置     * 要下载程序到内存,然后直接运行时,要设置download_run=1,这也是这个参数名字的来由     */    download_run = 1;    switch (argc) {        case 1:        {            break;        }        case 2:        {            g_bUSBWait = (int)simple_strtoul(argv[1], NULL, 16);            break;        }        case 3:        {            g_bUSBWait = (int)simple_strtoul(argv[1], NULL, 16);            load_addr = simple_strtoul(argv[2], NULL, 16);            download_run = 0;            break;        }                default:         {            printf ("Usage:\n%s\n", cmdtp->usage);    		return 1;        }    }    dwUSBBufBase = load_addr;      dwUSBBufSize = (FREE_RAM_SIZE&(~(0x80000-1)));      if (g_bUSBWait)        len = FREE_RAM_SIZE;    g_dwDownloadLen = usb_receive(dwUSBBufBase, len, g_bUSBWait);    sprintf(buf, "%X", g_dwDownloadLen);    setenv("filesize", buf);    	return 0;}U_BOOT_CMD(	usbslave,	3,	0,	do_usbslave,	"usbslave - get file from host(PC)\n",	"[wait] [loadAddress]\n"	"\"wait\" is 0 or 1, 0 means for return immediately, not waits for the finish of transferring\n");#endif

⌨️ 快捷键说明

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