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

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

?? jflash.cpp

?? s3c44b0 + 29lv160 jtag下載程序編寫
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
	exit(0); // by ldh...

	flash_reset();
	test_logic_reset();
}

int putp(int tdi, int tms, int rp)
{
    // Output pins (LPT driving)
    // LPT D3      Pin 5  and TDI (bit 3 lptaddress )
    // LPT D2      Pin 4  and TCK (bit 2 lptaddress )
    // LPT D1      Pin 3  and TMS (bit 1 lptaddress )
    // LPT D0      Pin 2 and TRST (bit 0 lptaddress )
    //
    // Input pin (S3C4510 board drives)
    // LPT BUSY    Pin 11 and TDO (bit 7 lptaddress + 2)

	int tdo = -1;
	int t1;//,t2;

	t1 = tdi*8+tms*2;
	_outp(lpt_address, t1+0x01);         //TCK low
	t1= tdi*8+tms*2+4;
	_outp(lpt_address, t1+0x01);         // TCK high
/*
	if(rp == RP)
        {
         _outp(lpt_address, tdi*8+tms*2+0x01);        // TCK low
		t1 = INB(lpt_address + 1);
		t2 = t1>>7;
        tdo = !t2;  // get TDO data
    }
	*/
	if(rp == RP)
	{
		tdo = !((int)_inp(lpt_address + 1) >> 7);
	}
	return tdo;
}

void id_command(void)
{
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,1,IP);
	putp(1,1,IP);	//select IR scan
	putp(1,0,IP);	//capture IR
	putp(1,0,IP);	//shift IR

    putp(0,0,IP);   //S3C4510 IDCODE, LSB first
    putp(1,0,IP);   //
    putp(1,0,IP);   //
    putp(1,1,IP);   //Exit1-IR

	putp(1,1,IP);	//Update-IR
	putp(1,0,IP);	//Run-Test/Idle	
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle
    putp(1,1,IP);   //select DR scan
    putp(1,0,IP);   //capture DR


	if(check_id(S44B0ID))
		error_out("failed to read device ID for the SA-1110");

	putp(1,1,IP);	//Exit1-DR
	putp(1,1,IP);	//Update-DR
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle

}
void bypass_all(void)
{
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,1,IP);
	putp(1,1,IP);	//select IR scan
	putp(1,0,IP);	//capture IR
	putp(1,0,IP);	//shift IR

    putp(1,0,IP);   //S3C4510 BYPASS
	putp(1,0,IP);	//
	putp(1,0,IP);	//
	putp(1,1,IP);	//Exit1-IR

	putp(1,1,IP);	//Update-IR
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle
}
void extest(void)
{
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,1,IP);
	putp(1,1,IP);	//select IR scan
	putp(1,0,IP);	//capture IR
	putp(1,0,IP);	//shift IR

    putp(0,0,IP);   //S3C4510 extest
	putp(0,0,IP);	//
	putp(0,0,IP);	//
    putp(0,1,IP);   //Exit1-IR

	putp(1,1,IP);	//Update-IR
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle
}


WORD access_rom(int rw, DWORD address, WORD data, int rp)
{
	return(access_bus(rw, address, data, rp));
}

WORD access_bus(int rw, DWORD address, WORD data, int rp)
{
	// Preset SA-1110 pins to default values (all others set in sa1110jtag.h)
    pin[NBE0_1_EN] = 0;  // enable pin for nCS0, nOE, nWE.
	pin[nCS0_OUT] = 1;
	pin[nOE_OUT] = 0;
	pin[nWE_OUT] = 1;
        pin[A15_EN] = 0;
        pin[A16_EN] = 0;
        pin[A17_EN] = 0;
        pin[A18_EN] = 0;
        pin[A19_EN] = 0;
        pin[A20_EN] = 0;

	pin[D7_EN] = 0;
	pin[D15_EN] = 0;

	// set the address 1 thru 20
	for(int i = 0; i < 20; i++)
		pin[add_order[i+1]] = (int)((address >> i) & 1L);	

	if(rw == READ)
	{
		pin[D7_EN] = 1;
		pin[D15_EN] = 1;
		pin[nOE_OUT] = 0;
		pin[nWE_OUT] = 1;
		pin[nCS0_OUT] = 0;

	}

	if(rw == WRITE)
	{
		pin[nWE_OUT] = 0;
		pin[nOE_OUT] = 1;
		pin[nCS0_OUT] = 0;
		pin[D7_EN] = 0;  // switch data pins to drive
		pin[D15_EN] = 0;
		// set the data
		for(WORD li = 0; li < 16; li++)
			pin[dat_order[li]] = (int)((data >> li) & 1L);	// set data pins
	}
	if(rw == SETUP || rw == HOLD)	// just like a write except WE, WE needs setup time
	{		
		pin[nCS0_OUT] = 1;
		pin[nOE_OUT] = 1;
		pin[nWE_OUT] = 1;
		pin[D7_EN] = 0;
		pin[D15_EN] = 0;
		for(WORD li = 0L; li < 16; li++)
			pin[dat_order[li]] = (int)((data >> li) & 1L);	// serialize data pins
	}

	if(rw == RS)	// setup prior to RD_nWR_OUT
	{
		pin[nOE_OUT] = 1;
	}

	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,1,IP);	//select DR scan
	putp(1,0,IP);	//capture DR
	putp(1,0,IP);	//shift IR

	int out_dat[300];
	for(i = 0; i < 256; i++)	// shift write data in to JTAG port and read data out
		out_dat[i] = putp(pin[i],0,rp);

	putp(0,1,IP);	//Exit1-DR
	putp(1,1,IP);	//Update-DR
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle
	putp(1,0,IP);	//Run-Test/Idle

	WORD busdat = 0;
	for(i = 0; i < 16; i++)	// convert serial data to single DWORD
	{
		busdat = busdat | (WORD)(out_dat[dat_inorder[i]] << i);
	}
	extest();
	return(busdat);
}
int test_port(void)
{
	// search for valid parallel port
		_outp(LPT1, 0x55);
		if((int)_inp(LPT1) == 0x55)return LPT1;
		_outp(LPT2, 0x55);
		if((int)_inp(LPT2) == 0x55)return LPT2;
		_outp(LPT1, 0x55);
		if((int)_inp(LPT3) == 0x55)return LPT3;
	return(0);	// return zero if none found
}

int check_id(char *device_id)
{
	// compare passed device ID to the one returned from the ID command
	char in_id[40];
	BOOL error_flag = FALSE;

putp(1,0,IP);
	for(int i = 34; i >= 0; i--)
	{
		if(i == 4 || i == 21 || i == 33)
		{
			in_id[i] = ' ';
			i--;
		}
		if(putp(1,0,RP) == 0)
			in_id[i] = '0';
		else
			in_id[i] = '1';

		if((in_id[i] != *(device_id + i)) && (*(device_id + i) != '*'))
		{
			error_flag = TRUE;
			
		}
	}
	in_id[35] = 0;

//		printf("ACT IDCODE: %s\n",in_id);
//	return -1;	



	if(error_flag)
	{
		printf("error, failed to read device ID\n");
		printf("check cables and power\n");
		printf("ACT: %s\n",in_id);
		printf("EXP: %s\n\n",device_id);
//		return -1;
	}

	if(0)//!strcmp(device_id,S44B0ID))	// print SA-1110 device revision
	{
		int sa_rev =
			(int)(in_id[0] - '0') * 8 +
			(int)(in_id[1] - '0') * 4 +
			(int)(in_id[2] - '0') * 2 +
			(int)(in_id[3] - '0');
		switch(sa_rev)
		{
			case 0: printf("SA-1110 revision A0\n"); break;
			case 4: printf("SA-1110 revision B0\n"); break;
			case 5: printf("SA-1110 revision B1\n"); break;
			case 6: printf("SA-1110 revision B2\n"); break;
			case 8: printf("SA-1110 revision B4\n"); break;
			default: printf("SA-1110 revision B4 + %d\n",sa_rev - 8);
		}

	}	

	return 0;
}
void error_out(char *error_string)
{
	printf("%s\n",error_string);
	exit(0);
}

void write_flash()
{
	int addr = 0x70000;
	WORD data;
	for(;;)
	{
		fread((WORD *)&data, sizeof(WORD) , 1, in_file);
		write_command(0,0xa0);
		write_command(addr,data);
		addr++;
	//	printf(" %x\n", data);
		if(feof(in_file))
			break;
	}
	fclose(in_file);
	return;
}

void verify_flash(DWORD base_address, DWORD fsize)
{
	time_t start, now;
	DWORD li, li1;

		time(&start);
		for(DWORD lj = base_address + 1; lj <= fsize + base_address; lj++)
			{
			fread((DWORD *)&li, sizeof(DWORD) , 1, in_file);
			li1 = access_rom(READ, lj, 0x0L, RP);
			time(&now);
			if(difftime(now,start) > STATUS_UPDATE)	// Update status every 2 seconds
				{
				printf("Verifying flash at hex address %8lx, %5.2f%% done    \r"
					,lj,(float)(lj - base_address)/(float)fsize*100.0);
				time(&start);
				}
			if(li != li1)
				{
				printf("verify error at address = %lx exp_dat = %lx act_dat = %lx\n",lj - 1,li,li1);
				exit(1);
				}
			}


	printf("Verification successful!                                                    \n");
}

void test_logic_reset(void)
{
	putp(1,1,IP);	// keep TMS set to 1 force a test logic reset
	putp(1,1,IP);	// no matter where you are in the TAP controller
	putp(1,1,IP);
	putp(1,1,IP);
	putp(1,1,IP);
	putp(1,1,IP);
}

void test_lock_flash(DWORD base_address, DWORD fsize, DWORD block_size, DWORD max_erase_time, int block_number)
{
	time_t start, now;


	for(DWORD lj = base_address; lj < fsize + base_address; lj = lj + block_size)  // Test only blocks to be programmed
		{
		access_rom(SETUP, 0, 0x90, IP); // Read Identifier Codes
		access_rom(WRITE, 0, 0x90, IP);
		access_rom(HOLD, 0, 0x90, IP);

		access_rom(READ, lj + 2, 0, IP); // read lock configuration (extra read to get JTAG pipeline going)
		if(access_rom(READ, lj + 2, 0, RP) == 0x10001)
			{
			printf("Block of Flash Memory is Write Locked, would you like to unlock it? [y/n]: ");
			if(toupper(_getche()) == 'Y')
				{
			
				printf("\nblock is locked\n");
	
				access_rom(SETUP, 0, 0x60, IP); // Clear block lock bit command
				access_rom(WRITE, 0, 0x60, IP);
				access_rom(HOLD, 0, 0x60, IP);

				access_rom(SETUP, lj, 0xd0, IP); // Confirm
				access_rom(WRITE, lj, 0xd0, IP);
				access_rom(HOLD, lj, 0xd0, IP);

				time(&start);
				printf("Unlocking block %3d   \r",block_number++);
				while(access_rom(RS, 0, 0, RP) != 0x800080L)	// Loop until successful status return
					{
					access_rom(READ, 0, 0, RP);
					time(&now);
					if(difftime(now,start) > max_erase_time + 1)	// Check for status timeout
						error_out("\nError, Clear lock timed out");
					}
				}
			else
				error_out("\nUnable to program Write Locked Flash Memory Block");
			}
		}
}
void set_lock_flash(DWORD base_address, DWORD fsize, DWORD block_size, DWORD max_erase_time, int block_number)
{
	time_t start, now;

	printf("Starting set block lock bit\n");

	for(DWORD lj = base_address; lj < fsize + base_address; lj = lj + block_size)  // Erase only blocks to be programmed
		{
		access_rom(SETUP, 0, 0x60, IP); //  block lock bit command
		access_rom(WRITE, 0, 0x60, IP);
		access_rom(HOLD, 0, 0x60, IP);

		access_rom(SETUP, lj, 0x10, IP); // Confirm
		access_rom(WRITE, lj, 0x10, IP);
		access_rom(HOLD, lj, 0x10, IP);

		time(&start);
		printf("Erasing block %3d   \r",block_number++);
		while(access_rom(RS, 0, 0, RP) != 0x800080L)	// Loop until successful status return
			{
			access_rom(READ, 0, 0, RP);
			time(&now);
			if(difftime(now,start) > max_erase_time + 1)	// Check for status timeout
				error_out("Error, Clear lock timed out");
			}
		}
	printf("Set lock bit done                                           \n");
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
奇米888四色在线精品| 欧美xxxxxxxxx| 久久久高清一区二区三区| 成人欧美一区二区三区在线播放| 偷拍与自拍一区| 99精品偷自拍| 国产视频在线观看一区二区三区| 午夜一区二区三区在线观看| 成人免费高清视频在线观看| 欧美一区二区播放| 亚洲成人在线网站| 欧美三级日本三级少妇99| 国产色91在线| 国精产品一区一区三区mba视频| 欧美日本一区二区| 一区二区三区不卡在线观看 | 欧美成人r级一区二区三区| 亚洲蜜臀av乱码久久精品| 国产成人综合在线播放| 欧美成人三级电影在线| 三级欧美韩日大片在线看| 91久久精品日日躁夜夜躁欧美| 久久五月婷婷丁香社区| 九九九精品视频| 欧美成人女星排行榜| 日韩高清不卡一区| 日韩一级高清毛片| 久久疯狂做爰流白浆xx| 日韩精品综合一本久道在线视频| 午夜精品福利一区二区三区av| 欧美午夜片在线看| 亚洲成人久久影院| 91精品国产综合久久久蜜臀粉嫩| 亚洲一级二级三级| 777久久久精品| 一本一道久久a久久精品综合蜜臀| 中文字幕欧美三区| 99re66热这里只有精品3直播| 国产精品视频免费| 成人91在线观看| 亚洲精品国产高清久久伦理二区| 在线免费观看一区| 亚洲成a人v欧美综合天堂下载 | 亚洲一二三四区| 欧洲亚洲精品在线| 亚洲高清免费一级二级三级| 91精品久久久久久久91蜜桃| 国精产品一区一区三区mba桃花| 久久精品视频在线免费观看| a美女胸又www黄视频久久| 亚洲同性gay激情无套| 欧美日韩一级片在线观看| 日本欧美肥老太交大片| 国产拍揄自揄精品视频麻豆| 99久久精品国产麻豆演员表| 亚洲一级二级在线| 久久一区二区三区四区| av在线不卡观看免费观看| 亚洲一区视频在线| 精品少妇一区二区三区免费观看| 国产一区二区三区美女| 日韩美女视频19| 欧美精品免费视频| 成人黄色小视频| 香蕉影视欧美成人| 国产精品午夜在线观看| 欧美精品一卡二卡| 成人国产一区二区三区精品| 午夜不卡av在线| 亚洲国产精品av| 69成人精品免费视频| 国产美女精品在线| 视频一区二区三区入口| 久久久久久久网| 欧美在线观看你懂的| 国产伦精品一区二区三区视频青涩| 亚洲特黄一级片| 久久免费偷拍视频| 欧美精品亚洲一区二区在线播放| 国产乱人伦偷精品视频免下载| 一区二区三区高清不卡| 国产精品欧美精品| 日韩欧美国产综合| 欧美精品亚洲二区| 91美女视频网站| 成人av高清在线| 国内精品国产成人国产三级粉色| 一区二区三区精品在线| 国产精品色哟哟网站| 精品国产sm最大网站| 欧美精品丝袜中出| 欧美性猛片xxxx免费看久爱| 99视频精品在线| 国产尤物一区二区在线| 麻豆精品久久精品色综合| 亚洲妇女屁股眼交7| 中文字幕一区二| 亚洲国产精华液网站w| 精品国产露脸精彩对白| 7777精品伊人久久久大香线蕉经典版下载| 成人av动漫网站| 成人av免费观看| 粉嫩av一区二区三区在线播放| 韩国视频一区二区| 激情五月播播久久久精品| 麻豆国产精品视频| 青青草国产精品亚洲专区无| 午夜精品久久久久久久久| 一区二区在线观看免费| 亚洲综合另类小说| 一区二区三区电影在线播| 亚洲主播在线播放| 亚洲精品va在线观看| 一区二区激情小说| 一级精品视频在线观看宜春院| 亚洲天天做日日做天天谢日日欢| 日本一二三不卡| 亚洲日本va午夜在线影院| 国产精品福利av| ㊣最新国产の精品bt伙计久久| 国产精品网站在线播放| 中文字幕在线一区免费| 亚洲欧美一区二区久久| 亚洲大片一区二区三区| 免费成人美女在线观看| 国产在线播放一区| 欧美一区二区大片| 欧美精品一区男女天堂| 精品国产一二三| 国产亚洲女人久久久久毛片| 亚洲欧洲国产日韩| 亚洲精品欧美综合四区| 日韩激情视频网站| 狠狠狠色丁香婷婷综合激情| 成人午夜又粗又硬又大| 9i看片成人免费高清| 欧美日韩免费观看一区二区三区| 91精品欧美综合在线观看最新 | 欧美视频日韩视频| 日韩三级免费观看| 国产精品久久久久永久免费观看 | 欧美亚洲高清一区| 精品欧美乱码久久久久久| 中文字幕欧美激情| 午夜视频在线观看一区二区| 国产一区二区三区四区五区入口| 99精品国产一区二区三区不卡| 欧美色图激情小说| 国产偷国产偷亚洲高清人白洁| 一区二区三区日韩欧美精品| 久久精品久久久精品美女| 91亚洲精品久久久蜜桃| 欧美一级视频精品观看| 1024成人网| 久久99国内精品| 欧美最猛性xxxxx直播| 久久久亚洲国产美女国产盗摄| 一区二区三区在线免费播放| 国产一区二区三区久久久| 91久久线看在观草草青青| 欧美不卡视频一区| 夜夜操天天操亚洲| 国产成人av电影在线| 欧美一区午夜视频在线观看| 中文字幕亚洲电影| 久久99精品国产.久久久久久| 色拍拍在线精品视频8848| 久久亚洲精精品中文字幕早川悠里 | 伊人色综合久久天天| 国产精品一区二区在线观看网站| 7799精品视频| 亚洲尤物视频在线| 成人av在线影院| 久久亚洲精华国产精华液| 日本强好片久久久久久aaa| 欧美性受xxxx黑人xyx| 国产精品系列在线| 国产美女在线观看一区| 日韩视频一区二区三区| 亚洲成人第一页| 色婷婷狠狠综合| 国产精品传媒在线| av不卡在线播放| 国产日韩欧美综合一区| 久久99久久99小草精品免视看| 欧美久久久久久蜜桃| 亚洲国产精品一区二区www | 国产在线精品视频| 日韩三级高清在线| 免费的国产精品| 日韩一区二区电影| 久久不见久久见免费视频7| 制服丝袜亚洲色图| 日韩影院精彩在线| 91精品欧美一区二区三区综合在 | 一区二区在线观看视频| 91老师国产黑色丝袜在线| 最新国产成人在线观看| 99麻豆久久久国产精品免费优播| 欧美激情在线观看视频免费|