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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? jflash.cpp

?? ARM 10 KEYPAD DESIGN
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
/**********************************************************************************  COPYRIGHT (C) 2000, 2001, 2002 Intel Corporation.****  The information in this file is furnished for informational use **  only, is subject to change without notice, and should not be construed as **  a commitment by Intel Corporation. Intel Corporation assumes no **  responsibility or liability for any errors or inaccuracies that may appear **  in this document or any software that may be provided in association with **  this document. ****  FILENAME:       Jflash.cpp****  PURPOSE:        A utility to program Intel flash devices from a PC parallel port.****  LAST MODIFIED:  $Modtime: 2/20/04 10:39a $******************************************************************************//*****************************************************************************Note: Within these files there are porting instructions that are useful for adding additional platform support to this tool. These guides may be located bysearching for the string "PORTING_GUIDE".*******************************************************************************/#include <stdio.h>#if defined __linux__#include <stdlib.h>#include <unistd.h>#include <ctype.h>#include <string.h>#include <time.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/perm.h>#include <errno.h>#include <sys/io.h>#define _getche		getchar#define _inp(a)		inb(a)#define _outp(a,d)	outb(d,a)#define BOOL		bool#define FALSE		false#define TRUE		truetypedef long		DWORD;typedef short		WORD;#include "Compile_switches.h"#include "Jflash.h"#include "jtag.h"#include "Global_Variables.h"#ifndef DATADIR#define DATADIR		"/usr/share/jflashmm/"#endif#define lastchar(s)	((s)[strlen(s)-1])#elif defined WIN32#include <windows.h>#include <time.h>#include <conio.h>#include "compile_switches.h"#include "jflash.h"#include "jtag.h"#include "string.h"#include "Global_Variables.h"#else#error "Platform is not defined"#endif/********************************************************************************Forward declarations********************************************************************************/int putp(int,int, int); // writes the JTAG data on the parallel portvoid id_command(void);	// issues the JTAG command to read the device ID for all 3 chips//void bypass_all(void);	// issues the JTAG command to put all 3 device in bypass mode//void extest(void);		// issues the JTAG command EXTEST to the ProcessorDWORD access_rom(int, DWORD, DWORD, int);	// Passes read/write/setup data for the Flash memoryDWORD access_bus(int, DWORD, DWORD, int);	// Read/write access to the Processor pinsvoid Write_Rom(DWORD address, DWORD data);	// Writes to ROMDWORD Read_Rom(DWORD address);				// Reads from ROMint test_port(void);	// Looks for and finds a valid parallel port addressint check_id(char*);	// Compares the device IDs for the 3 JTAG chips to expected valuesvoid error_out(char*);	// Prints error and exits program//void erase_flash(DWORD, DWORD, DWORD, DWORD, int);void program_flash(DWORD, DWORD, DWORD);void verify_flash(DWORD, DWORD);void test_logic_reset(void);//void test_lock_flash(DWORD, DWORD, DWORD, DWORD, int);void set_lock_flash(DWORD, DWORD, DWORD, DWORD, int);void set_address (DWORD);int PZ_scan_code(int, int, int);int controller_scan_code(int, int, int);void pre_DRSCAN(void);void post_DRSCAN(void);void pre_IRSCAN(void);void post_IRSCAN(void);void mem_rw_mode(int);void mem_data_driver(int);void mem_write_enable(int);void mem_output_enable(int);void clear_chip_selects(void);void set_chip_select(DWORD);DWORD shift_data(int);void set_data(DWORD);void jtag_test(void);void dump_chain(void);void init_workbuf(void);void invert_workbuf(void);void set_pin_chip_select(DWORD);void gpio_unlock_flash(void);void gpio_lock_flash(void);void ParseAndLoad(void);void ParseAndLoadFlashData(void);DWORD convert_to_dword(char*);void AnalyzeChain (void);void InitPinArray (void);void InitLockUnlock(void);void InitAddressOrder(void);void InitInputDataOrder(void);void InitOutputDataOrder(void);void InitChipSelectRegions(void);void InitFlashGlobals(void);void UnlockAndEraseBlock(DWORD);DWORD GetChipSelect(DWORD);void EraseBlocks(DWORD, DWORD);void check_file_info(DWORD *fsize , DWORD *last_non_zero, DWORD *last_non_ff, DWORD rom_size);void check_rom_info(DWORD *max_erase_time, DWORD * dsize, DWORD * max_write_buffer );int other_bypass(int rp, int ct, int length);void IR_Command(int command);void usage(void);void Set_Platform_Global_Variables(void);void DeclareDefaults(int);void Integrity_Check(void);#ifdef __linux__bool io_access_on(unsigned long port){	int res;	res = ioperm(port, 3, 1);	if (res){ perror("ioperm()"); return false; }	res = ioperm(0x80, 1, 1);	if (res){ perror("ioperm()"); return false; }	return true;}void io_access_off(unsigned long port){	ioperm(port, 3, 0);	ioperm(0x80, 1, 0);	return;}#else# define io_access_on(x)		(true)# define io_access_off(x)#endif/********************************************************************************** FUNCTION:         main** DESCRIPTION:      Entry point for utility** INPUT PARAMETERS: uses optional input parameters:*						argv[1] = Platform to which the binary file will be downloaded*                       argv[2] = filename to flash (binary files only)*                       argv[3] = program options, currently only 'P' for Program*                       argv[4] = Byte Address     *						argv[5] = INS or PAR (Insight or parallel cable)						argv[6] = Debug mode on or off* RETURNS:          void*********************************************************************************/#if defined WIN32int main( int argc, char *argv[] ){    time_t start;	DWORD fsize = 0;	DWORD last_non_zero = 0;	DWORD last_non_ff = 0;	DWORD base_address;    DWORD max_erase_time, dsize, max_write_buffer;	char base_address_string[12];	DWORD hexaddress; 	char plat_name[MAX_IN_LENGTH];	char buf[10];	int i = 0;//	int j;//	DWORD block_size;	strcpy(base_address_string, "");		if(argc >= 2)	{		//Copy the first argument into a character array		strcpy(plat_name, argv[1]);		// Convert the name of the platform to uppercase#if defined __linux__		do {			int res;			char buff[MAX_IN_LENGTH], *s;			struct stat fs;			if (!strchr(plat_name, '/')){				s = buff;									// fine in current directory				s += sprintf(s, plat_name);				if (strcmp(s + strlen(s) - 4, ".dat"))					s += sprintf(s, ".dat");				res = stat(buff, &fs);				if (!res){ strcpy(plat_name, buff); break; }				s = buff;									// fine in data directory				s += sprintf(s, "%s", DATADIR);				if (lastchar(s) != '/')					s += sprintf(s, "/");				s += sprintf(s, "%s", plat_name);				if (strcmp(s + strlen(s) - 4, ".dat"))					s += sprintf(s, ".dat");				res = stat(buff, &fs);				if (!res){ strcpy(plat_name, buff); break; }			} else {										// with '/'				s = buff;				s += sprintf(s, "%s", plat_name);				if (strcmp(s + strlen(s) - 4, ".dat"))					s += sprintf(s, ".dat");				res = stat(buff, &fs);				if (!res){ strcpy(plat_name, buff); break; }			}		} while (0);		sprintf(data_filename, "%s", plat_name);		sprintf(int_data_filename, DATADIR "%s_integrity.dat", plat_name);#elif defined WIN32		for(unsigned int i = 0; i < strlen(plat_name); i++)			plat_name[i] = toupper(plat_name[i]);		// use the parameter to construct a filename to parse		sprintf(data_filename, "%s.dat", plat_name);		// while we're at it, construct the integrity check filename derived from this.		sprintf(int_data_filename, "%s_integrity.dat", plat_name);#endif	}	else	{		if(!UsageShown) usage();		printf("\nEnter platform data file name: ");		fgets(plat_name, MAX_IN_LENGTH, stdin);			//gets(plat_name);		// Convert the name of the platform to uppercase		for(unsigned int i = 0; i < strlen(plat_name); i++)			plat_name[i] = toupper(plat_name[i]);		// use the parameter to construct a filename to parse		sprintf(data_filename, "%s.dat", plat_name);		// while we're at it, construct the integrity check filename derived from this.		sprintf(int_data_filename, "%s_integrity.dat", plat_name);	}		char DebugMode[4] = "NOD";			// Either NODebug or DEBug	if(argc >= 7)	{		// Copy the sixth argument into a character array		strcpy(DebugMode, argv[6]);		// Convert the parameter to uppercase		for(int i = 0; i < 4; i++)			DebugMode[i] = toupper(DebugMode[i]);		// Compare the mode with list of modes		if(!strcmp("DEB", DebugMode))		{			Debug_Mode = true;		}		else if(!strcmp("NOD", DebugMode))		{			 Debug_Mode = false;		}	}	// Inhibit questions from being asked. This is to assist in automation scripts	char AskMe[2] = "A";	if(argc >= 8)	{		// Copy the  argument into a character array		strcpy(AskMe, argv[7]);		// Convert the parameter to uppercase		for(int i = 0; i < 2; i++)			AskMe[i] = toupper(AskMe[i]);		// Compare the mode with list of modes		if(!strcmp("A", AskMe))		{			AskQuestions = true;		}		else if(!strcmp("D", AskMe))		{			 AskQuestions = false;		}	}	ParseAndLoad();	Set_Platform_Global_Variables();	InitPinArray();	InitLockUnlock();	InitAddressOrder();	InitInputDataOrder();	InitOutputDataOrder();	InitChipSelectRegions();	AnalyzeChain();	printf("\nJFLASH Version %s\n",  VERSION);    printf("COPYRIGHT (C) 2000 - 2003 Intel Corporation\n\n");	printf("PLATFORM SELECTION:\n");	printf(" Processor= \t\t%s\n", &WORDARRAY[p_processor][0]);	printf(" Development System= \t%s\n", &WORDARRAY[p_devsys][0]);	printf(" Data Version= \t\t%s\n\n", &WORDARRAY[p_dataver][0]);    //Test operating system, if WinNT or Win2000 then get device driver handle#ifdef WIN32	OSVERSIONINFO osvi;	osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);	GetVersionEx(&osvi);	if(osvi.dwPlatformId == VER_PLATFORM_WIN32_NT)	{        HANDLE h;		h = CreateFile("\\\\.\\giveio", GENERIC_READ, 0, NULL,					OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);		if(h == INVALID_HANDLE_VALUE)			error_out("Couldn't access giveio device");		CloseHandle(h);	}#endif	lpt_address = test_port();	// find a valid parallel port address	if(!lpt_address)		error_out("Error, unable to find parallel port"); 	// set the extended control register and others for the parallel port	lpt_ECR = lpt_address + 0x402;	lpt_CTL = lpt_address + 0x02;	lpt_STAT = lpt_address + 0x01;	#define STATUS_READ _inp(lpt_STAT)	#define CONTROL_READ _inp(lpt_CTL)    test_logic_reset();     // Jtag test appears to have a bug that is preventing use of the Blackstone cable.   //		{//			//	jtag_test();  I want everyone to use blackstone so this needs to be out//		}	if(argc >= 3)		strcpy(filename,argv[2]);	else		{			if(!UsageShown) usage();			printf("Enter binary file name: ");			fgets(filename, MAX_IN_LENGTH, stdin);		// gets(filename);		}	char Cable_Type[4] = "INS";			// Either INS or PAR	if(argc >= 6)	{		// Copy the fifth argument into a character array		strcpy(Cable_Type, argv[5]);		// Convert the name of the cable to uppercase		for(int i = 0; i < 4; i++)			Cable_Type[i] = toupper(Cable_Type[i]);		// Compare the selected cable name with all supported cables		if(!strcmp("INS", Cable_Type))		{			CableType = Insight_Jtag;		}		else if(!strcmp("PAR", Cable_Type))		{			 CableType = Parallel_Jtag;		}	}	test_logic_reset();	id_command();	//bypass_all();	IR_Command(IR_Bypass);    test_logic_reset();	gpio_unlock_flash();    //check_rom_info(&max_erase_time, &dsize, &max_write_buffer, &block_size, &nblocks);    check_rom_info(&max_erase_time, &dsize, &max_write_buffer);	if( (in_file = fopen(filename, "rb" )) == NULL)    {		error_out("error, can not open binary input file");    }	check_file_info(&fsize , &last_non_zero, &last_non_ff, dsize);        // Don't waste time programming ff's at the end of the file this is the erase state    fsize = last_non_ff;  	if(argc >= 5)    {		sscanf(argv[4],"%lx", &hexaddress);		if(hexaddress & 0x3)		{			printf("Start address must be 32 bit aligned!\n");   			printf("Changing start address to: %lx\n",hexaddress & 0xFFFFFFFCul);   			base_address = (hexaddress & 0xFFFFFFFCul);   		}	   			// adjust address for flash addressing mode   			base_address = (hexaddress & 0xFFFFFFFCul)/ADDR_MULT;	}    else    {    	base_address = 0;    }		 	if(100 - (last_non_zero * 100)/last_non_ff > 20)	{		if(AskQuestions)		{			printf("The last %2ld percent of image file is all zeros\n",100 - (last_non_zero * 100)/last_non_ff);			printf("Would you like to save time by not programming that area? [y/n]: ");			if(toupper(_getche()) == 'Y')			fsize = last_non_zero;		}		else		{			fsize = last_non_zero;		}	}	printf("\n");	char option = 'P';	if(argc >= 4)	{    	option = toupper(*argv[3]);    }	    if(option == 'P')	{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人黄色在线网站| 欧美日高清视频| 成人黄色大片在线观看| 在线观看亚洲专区| 久久夜色精品一区| 亚洲国产毛片aaaaa无费看| 精品亚洲国产成人av制服丝袜| 蜜臀a∨国产成人精品| 成人黄页在线观看| 日韩欧美国产电影| 亚洲伊人伊色伊影伊综合网| 国产专区综合网| 色香蕉成人二区免费| 久久久久久夜精品精品免费| 亚洲v中文字幕| 99久久亚洲一区二区三区青草| 91精品国产综合久久小美女| 亚洲欧美日韩国产综合在线| 国产一区美女在线| 欧美一级片在线看| 亚洲一区二区三区小说| 欧美二区在线观看| 日韩毛片在线免费观看| 丰满少妇在线播放bd日韩电影| 日韩一二三四区| 亚洲成人免费影院| 一本色道久久综合亚洲精品按摩| 国产欧美日韩不卡免费| 国产一区二区三区蝌蚪| 91精品国产综合久久精品图片| 亚洲理论在线观看| 99re热这里只有精品视频| 欧美国产综合一区二区| 国产精品18久久久久久久久| 717成人午夜免费福利电影| 亚洲一区在线免费观看| 色综合中文字幕| 亚洲精品免费播放| 一本大道久久精品懂色aⅴ| 国产精品大尺度| 风流少妇一区二区| 欧美国产国产综合| 大白屁股一区二区视频| 国产人成亚洲第一网站在线播放| 国产在线国偷精品免费看| 精品裸体舞一区二区三区| 久久激五月天综合精品| 精品裸体舞一区二区三区| 紧缚奴在线一区二区三区| 欧美videos大乳护士334| 久久99久久99| 国产亚洲制服色| 成人天堂资源www在线| 国产精品天美传媒| 99精品久久久久久| 亚洲一二三四久久| 欧美精品久久久久久久久老牛影院| 亚洲综合成人网| 在线播放国产精品二区一二区四区| 日日嗨av一区二区三区四区| 日韩欧美成人一区二区| 国产精品一区二区久激情瑜伽| 欧美激情中文字幕| 欧美亚洲综合另类| 视频一区二区三区在线| 精品国产电影一区二区| thepron国产精品| 一区二区三区免费看视频| 欧美美女网站色| 激情综合五月天| 国产精品久久久久久久久久免费看| 久久―日本道色综合久久| 亚洲精品国产一区二区三区四区在线| 亚洲激情校园春色| 色婷婷综合五月| 亚洲免费毛片网站| 欧美优质美女网站| 亚洲一区二区五区| 欧美老女人在线| 日本最新不卡在线| 欧美v国产在线一区二区三区| 天天色综合成人网| 成人av电影在线观看| 91精品国产91久久久久久一区二区| 久久疯狂做爰流白浆xx| 国产精品美女久久久久久久网站| 欧洲一区二区三区免费视频| 亚洲宅男天堂在线观看无病毒| 国产成人午夜视频| 国产精品欧美一区二区三区| 欧美色图激情小说| 国产老妇另类xxxxx| 亚洲国产日韩一区二区| 日本一区二区综合亚洲| 欧美丰满少妇xxxbbb| 成人av免费在线播放| 日韩av中文字幕一区二区| 亚洲欧洲三级电影| 精品国产百合女同互慰| 欧美日韩一区国产| a级精品国产片在线观看| 久久精品国产一区二区三区免费看| 亚洲码国产岛国毛片在线| 久久毛片高清国产| 日韩一区二区在线观看| 欧美日韩在线免费视频| 99麻豆久久久国产精品免费优播| 精彩视频一区二区| 奇米影视一区二区三区小说| 亚洲一区二区三区四区五区黄| 国产精品视频线看| 精品国产人成亚洲区| 欧美日本不卡视频| 在线亚洲一区二区| 成人动漫视频在线| 成人综合激情网| 韩国理伦片一区二区三区在线播放 | 91精品在线免费观看| 99久久久久久| 国产91丝袜在线18| 久99久精品视频免费观看| 视频在线在亚洲| 午夜精品视频一区| 亚洲成人免费av| 亚洲第一会所有码转帖| 一区二区三区视频在线看| 国产精品久久久久一区二区三区 | 精品视频在线免费| 在线一区二区视频| 在线观看一区二区视频| 色综合久久久久久久久| 99久久夜色精品国产网站| 丁香婷婷综合激情五月色| 国产精品888| 国产乱人伦精品一区二区在线观看 | 国产精品日日摸夜夜摸av| 久久色视频免费观看| 久久蜜桃av一区精品变态类天堂| 欧美精品一区二| 中文字幕乱码一区二区免费| 中文字幕欧美日韩一区| 亚洲欧洲99久久| 一区二区三区 在线观看视频| 亚洲激情第一区| 亚洲午夜免费视频| 午夜久久电影网| 欧美aaa在线| 国产一区二区三区电影在线观看| 国内外成人在线| 床上的激情91.| 在线免费观看日本一区| 欧美精品1区2区| 久久新电视剧免费观看| 国产精品超碰97尤物18| 亚洲黄色免费网站| 蜜臀av在线播放一区二区三区| 国产精品资源在线观看| 91在线观看污| 欧美日韩亚洲综合一区| 2021国产精品久久精品| 亚洲人成网站在线| 天堂av在线一区| 久草这里只有精品视频| 99久久久久免费精品国产| 欧美日韩成人综合| 久久久久久99久久久精品网站| 中文字幕人成不卡一区| 日韩高清在线电影| 国产成人免费在线视频| 欧美伊人久久久久久久久影院| 日韩欧美高清dvd碟片| 亚洲欧洲美洲综合色网| 亚洲www啪成人一区二区麻豆| 国产一区二区日韩精品| 色婷婷综合久久久中文字幕| 日韩亚洲电影在线| 国产精品毛片久久久久久久| 亚洲一区二区精品视频| 国产精品一区二区三区四区| 欧洲日韩一区二区三区| 2024国产精品视频| 亚洲va在线va天堂| 成人激情动漫在线观看| 欧美电影在线免费观看| 国产精品成人午夜| 久久99国产精品尤物| 日本伦理一区二区| 国产欧美日本一区二区三区| 日韩国产成人精品| 在线中文字幕不卡| 国产精品嫩草影院av蜜臀| 蓝色福利精品导航| 欧美日韩高清影院| 日韩一区中文字幕| 国产一区三区三区| 日韩欧美在线影院| 亚洲成人久久影院| 91高清视频在线| 综合分类小说区另类春色亚洲小说欧美| 26uuu亚洲|