亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? load_file.c

?? 使用Linux ARM GCC編譯器來(lái)編譯
?? C
字號(hào):
/* * vivi/lib/load-file.c: Load a file via serial or usb. * * Copyright (C) 2002 MIZI Research, Inc. * * Author : Janghoon Lyu <nandy@mizi.com> * Date   : $Date: 2004/02/04 06:22:25 $ * * $Revision: 1.1.1.1 $ * * History * * 2002-06-27: Janghoon Lyu <nandy@mizi.com> *    - Initial code * * 2002-07-29: Janghoon Lyu <nandy@mizi.com> * * TODO: */#include "config.h"#include "command.h"#include "machine.h"#include <priv_data.h>#include "mtd/mtd.h"#include "xmodem.h"#include "printk.h"#include "serial.h"#include "vivi_string.h"#include <string.h>static int modem_is(const char *mt){	if (strncmp("x", mt, 1) == 0) {		return X_MODEM;	} else if (strncmp("y", mt, 1) == 0) {		return Y_MODEM;	} else if (strncmp("z", mt, 1) == 0) {		return Z_MODEM;	} else {		return UNKNOWN_MODEM;	}}static __u32 download_file(char *buf, size_t size, int modem){	switch (modem) {		case X_MODEM:			printk("Ready for downloading using xmodem...\n");			printk("Waiting...\n");			return xmodem_receive(buf, size);			break;		case Y_MODEM:			printk("Not support ymodem yet. Using xmodem\n");			printk("Ready for downling using xmodem\n");			printk("Waiting...\n");			return xmodem_receive(buf, size);			break;		case Z_MODEM:			printk("Not support zmodem yet. using xmodem\n");			printk("Ready for downling using xmodem\n");			printk("Wating...\n");			return xmodem_receive(buf, size);			break;		default:			printk("Not support this modem\n");			break;	}	return 0;}/* * Sub-commands */user_subcommand_t load_cmds[];/* * vivi> load ram <addr> <modem> * vivi> load ram <modem>  * */static void command_load_ram(int argc, const char **argv){	int ret;	char *buf = (char *)RAM_BASE;	size_t size;	__u32 retlen;	int modem = 0;	switch (argc) {	case 2:	/* load file to RAM_BASE */	  buf = (char *)RAM_BASE;	  size = 0;	  if ((modem = modem_is(argv[1])) == UNKNOWN_MODEM)	    goto error_parse_arg;	  break;	case 3:	  buf = (char *)strtoul(argv[1], NULL, 0, &ret);	  if (ret)	    goto error_parse_arg;	  size = 0;	  if ((modem = modem_is(argv[2])) == UNKNOWN_MODEM)	    goto error_parse_arg;	  break;	case 4:	  buf = (char *)strtoul(argv[1], NULL, 0, &ret);	  if (ret)	    goto error_parse_arg;	  size = (size_t)strtoul(argv[2], NULL, 0, &ret);	  if (ret)	    goto error_parse_arg;	  if ((modem = modem_is(argv[3])) == UNKNOWN_MODEM)	    goto error_parse_arg;	  break;	default:	  printk("invalid 'load ram' command: too few or many arguments\n");	  return;	}	retlen = download_file(buf, size, modem);	if (retlen == 0)	  goto error_download;	printk("downloaed file at 0x%08lx, size = %d bytes\n", buf, retlen);	return;error_parse_arg:	printk("Can't parsing argumets\n");error_download:	printk("Failed downloading file\n");	return;}static void command_load_flash(int argc, const char **argv){	int ret;	loff_t to; 	char *buf = (char *)RAM_BASE;	size_t size;	__u32 retlen;	int modem;	mtd_partition_t *dst_part;	int flag;	if (argc != 4 && argc != 3) {		printk("invalid 'load flash' command: too few or many arguments\n");	}	if (argc == 3) {		dst_part = get_mtd_partition(argv[1]);		if (dst_part == NULL) {			printk("Could not found \"%s\" partition\n", argv[1]);			return;		}		to = dst_part->offset;		size = dst_part->size;		flag = dst_part->flag;		modem = modem_is(argv[2]);	} else {		to = strtoul(argv[1], NULL, 0, &ret);		if (ret) goto error_parse_arg;		size = (size_t)strtoul(argv[2], NULL, 0, &ret);		if (ret) goto error_parse_arg;		modem = modem_is(argv[3]);		flag = 0;	}	retlen = download_file(buf, size, modem);	/* hacked by nandy. delay for serial output */	{ int i = 0x10000; while (i > 0) i--; }	if (retlen == 0) {		printk("Failed downloading file\n");		return;	}	printk("Downloaded file at 0x%08lx, size = %d bytes\n", buf, retlen);	if (retlen > size) {		printk("An image size is too large to write flash.			wanted = 0x%08lx, loaded = 0x%08lx\n", size, retlen);		return;	}	ret = write_to_flash(to, retlen, buf, flag);	return;error_parse_arg:	printk("Can't parsing argumets\n");	return;}static void command_help(int argc, const char **argv){	print_usage("load", load_cmds);}user_subcommand_t load_cmds[] = {{	"help",	command_help,	"help \t\t\t-- x = xmodem, ..."}, {	"flash",	command_load_flash,	"flash <mtd_part_name|addr length> <x|y|z> \t-- Load a file to Flash" }, {	"ram",	command_load_ram,	"ram [addr [length]] <x|y|z> \t\t-- Load a file to RAM " }, {	NULL,	NULL,	NULL}    };/* Main command */void command_load(int argc, const char **argv){	if (argc == 1) {		printk("invaild 'load' command: too few arguments\n");		command_help(0, NULL);		return;	}	execsubcmd(load_cmds, argc-1, argv+1);}user_command_t load_cmd = {	"load",	command_load,	NULL,	"load [{cmds}] \t\t\t-- Load a file to RAM/Flash"};

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人性色生活片| 久久免费的精品国产v∧| 日韩亚洲欧美高清| 国产精品久久久久7777按摩| 亚洲午夜免费电影| 国产成人自拍高清视频在线免费播放| 91同城在线观看| 久久久综合视频| 天天色综合成人网| 色偷偷88欧美精品久久久| 精品乱人伦小说| 日韩av午夜在线观看| 色综合天天视频在线观看 | 亚洲国产成人av好男人在线观看| 日韩国产欧美三级| 在线一区二区三区做爰视频网站| 久久精品欧美一区二区三区不卡| 亚洲bdsm女犯bdsm网站| 91片黄在线观看| 国产精品欧美一区喷水| 国产福利一区在线| 欧美精品一区二区三区四区| 奇米888四色在线精品| 在线一区二区三区四区五区| 亚洲青青青在线视频| 成av人片一区二区| 国产精品久久久久9999吃药| 粉嫩久久99精品久久久久久夜| 欧美mv日韩mv| 经典三级视频一区| 欧美一级在线观看| 免费成人在线观看视频| 日韩精品一区二区在线| 蓝色福利精品导航| 精品成人私密视频| 久久99久久99精品免视看婷婷 | 亚洲第一精品在线| 欧美三级三级三级| 日韩中文字幕一区二区三区| 欧美影片第一页| 亚洲妇女屁股眼交7| 777精品伊人久久久久大香线蕉| 成人不卡免费av| 国产午夜精品久久久久久免费视| 国产成a人亚洲| 国产精品久久久久久妇女6080 | 国产91精品露脸国语对白| 国产香蕉久久精品综合网| 国产成人免费xxxxxxxx| 国产精品欧美久久久久一区二区| 99精品视频在线播放观看| 亚洲精品久久久蜜桃| 欧美日韩黄色一区二区| 天天色综合天天| 精品国产91乱码一区二区三区| 国产一区中文字幕| 亚洲欧美日韩国产综合| 欧美一区二区三区四区五区| 国产真实乱偷精品视频免| 国产精品久久久久国产精品日日| 欧美影院一区二区| 国内欧美视频一区二区| 亚洲丝袜自拍清纯另类| 欧美一区二区三区免费视频 | 美女被吸乳得到大胸91| 国产亚洲一区二区三区在线观看 | 在线中文字幕不卡| 日本欧美一区二区| 国产精品国产三级国产普通话蜜臀 | 亚洲欧美在线观看| 欧美日韩在线电影| 国产在线精品视频| 亚洲婷婷在线视频| 精品毛片乱码1区2区3区 | 亚洲一区二区影院| 亚洲精品一线二线三线| 91成人国产精品| 国产一区二区影院| 一区二区三区四区不卡视频| 精品国产a毛片| 欧美日韩视频一区二区| 国产一区久久久| 五月婷婷激情综合| 亚洲欧美一区二区不卡| 久久久三级国产网站| 欧美老人xxxx18| 99视频在线精品| 国产一区二区三区免费观看| 亚洲va在线va天堂| 国产精品久久久久久久久免费丝袜 | 欧美日韩精品系列| 99九九99九九九视频精品| 精品一区二区三区免费播放 | 国产日韩精品一区二区浪潮av| 欧美色图免费看| av在线免费不卡| 国产精品一级在线| 欧美96一区二区免费视频| 亚洲成人高清在线| 一区二区三区在线看| 国产日韩av一区| 中文一区一区三区高中清不卡| 欧美一区二区三区免费视频| 欧美日韩一区二区三区高清| 91丝袜呻吟高潮美腿白嫩在线观看| 国产伦精品一区二区三区免费迷| 婷婷激情综合网| 午夜成人免费电影| 亚洲成人动漫精品| 亚洲成精国产精品女| 一区二区三区四区亚洲| 亚洲欧美另类在线| 综合色中文字幕| 亚洲欧美偷拍三级| 一区二区三区鲁丝不卡| 悠悠色在线精品| 亚洲黄色性网站| 香蕉成人伊视频在线观看| 亚洲成人av福利| 青青草国产成人99久久| 九九久久精品视频| 国产91在线|亚洲| 成人高清免费在线播放| 99久久精品免费| 日本高清成人免费播放| 欧美色精品在线视频| 欧美精选午夜久久久乱码6080| 欧美一区二区网站| 久久久综合九色合综国产精品| 日本一区二区免费在线| 国产精品成人一区二区艾草| 亚洲男同性视频| 日韩经典一区二区| 国产在线一区二区| 91亚洲精品久久久蜜桃网站| 欧美在线观看视频一区二区| 欧美丰满一区二区免费视频| 精品国产精品一区二区夜夜嗨| 国产亚洲短视频| 亚洲黄一区二区三区| 蜜臀av性久久久久蜜臀av麻豆| 国产91丝袜在线播放0| a在线播放不卡| 欧美精品日韩综合在线| 久久久夜色精品亚洲| 亚洲欧美电影一区二区| 日本欧美一区二区| 99久久免费国产| 欧美一区二区三区四区高清 | 欧美又粗又大又爽| 欧美成人aa大片| 亚洲激情综合网| 久久66热偷产精品| 91日韩精品一区| 欧美精品一区二区三区高清aⅴ | 亚洲国产岛国毛片在线| 亚洲一二三专区| 国产精品一区2区| 欧美日韩电影一区| 欧美激情一区二区三区蜜桃视频| 亚洲国产综合在线| 成人深夜福利app| 欧美一区二区三区不卡| 国产精品久久毛片| 精品系列免费在线观看| 欧洲激情一区二区| 国产精品伦理在线| 精品制服美女丁香| 欧美亚洲国产一区在线观看网站| 国产亚洲欧洲997久久综合| 亚洲一区二区三区激情| av资源网一区| 久久久精品免费网站| 日韩精品一二三| 欧美视频一区在线| 亚洲免费av高清| 国产成人精品亚洲777人妖| 日韩一区二区免费高清| 夜夜揉揉日日人人青青一国产精品| 国产精品一区二区久久不卡| 欧美电影免费观看高清完整版在线观看 | 久久麻豆一区二区| 久久精品99国产精品| 欧美裸体一区二区三区| 亚洲国产综合91精品麻豆| 91蜜桃网址入口| 国产精品伦理在线| 成人激情黄色小说| 国产午夜一区二区三区| 国产乱人伦偷精品视频不卡| 日韩一区二区三区精品视频| 午夜亚洲福利老司机| 欧美综合一区二区| 亚洲一区二区三区小说| 91免费视频网| 亚洲精品国产精品乱码不99| 99久久99久久精品国产片果冻| 1024成人网| 在线观看国产91| 亚洲国产精品影院|