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

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

?? fluted.cpp

?? Flash tool for ARM cpu
?? CPP
字號(hào):
// FluteD.cpp : Defines the entry point for the console application.
//


#include "stdafx.h"

#include <string.h>

#include	"FluteD.h"
#include	"Pin.h"
#include	"Group.h"
#include	"JTAGDev.h"
#include	"JTAGPort.h"
#include	"FCDFile.h"
#include	"JTAGChain.h"
#include	"JTAGFlash.h"
#include	"Program.h"

char *ver;
char cmd;
int flag_verbose, flag_verify;
char *data_file;
char *fcd_file;
unsigned long start_addr, end_addr, data_length;
char msg[1024];
FILE *data_fp;
BYTE *dt_pool;

#ifdef _LOG
FILE *lp;
#endif

CProgram Prog;

long filesize(FILE *stream)
{
	long curpos, length;
	curpos = ftell(stream);
	fseek(stream, 0L, SEEK_END);
	length = ftell(stream);
	fseek(stream, curpos, SEEK_SET);
	return length;
}

void ShowTitle(void)
{
	printf("Flash Programming Tool via IEEE1149.1 BSR (Version %s)\n", ver);
	printf("Designed By David Geng  April, 2000\n\n");
}

void ShowAddr(void)
{
	printf("Start From: %lu (0x%lX)\n", start_addr, start_addr);
	printf("End Before: %lu (0x%lX)\n", end_addr, end_addr);
	printf("Total Byte: %lu (0x%lX)\n", data_length, data_length);
}

void Usage(void)
{
	printf("Usage: <this> command [options]\n");
	printf("command: (case insensitive)\n");
	printf("	R		Read from Flash\n");
	printf("	W		Write to Flash\n");
	printf("	E		Erase Flash\n");
	printf("	V		Verify data in Flash\n");
	printf("	B		Blank check the Flash\n");
	printf("	T		Test scan chain\n");
	printf("	A		Automatic erase + write\n");
	printf("option: (case insensitive)\n");
	printf("	-V		Verify(off)\n");
	printf("	-D		Debug mode (off)\n");
	printf("	-C		FCD file name (default.fcd)\n");
	printf("	-F		Data file name (flute.bin)\n");
	printf("	-S		Start address (0, decimal in byte)\n");
	printf("	-L		Data Length (256 or size of file, decimal in byte)\n");
}

int ParseCmd(int argc, char* argv[])
{
	// default value
	flag_verbose = 0;
	flag_verify = 0;
	data_file = DEF_DATA_FILE;
	fcd_file = DEF_FCD_FILE;
	start_addr = DEF_START_ADDR;
	data_length = DEF_DATA_LENGTH; 

	if(argc < 2)
	{
		printf("Too few parameters !\n\n");
		return 1;
	}
	cmd = argv[1][0];
	for(int i=2; i< argc; i++ )
	{
		if( strcmpi(argv[i],"-d") == 0 )
		{
			flag_verbose = 1;
		}
		else if( strcmpi(argv[i],"-v") == 0 )
		{
			flag_verify = 1;
		}
		else if( strcmpi(argv[i],"-c") == 0)
		{
			fcd_file = argv[++i];
		}
		else if( strcmpi(argv[i],"-f") == 0)
		{
			data_file = argv[++i];
		}
		else if( strcmpi(argv[i],"-s") == 0)
		{
			start_addr = atoi(argv[++i]);
		}
		else if( strcmpi(argv[i],"-l") == 0)
		{
			data_length = atoi(argv[++i]);
		}
		else
		{
			printf("Unknown option !\n\n");
			return 1;
		}
	}
	printf("FCD File:%s		Data File:%s\n", fcd_file, data_file);
	return 0;
}

int SwitchCmd(void)
{
	switch(cmd)
	{
		case 'T':
		case 't':
			return Prog.Check();
		case 'R':
		case 'r':
			if(Prog.Check()) return 1;
			if(data_length == DEF_DATA_LENGTH)
			{
				data_length = DEF_READ_LENGTH;
			}
			end_addr = start_addr + data_length;
			ShowAddr();
			data_fp = fopen(data_file, "wb");
			if(data_fp == NULL)
			{
				AddLog("File open failure !\n");
				return 1;
			}
			dt_pool = (BYTE *) malloc(data_length);
			if(dt_pool == NULL)
			{
				AddLog("Memory allocate failure !\n");
				return 1;
			}
			if(Prog.Read(dt_pool, start_addr, data_length))
			{
				free(dt_pool);
				AddLog("JTAG Flash read failure !\n");
				return 1;
			}
			if( fwrite(dt_pool, 1, data_length, data_fp) !=  data_length)
			{
				free(dt_pool);
				AddLog("File write failure !\n");
				return 1;
			}
			if(flag_verify)
			{
				if(Prog.Verify(dt_pool, start_addr, data_length))
				{
					free(dt_pool);
					AddLog("JTAG Flash verify failure !\n");
					return 1;
				}
			}
			free(dt_pool);
			break;
		case 'E':
		case 'e':
			if(Prog.Check()) return 1;
			if(data_length == DEF_DATA_LENGTH)
			{
				data_length = DEF_READ_LENGTH;
			}
			end_addr = start_addr + data_length;
			ShowAddr();
			if(Prog.Erase(start_addr, data_length))
			{
				AddLog("JTAG Flash erase failure !\n");
				return 1;
			}
			if(flag_verify)
			{
				if(Prog.Blank(start_addr, data_length))
				{
					free(dt_pool);
					AddLog("JTAG Flash blank failure !\n");
					return 1;
				}
			}
			break;
		case 'W':
		case 'w':
			if(Prog.Check()) return 1;
			data_fp = fopen(data_file, "rb");
			if(data_fp == NULL)
			{
				AddLog("File open failure !\n");
				return 1;
			}
			if(data_length == DEF_DATA_LENGTH)
			{
				data_length = filesize(data_fp);
			}
			end_addr = start_addr + data_length;
			ShowAddr();
			dt_pool = (BYTE *) malloc(data_length);
			if(dt_pool == NULL)
			{
				AddLog("Memory allocate failure !\n");
				return 1;
			}
			if( fread(dt_pool, 1, data_length, data_fp) !=  data_length)
			{
				free(dt_pool);
				AddLog("File read failure !\n");
				return 1;
			}
			if(Prog.Write(dt_pool, start_addr, data_length))
			{
				free(dt_pool);
				AddLog("JTAG Flash write failure !\n");
				return 1;
			}
			if(flag_verify)
			{
				if(Prog.Verify(dt_pool, start_addr, data_length))
				{
					free(dt_pool);
					AddLog("JTAG Flash verify failure !\n");
					return 1;
				}
			}
			free(dt_pool);
			break;
		case 'V':
		case 'v':
			if(Prog.Check()) return 1;
			data_fp = fopen(data_file, "rb");
			if(data_fp == NULL)
			{
				AddLog("File open failure !\n");
				return 1;
			}
			if(data_length == DEF_DATA_LENGTH)
			{
				data_length = filesize(data_fp);
			}
			end_addr = start_addr + data_length;
			ShowAddr();
			dt_pool = (BYTE *) malloc(data_length);
			if(dt_pool == NULL)
			{
				AddLog("Memory allocate failure !\n");
				return 1;
			}
			if( fread(dt_pool, 1, data_length, data_fp) !=  data_length)
			{
				free(dt_pool);
				AddLog("File read failure !\n");
				return 1;
			}
			if(Prog.Verify(dt_pool, start_addr, data_length))
			{
				free(dt_pool);
				AddLog("JTAG Flash verify failure !\n");
				return 1;
			}
			free(dt_pool);
			break;
		case 'A':
		case 'a':
			if(Prog.Check()) return 1;
			data_fp = fopen(data_file, "rb");
			if(data_fp == NULL)
			{
				AddLog("File open failure !\n");
				return 1;
			}
			if(data_length == DEF_DATA_LENGTH)
			{
				data_length = filesize(data_fp);
			}
			end_addr = start_addr + data_length;
			ShowAddr();
			if(Prog.Erase(start_addr, data_length))
			{
				AddLog("JTAG Flash erase failure !\n");
				return 1;
			}
			dt_pool = (BYTE *) malloc(data_length);
			if(dt_pool == NULL)
			{
				AddLog("Memory allocate failure !\n");
				return 1;
			}
			if( fread(dt_pool, 1, data_length, data_fp) !=  data_length)
			{
				free(dt_pool);
				AddLog("File read failure !\n");
				return 1;
			}
			if(Prog.Write(dt_pool, start_addr, data_length))
			{
				free(dt_pool);
				AddLog("JTAG Flash write failure !\n");
				return 1;
			}
			if(flag_verify)
			{
				if(Prog.Verify(dt_pool, start_addr, data_length))
				{
					free(dt_pool);
					AddLog("JTAG Flash verify failure !\n");
					return 1;
				}
			}
			free(dt_pool);
			break;
		default:
			AddLog("Unknown command !\n");
			return -1;
			break;
	}
	return 0;
}

int main(int argc, char* argv[])
{
	int result = 0;
	ver = "0.8a";
	ShowTitle();
#ifdef _LOG
	lp = fopen(".\\log", "wt");
#endif

	if( ParseCmd(argc, argv) )
	{
		Usage();
		return -1;
	}
	result = Prog.Setup(fcd_file);
	if(result)
	{
		AddLog("*** STOP ***\n");
		Beep(200, 100);
		return result;
	}
	result =  SwitchCmd();
	if(result)
	{
		AddLog("*** STOP ***\n");
		Beep(200, 100);
		return result;
	}
	AddLog("\n>>> SUCCESS <<<\n");
#ifdef _LOG
	fclose(lp);
#endif

	return 0;
}

int AddLog(char *msg, int level)
{
	if(level > 0)
	{
		if (flag_verbose) printf("%s", msg);
	}
	else
		printf("%s", msg);
	return 0;
}

int AddLog(CString msg, int level)
{
	if(level > 0)
	{
		if (flag_verbose) printf("%s", msg);
	}
	else
		printf("%s", msg);
	return 0;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本系列欧美系列| 欧美精品一区二区精品网| 国产精品视频线看| 粉嫩aⅴ一区二区三区四区| 久久精品在这里| 成人免费三级在线| 亚洲色图欧洲色图| 欧美日韩色综合| 亚洲mv大片欧洲mv大片精品| 欧美精品成人一区二区三区四区| 日韩精品一区第一页| 91精品国产高清一区二区三区| 全国精品久久少妇| 26uuu国产一区二区三区| 国产91露脸合集magnet| 成人免费在线视频观看| 欧美午夜一区二区三区| 日本伊人午夜精品| 久久精品男人的天堂| heyzo一本久久综合| 亚洲自拍欧美精品| 欧美va亚洲va在线观看蝴蝶网| 精品一区二区三区在线播放视频| 日本一区二区免费在线观看视频| 成人av片在线观看| 亚洲成人av免费| 精品日韩欧美一区二区| 91亚洲精品乱码久久久久久蜜桃| 日日嗨av一区二区三区四区| 久久久综合视频| 色激情天天射综合网| 老司机精品视频在线| 亚洲欧美一区二区在线观看| 7777精品伊人久久久大香线蕉的| 国产一区二区三区免费在线观看| 亚洲黄色小视频| 久久综合色之久久综合| 欧洲日韩一区二区三区| 国内精品伊人久久久久av一坑| 麻豆成人在线观看| 亚洲天堂福利av| 日韩视频一区在线观看| 91网站视频在线观看| 奇米影视7777精品一区二区| 亚洲欧美在线aaa| 日韩一区二区免费电影| 一本色道久久综合亚洲91 | 韩国三级中文字幕hd久久精品| 国产精品传媒在线| 欧美成人官网二区| 欧美在线看片a免费观看| 国产精品996| 全国精品久久少妇| 亚洲一区二区三区三| 国产精品视频免费看| 精品日韩欧美一区二区| 欧美丰满少妇xxxbbb| 91在线视频18| 国产一区二区三区精品视频| 天天色天天操综合| 亚洲综合在线观看视频| 中文字幕av一区二区三区免费看| 日韩欧美国产一区二区在线播放| 在线视频一区二区三区| 99久久免费国产| 国产福利一区二区| 经典三级视频一区| 日韩 欧美一区二区三区| 一区二区高清在线| 亚洲毛片av在线| 国产精品丝袜在线| 国产精品入口麻豆九色| xf在线a精品一区二区视频网站| 欧美一区二区三区免费在线看 | 久久av老司机精品网站导航| 亚洲成人av免费| 亚洲综合精品久久| 亚洲午夜羞羞片| 亚洲一二三区在线观看| 亚洲最大成人综合| 亚洲一区欧美一区| 亚洲第一在线综合网站| 亚洲国产一区二区在线播放| 亚洲永久免费av| 亚洲综合清纯丝袜自拍| 亚洲一区在线免费观看| 亚洲国产精品人人做人人爽| 亚洲国产精品一区二区www在线 | 亚洲一区在线观看免费| 亚洲午夜久久久久久久久电影网| 亚洲最大成人网4388xx| 午夜影视日本亚洲欧洲精品| 日韩成人精品视频| 久久99最新地址| 国产精品综合av一区二区国产馆| 国产黄色精品网站| 日韩欧美区一区二| 精品美女一区二区| 亚洲国产精华液网站w| 国产精品免费aⅴ片在线观看| 国产欧美一区二区精品性色| 欧美国产日韩在线观看| 亚洲三级免费观看| 亚洲高清在线视频| 激情文学综合丁香| 不卡av电影在线播放| 欧美在线观看一二区| 欧美一级欧美三级| 国产欧美日韩激情| 亚洲女同女同女同女同女同69| 亚洲国产成人91porn| 韩国av一区二区| 91麻豆.com| 日韩免费视频一区| **欧美大码日韩| 午夜精品在线看| 国产一区二区免费在线| 色狠狠色狠狠综合| 精品国一区二区三区| 亚洲欧美日韩国产成人精品影院| 日韩黄色免费电影| 成人激情文学综合网| 欧美酷刑日本凌虐凌虐| 久久免费看少妇高潮| 亚洲综合色噜噜狠狠| 狠狠色丁香婷婷综合| 在线观看一区二区精品视频| 精品久久99ma| 亚洲亚洲精品在线观看| 国产盗摄一区二区| 欧美欧美午夜aⅴ在线观看| www久久精品| 亚洲大型综合色站| 99视频国产精品| 日韩欧美国产一区二区在线播放| 亚洲男帅同性gay1069| 国内精品国产成人| 欧美老肥妇做.爰bbww视频| 国产精品免费人成网站| 久久99精品久久久久久久久久久久| 一本一本大道香蕉久在线精品| ww亚洲ww在线观看国产| 天天色天天操综合| 91国产免费观看| 国产精品污网站| 国内精品伊人久久久久影院对白| 欧美色手机在线观看| 日韩一区中文字幕| 国产精品一品二品| 精品国一区二区三区| 日韩精品亚洲一区| 欧美性videosxxxxx| 专区另类欧美日韩| 国产精品88888| 精品久久久久一区| 美女视频黄免费的久久| 欧美日韩精品系列| 亚洲一区精品在线| 日本电影欧美片| 亚洲欧美激情一区二区| av高清久久久| 中文字幕精品一区二区精品绿巨人 | 丁香激情综合五月| 欧美精品一区二区高清在线观看| 天天操天天色综合| 欧美午夜一区二区三区 | 94-欧美-setu| 国产精品福利影院| 99天天综合性| 国产精品久久福利| 成人动漫av在线| 国产精品久久久久久妇女6080| 粉嫩久久99精品久久久久久夜| 国产亚洲成aⅴ人片在线观看| 国产一区二区三区| 国产欧美精品一区aⅴ影院| 国产寡妇亲子伦一区二区| 久久综合国产精品| 国产白丝精品91爽爽久久| 国产无一区二区| 白白色亚洲国产精品| 最新国产の精品合集bt伙计| 91在线观看免费视频| 一区二区三区久久久| 欧美日韩亚洲国产综合| 视频一区免费在线观看| 日韩视频一区二区在线观看| 麻豆传媒一区二区三区| 久久久另类综合| 成人精品视频网站| 一区二区高清在线| 8v天堂国产在线一区二区| 久久精品72免费观看| 国产欧美综合色| 91久久精品一区二区三区| 日韩精品久久理论片| 久久先锋影音av鲁色资源网| jiyouzz国产精品久久| 亚瑟在线精品视频| 久久免费电影网|