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

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

?? jtag.c

?? jtag 和 ARM9 的編程源碼
?? C
字號:
/* This file contains all of the JTAG hardware calls, it can
 * be changed to suit the hardware that you have.... 
 */

#include <stdlib.h>
#include <stdio.h>

#include "jtag.h"

int Port = 0x378;
unsigned long Data[10];

int jtag_restarted = 1;

/* Macros for inb and outb */
static __inline unsigned char
inb (unsigned short int port)
{
  unsigned char _v;

  __asm__ __volatile__ ("inb %w1,%0":"=a" (_v):"Nd" (port));
  return _v;
}

static __inline void
outb (unsigned char value, unsigned short int port)
{
  __asm__ __volatile__ ("outb %b0,%w1": :"a" (value), "Nd" (port));
}

int jtag_reg(unsigned long *data, unsigned int length)
{
	unsigned long * input_pointer;
	unsigned long * output_pointer;
	unsigned long input, value;
	unsigned int count;
	unsigned long output = 0;

	input_pointer = data;
	output_pointer = data;

	/* select -> capture */
	outb(JTAG_PWR, Port);
	outb(JTAG_PWR | JTAG_CLK, Port);

	/* capture -> shift */
	outb(JTAG_PWR, Port);
	outb(JTAG_PWR | JTAG_CLK, Port);

	/* read/writing */
	for (count = 0; count < length; count ++) {
		if ((count & 0x1f) == 0) {
			/* fetch next word of data */
			input = *input_pointer;
			input_pointer ++;
		}
		
		value = JTAG_PWR;

		if (input & 0x01)
			value = value | JTAG_TDI;

		if (count == (length -1)) {
			/* shift ->  exit, as it's the last bit */
			value = value | JTAG_TMS;
		}

		outb(value, Port);
		outb(value | JTAG_CLK, Port);

		if ((inb(Port + 1) & JTAG_TDO) == 0)
			output = output | (1 << (count & 0x1f));

		input = input >> 1;
		
		if ((count & 0x1f) == 0x1f) {
			/* store recieved word of data */
			*output_pointer = output;
			output_pointer ++;
			output = 0;
		}
	}
	/* ensure that the output is captured if less than whole long word */
	*output_pointer = output;

	/* exit -> update */
	outb(JTAG_PWR | JTAG_TMS, Port);
	outb(JTAG_PWR | JTAG_TMS | JTAG_CLK, Port);

	if (jtag_restarted) {
		/* update -> Idle/Run */
		outb(JTAG_PWR, Port);
		outb(JTAG_PWR | JTAG_CLK, Port);
		outb(JTAG_PWR, Port);
	} else {
		/* update -> select DR */
		outb(JTAG_PWR | JTAG_TMS, Port);
		outb(JTAG_PWR | JTAG_TMS | JTAG_CLK, Port);
		outb(JTAG_PWR | JTAG_TMS, Port);
	}

	return(0);
}

int jtag_ireg(unsigned long *data, unsigned int length)
{
	if (jtag_restarted == 1) {
		/* this is only output if you have come from IDLE/RUN */
		jtag_restarted = 0;

		/* idle -> select DR */
		outb(JTAG_PWR | JTAG_TMS, Port);
		outb(JTAG_PWR | JTAG_TMS | JTAG_CLK, Port);
	}

	if (*data == JTAG_RESTART)
		jtag_restarted = 1;

	/* select DR -> select IR */
	outb(JTAG_PWR | JTAG_TMS, Port);
	outb(JTAG_PWR | JTAG_TMS | JTAG_CLK, Port);


	return(jtag_reg(data, length));
}

int jtag_dreg(unsigned long *data, unsigned int length)
{
	if (jtag_restarted == 1) {
		/* this is only output if you have come from IDLE/RUN */
		jtag_restarted = 0;

		/* idle -> select DR */
		outb(JTAG_PWR | JTAG_TMS, Port);
		outb(JTAG_PWR | JTAG_TMS | JTAG_CLK, Port);
	}
#if 1 
	/* we always go via Idle/Run for data register stuff */
	jtag_restarted = 1;
#endif
	return(jtag_reg(data, length));
}

int jtag_init(void)
{
	printf("Jtag - Using port 0x%x\n", Port);

	/* enable the use of the parallel port */
#ifndef DOS
	if (ioperm(Port, 3, 1)!=0) {
		printf ("ERROR: ioperm(0x%x) failed:\n", Port);
		return(-1);
	}
#endif
	return(0);
}

int jtag_reset(void)
{
	int	loop_count;

	for(loop_count = 0; loop_count < 5; loop_count++) {
		/* goto Test Logic Reset and stay there */
		outb(JTAG_PWR | JTAG_TMS, Port);
		outb(JTAG_PWR | JTAG_TMS | JTAG_CLK, Port);
	}

	/* Test Logic Reset -> Idle */
	outb(JTAG_PWR, Port);
	outb(JTAG_PWR | JTAG_CLK, Port);
	outb(JTAG_PWR, Port);

	Data[0] = JTAG_RESTART;
	jtag_ireg(Data, JTAG_IRLENGTH);

	jtag_restarted = 1;
	printf("JTAG interface reset.\n");

	return(0);
}

int jtag_idcode(void)
{
	printf("Device ID..");
	Data[0] = JTAG_IDCODE;
	jtag_ireg(Data, JTAG_IRLENGTH);

	Data[0] = 0x00000000;
	jtag_dreg(Data, 32);
	printf("0x%8.8X\n", Data[0]);

	Data[0] = JTAG_RESTART;
	jtag_ireg(Data, JTAG_IRLENGTH);

	return(0);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久影院亚瑟| 色综合中文字幕国产 | 成人av高清在线| 久久久欧美精品sm网站| 国产精品亚洲一区二区三区妖精 | 国产精品亲子伦对白| 国产成人免费视频网站 | 国产九色sp调教91| 中文字幕乱码日本亚洲一区二区 | 国产毛片精品国产一区二区三区| 国产午夜精品久久久久久免费视| 一本久道久久综合中文字幕| 最新高清无码专区| 色噜噜偷拍精品综合在线| 欧美一区二区三区婷婷月色| 日韩女优av电影在线观看| 韩国一区二区在线观看| 欧美激情中文不卡| 在线观看视频一区二区欧美日韩| 日韩精品一二三四| 国产婷婷一区二区| 欧美日韩黄色一区二区| 狠狠色狠狠色综合系列| 一色桃子久久精品亚洲| 精品婷婷伊人一区三区三| 久久99国产乱子伦精品免费| 亚洲欧洲日韩在线| 91精品欧美福利在线观看| 国产不卡视频在线观看| 亚洲最大色网站| 久久久久国产一区二区三区四区 | 一区二区三区不卡在线观看 | 欧美午夜精品一区二区三区| 一区二区三区四区在线| 亚洲黄一区二区三区| 激情深爱一区二区| 亚洲视频小说图片| 日韩网站在线看片你懂的| www..com久久爱| 欧美a一区二区| 中文字幕日韩一区| 久久综合狠狠综合| 欧美美女一区二区三区| 99久久99久久免费精品蜜臀| 秋霞午夜鲁丝一区二区老狼| 一区二区三区在线视频播放| 亚洲视频每日更新| 精品国产乱码久久久久久免费| 白白色 亚洲乱淫| 免费看欧美美女黄的网站| 亚洲免费三区一区二区| 久久综合给合久久狠狠狠97色69| 欧美精品一二三| 91丝袜高跟美女视频| 国产麻豆9l精品三级站| 欧美aaaaaa午夜精品| 一区2区3区在线看| 亚洲同性gay激情无套| 久久久久国产一区二区三区四区| 7777精品伊人久久久大香线蕉的| 91免费在线播放| 国产91精品精华液一区二区三区| 日韩vs国产vs欧美| 亚洲国产视频网站| 一区二区三区在线不卡| 中文字幕一区二区三区不卡 | 国产成人免费在线| 美女在线一区二区| 日本最新不卡在线| 日韩高清在线不卡| 日韩精品一二三区| 蜜臀va亚洲va欧美va天堂 | 精品国产123| 日韩欧美一级二级三级久久久| 欧美人妖巨大在线| 91豆麻精品91久久久久久| 91在线免费播放| 色综合久久66| 欧美性感一区二区三区| 欧美日韩精品一区二区三区 | 亚洲一区二区欧美激情| 亚洲精选免费视频| 亚洲午夜一区二区三区| 天天影视涩香欲综合网 | 亚洲欧美日韩在线不卡| 一区二区三区国产精品| 亚洲宅男天堂在线观看无病毒| 亚洲一二三专区| 亚州成人在线电影| 麻豆精品精品国产自在97香蕉| 久久国产日韩欧美精品| 国产乱色国产精品免费视频| 国产91精品一区二区麻豆亚洲| 成人av在线网站| 色噜噜狠狠色综合欧洲selulu| 在线观看国产日韩| 777午夜精品免费视频| 日韩免费看的电影| 久久女同性恋中文字幕| 国产精品日韩精品欧美在线| 日韩毛片高清在线播放| 亚洲va欧美va天堂v国产综合| 午夜久久久久久久久| 老司机精品视频导航| 盗摄精品av一区二区三区| 色哟哟一区二区三区| 欧美日本国产视频| 国产亚洲人成网站| 亚洲免费在线视频| 免费观看日韩av| 国产精品色婷婷| 国产综合久久久久影院| 亚洲精品少妇30p| 日本欧美久久久久免费播放网| 国内精品久久久久影院一蜜桃| av不卡免费电影| 欧美军同video69gay| 国产欧美一区二区精品性色超碰| 免费人成精品欧美精品| 成人午夜电影网站| 欧美精品色一区二区三区| 国产精品欧美久久久久一区二区| 亚洲一区自拍偷拍| 国产成人免费高清| 欧美日韩国产乱码电影| 中文字幕二三区不卡| 美女久久久精品| 日本久久电影网| 国产片一区二区三区| 日韩电影在线观看一区| 99热国产精品| xvideos.蜜桃一区二区| 亚洲bt欧美bt精品| 99热在这里有精品免费| 久久久精品tv| 日韩vs国产vs欧美| 欧美性一区二区| 日韩一区欧美一区| 国产一区二区导航在线播放| 欧美精品国产精品| 亚洲女同女同女同女同女同69| 国产一区视频网站| 日韩欧美国产综合| 午夜精品久久久久久久99水蜜桃 | 综合色中文字幕| 国产一级精品在线| 日韩精品一区二区三区视频在线观看 | 国产亚洲成aⅴ人片在线观看| 日韩精品欧美精品| 欧美视频一区二区三区在线观看 | 欧美色倩网站大全免费| 国产精品久久夜| 成人美女视频在线观看18| 精品国产髙清在线看国产毛片| 日韩电影在线免费观看| 欧美剧在线免费观看网站 | 成人激情综合网站| 国产亚洲一区字幕| 久久国产福利国产秒拍| 91精品欧美福利在线观看| 三级久久三级久久久| 欧美三级三级三级| 午夜电影久久久| 在线播放中文一区| 日韩精品一级二级| 91精品国产入口在线| 天天综合天天综合色| 欧美日本国产一区| 蜜桃视频在线观看一区二区| 日韩亚洲欧美在线| 国内精品视频一区二区三区八戒| 精品精品欲导航| 国内国产精品久久| 国产人成一区二区三区影院| 成人黄色电影在线| 自拍偷拍亚洲激情| 色哟哟精品一区| 亚洲综合视频在线观看| 欧美日韩一区不卡| 午夜a成v人精品| 日韩视频在线你懂得| 韩国理伦片一区二区三区在线播放| 精品三级av在线| 丰满少妇久久久久久久| 日韩毛片精品高清免费| 欧美日韩亚洲高清一区二区| 天堂va蜜桃一区二区三区漫画版| 日韩午夜在线观看视频| 国产在线播精品第三| 国产精品久久久久久久久搜平片 | 欧美日韩精品一区二区三区四区| 视频一区视频二区在线观看| 日韩手机在线导航| 高清日韩电视剧大全免费| 亚洲激情六月丁香| 日韩欧美一卡二卡| 国产99久久久国产精品| 亚洲综合成人在线| 精品国产电影一区二区| 色综合天天做天天爱|