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

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

?? jb_jtag.c

?? software for report builder
?? C
?? 第 1 頁 / 共 2 頁
字號:
/******************************************************************/
/*                                                                */
/* Module:       jb_jtag.c                                        */
/*                                                                */
/* Descriptions: Manages JTAG State Machine (JSM), loading of     */
/*               JTAG instructions and reading of data from TDO.  */
/*                                                                */
/* Revisions:    1.0 02/22/02                                     */
/*                                                                */
/******************************************************************/

#include <stdio.h>
#include <string.h>
#include "jb_jtag.h"

#define MAX_JS_CHAR_COUNT 10
#define JSM_RESET_COUNT 5

/* JTAG Configuration Signals */
#define J_SIG_TCK  0 /* TCK */
#define J_SIG_TMS  1 /* TMS */
#define J_SIG_TDI  2 /* TDI */
#define J_SIG_TDO  3 /* TDO */

/* States of JTAG State Machine */
#define JS_RESET         0
#define JS_RUNIDLE       1
#define JS_SELECT_IR     2
#define JS_CAPTURE_IR    3
#define JS_SHIFT_IR      4
#define JS_EXIT1_IR      5
#define JS_PAUSE_IR      6
#define JS_EXIT2_IR      7
#define JS_UPDATE_IR     8
#define JS_SELECT_DR     9
#define JS_CAPTURE_DR    10
#define JS_SHIFT_DR      11
#define JS_EXIT1_DR      12
#define JS_PAUSE_DR      13
#define JS_EXIT2_DR      14
#define JS_UPDATE_DR     15
#define JS_UNDEFINE      16


extern void DriveSignal(int signal,int data,int clk,int test);
extern int  ReadPort(int port);
extern int  sig_port_maskbit[4][2];

/* JTAG State Machine */
const int JSM[16][2] = {
/*-State-      -mode= '0'-    -mode= '1'- */
/*RESET     */ {JS_RUNIDLE,   JS_RESET    },
/*RUNIDLE   */ {JS_RUNIDLE,   JS_SELECT_DR},
/*SELECTIR  */ {JS_CAPTURE_IR,JS_RESET    },
/*CAPTURE_IR*/ {JS_SHIFT_IR,  JS_EXIT1_IR },
/*SHIFT_IR  */ {JS_SHIFT_IR,  JS_EXIT1_IR },
/*EXIT1_IR  */ {JS_PAUSE_IR,  JS_UPDATE_IR},
/*PAUSE_IR  */ {JS_PAUSE_IR,  JS_EXIT2_IR },
/*EXIT2_IR  */ {JS_SHIFT_IR,  JS_UPDATE_IR},
/*UPDATE_IR */ {JS_RUNIDLE,   JS_SELECT_DR},
/*SELECT_DR */ {JS_CAPTURE_DR,JS_SELECT_IR},
/*CAPTURE_DR*/ {JS_SHIFT_DR,  JS_EXIT1_DR },
/*SHIFT_DR  */ {JS_SHIFT_DR,  JS_EXIT1_DR },
/*EXIT1_DR  */ {JS_PAUSE_DR,  JS_UPDATE_DR},
/*PAUSE_DR  */ {JS_PAUSE_DR,  JS_EXIT2_DR },
/*EXIT2_DR  */ {JS_SHIFT_DR,  JS_UPDATE_DR},
/*UPDATE_DR */ {JS_RUNIDLE,   JS_SELECT_DR} 
};

/* JTAG Instructions */
const int JI_EXTEST       = 0x000;
const int JI_PROGRAM      = 0x002;
const int JI_STARTUP      = 0x003;
const int JI_CHECK_STATUS = 0x004;
const int JI_SAMPLE       = 0x005;
const int JI_IDCODE       = 0x006;
const int JI_USERCODE     = 0x007;
const int JI_INTEST       = 0x008;
const int JI_REGSCAN      = 0x009;
const int JI_USER0        = 0x00C;
const int JI_USER1        = 0x00E;
const int JI_BYPASS       = 0x3FF;

const char JS_NAME[][MAX_JS_CHAR_COUNT+1] = {
"RESET",
"RUN/IDLE",
"SELECT_IR",
"CAPTURE_IR",
"SHIFT_IR",
"EXIT1_IR",
"PAUSE_IR",
"EXIT2_IR",
"UPDATE_IR",
"SELECT_DR",
"CAPTURE_DR",
"SHIFT_DR",
"EXIT1_DR",
"PAUSE_DR",
"EXIT2_DR",
"UPDATE_DR",
"UNDEFINE" };

struct states
{
	int state;
} jtag;

/******************************************************************/
/* Name:         Js_Reset                                         */
/*                                                                */
/* Parameters:   None.                                            */
/*                                                                */
/* Return Value: None.                                            */
/*               		                                          */
/* Descriptions: Reset the JSM by issuing JSM_RESET_COUNT of clock*/
/*               with the TMS at HIGH.                            */
/*                                                                */
/******************************************************************/
void Js_Reset()
{
	int i;

	for(i=0;i<JSM_RESET_COUNT;i++)
		AdvanceJSM(1);
}

/******************************************************************/
/* Name:         Runidle                                          */
/*                                                                */
/* Parameters:   None.                                            */
/*                                                                */
/* Return Value: None.                                            */
/*               		                                          */
/* Descriptions: If the current JSM is not at UPDATE_DR or        */
/*               UPDATE_IR state, RESET JSM and move to RUNIDLE,  */
/*               if it is, clock once with TMS LOW and move to    */
/*               RUNIDLE.                                         */
/*                                                                */
/******************************************************************/
void Js_Runidle()
{
	int i=0;
	
	/* If the current state is not UPDATE_DR or UPDATE_IR, reset the JSM and move to RUN/IDLE */
	if(jtag.state!=JS_UPDATE_IR && jtag.state!=JS_UPDATE_DR)
	{
		for(i=0;i<JSM_RESET_COUNT;i++)
			AdvanceJSM(1);
	}

	AdvanceJSM(0);
}

/******************************************************************/
/* Name:         AdvanceJSM                                       */
/*                                                                */
/* Parameters:   mode                                             */
/*               -the input mode to JSM.                          */
/*                                                                */
/* Return Value: The current JSM state.                           */
/*               		                                          */
/* Descriptions: Function that keep track of the JSM state. It    */
/*               drives out signals to TMS associated with a      */
/*               clock pulse at TCK and updates the current state */
/*               variable.                                        */
/*                                                                */
/******************************************************************/
int AdvanceJSM(int mode)
{
	DriveSignal(J_SIG_TMS,mode,1,1);
		
	jtag.state = JSM[jtag.state][mode];

	return (jtag.state);
}

/******************************************************************/
/* Name:         PrintJS                                          */
/*                                                                */
/* Parameters:   None.                                            */
/*                                                                */
/* Return Value: None.                                            */
/*               		                                          */
/* Descriptions: Print the current state of the JSM.              */
/*                                                                */
/******************************************************************/
void PrintJS()
{
	char state[MAX_JS_CHAR_COUNT+1];

	strcpy(state, JS_NAME[jtag.state]);
	
	fprintf(stdout, "Info: JSM: %s\n", state );
}

/******************************************************************/
/* Name:         SetupChain                                       */
/*                                                                */
/* Parameters:   dev_count,dev_seq,ji_info,action                 */
/*               -device_count is the total device in chain       */
/*               -dev_seq is the device sequence in chain         */
/*               -ji_info is the pointer to an integer array that */
/*                contains the JTAG instruction length for the    */
/*                devices in chain.                               */ 
/*               -action is the JTAG instruction to load          */
/*                                                                */
/* Return Value: None.                                            */
/*               		                                          */
/* Descriptions: Move the JSM to SHIFT_IR. Issue the JTAG         */
/*               instruction, "action" to the target device and   */
/*               BYPASS to the rest of the devices. Then, move    */
/*               the JSM to UPDATE_IR.                            */
/*                                                                */
/******************************************************************/
void SetupChain(int dev_count,int dev_seq,int* ji_info,int action)
{
	int i,record=0;
	/* Move Jtag State Machine (JSM) to RUN/IDLE */
	if(jtag.state!=JS_RUNIDLE && jtag.state!=JS_RESET)
		Js_Runidle();

	/* Move JSM to SHIFT_IR */
	AdvanceJSM(0);
	AdvanceJSM(1);
	AdvanceJSM(1);
	AdvanceJSM(0);
	AdvanceJSM(0);

	for(i=dev_count-1;i>=0;i--)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品污网站| 一区二区高清免费观看影视大全 | www.久久久久久久久| 亚洲高清久久久| 欧美激情一区在线| 91 com成人网| 一本大道久久a久久精品综合| 免费成人在线播放| 一区二区三区久久久| 欧美激情一区二区在线| 91精品国产综合久久精品性色| 99久久久国产精品免费蜜臀| 精品一区二区三区的国产在线播放| 亚洲精品国产品国语在线app| 精品日韩99亚洲| 欧美日韩成人综合天天影院| 成人a区在线观看| 国产乱子轮精品视频| 日本亚洲免费观看| 亚洲a一区二区| 亚洲美女淫视频| 国产精品国产三级国产普通话蜜臀| 欧美xxxxx牲另类人与| 91精品国产高清一区二区三区| 色哟哟日韩精品| 成人毛片老司机大片| 国产精品综合久久| 国产一区二区三区免费播放| 久久99热这里只有精品| 日韩av电影一区| 日本不卡123| 日韩成人伦理电影在线观看| 日日摸夜夜添夜夜添国产精品| 亚洲免费看黄网站| 亚洲欧洲精品一区二区三区| 国产精品丝袜一区| 日本一区二区三区电影| 中文字幕精品一区二区三区精品| 久久嫩草精品久久久精品| 精品国产乱码久久久久久蜜臀| 欧美一二三四区在线| 欧美电影免费观看高清完整版在线 | 色悠久久久久综合欧美99| 成人白浆超碰人人人人| 波多野结衣在线一区| www.在线欧美| 91丨九色丨黑人外教| 97久久久精品综合88久久| av网站免费线看精品| a级高清视频欧美日韩| 色婷婷久久久久swag精品| 在线免费亚洲电影| 欧美性色黄大片| 91麻豆精品国产| 日韩免费观看2025年上映的电影| 欧美大白屁股肥臀xxxxxx| 日韩免费高清电影| 国产欧美一区二区精品性| 国产精品久久久久久亚洲伦 | 欧美精品久久久久久久多人混战 | 中文字幕av在线一区二区三区| 中文欧美字幕免费| 亚洲色图欧美在线| 亚洲午夜电影在线| 久久99精品国产.久久久久久| 国产91色综合久久免费分享| 色伊人久久综合中文字幕| 精品污污网站免费看| 日韩精品一区二区三区四区视频| 久久人人97超碰com| 综合分类小说区另类春色亚洲小说欧美 | 91精品麻豆日日躁夜夜躁| 精品日韩欧美在线| 中文字幕视频一区二区三区久| 一区二区三区在线免费| 另类小说色综合网站| 成人av网在线| 欧美日韩一级二级三级| 精品日本一线二线三线不卡| 国产精品成人免费在线| 午夜av电影一区| 国产麻豆成人传媒免费观看| 91日韩精品一区| 精品国产免费视频| 伊人婷婷欧美激情| 国产一区啦啦啦在线观看| 在线观看视频一区二区 | 亚洲国产精品麻豆| 国产乱对白刺激视频不卡| 在线一区二区三区| 国产网站一区二区| 日日夜夜免费精品视频| 不卡视频一二三四| 日韩午夜av电影| 一区二区三区美女| 成人亚洲一区二区一| 欧美一区二区视频在线观看2022| 亚洲欧洲另类国产综合| 国内久久精品视频| 欧美日韩在线播放| 中文字幕亚洲在| 国产精品亚洲午夜一区二区三区| 欧美日韩不卡视频| 亚洲图片激情小说| 国产又黄又大久久| 91精品久久久久久久久99蜜臂| 亚洲四区在线观看| 国产成人亚洲综合a∨婷婷| 5858s免费视频成人| 一区二区三区在线播放| 懂色一区二区三区免费观看 | 国产精品麻豆欧美日韩ww| 久久草av在线| 777奇米四色成人影色区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 裸体一区二区三区| 欧美老人xxxx18| 夜夜嗨av一区二区三区四季av| 成人av在线播放网站| 国产清纯白嫩初高生在线观看91| 蜜桃视频第一区免费观看| 欧美精品 国产精品| 亚洲宅男天堂在线观看无病毒| 成人精品免费看| 国产亚洲一本大道中文在线| 国产在线精品不卡| 久久噜噜亚洲综合| 狠狠色丁香婷综合久久| 日韩免费一区二区| 久久精品国产99| 日韩精品一区二区三区老鸭窝 | 成人精品鲁一区一区二区| 久久久久九九视频| 国产精品中文字幕一区二区三区| 日韩女优av电影在线观看| 日本怡春院一区二区| 日韩午夜精品视频| 看电视剧不卡顿的网站| 日韩欧美123| 国产一区二区三区黄视频| 精品国产在天天线2019| 狠狠狠色丁香婷婷综合久久五月| 久久亚洲免费视频| 夫妻av一区二区| 国产精品久久久久7777按摩| 99久久免费精品高清特色大片| 亚洲美女免费在线| 欧美日韩一区中文字幕| 免费精品视频在线| 久久综合狠狠综合久久综合88| 美女免费视频一区| 国产欧美日韩另类视频免费观看| 粉嫩av一区二区三区在线播放| 国产精品美女一区二区三区| 91麻豆精品一区二区三区| 一区二区高清视频在线观看| 欧美美女喷水视频| 国产综合久久久久久鬼色| 欧美经典一区二区三区| 99re亚洲国产精品| 午夜久久久久久| 久久综合九色综合97婷婷女人 | 国产99久久久国产精品潘金| 国产精品麻豆欧美日韩ww| 欧美性大战久久| 久久精品国产亚洲5555| 中文字幕av一区二区三区免费看| 日本大香伊一区二区三区| 日韩精品每日更新| 久久久91精品国产一区二区精品| 北岛玲一区二区三区四区| 午夜精品久久久久久久99樱桃 | 亚洲欧美另类小说视频| 91精品国产综合久久福利| 国产成人综合视频| 一区二区免费在线| 欧美电影免费观看高清完整版在线| 成人永久免费视频| 五月婷婷激情综合| 国产日产欧美一区| 欧美日韩不卡一区二区| 高清国产一区二区| 天天综合天天综合色| 中文字幕欧美三区| 欧美一区二区视频在线观看| 暴力调教一区二区三区| 麻豆成人综合网| 一区二区三区不卡视频| 精品剧情在线观看| 欧美色中文字幕| 国产精品91一区二区| 视频一区中文字幕| 亚洲情趣在线观看| 久久一区二区三区国产精品| 欧美日韩精品一区二区在线播放| 国产成人精品亚洲日本在线桃色| 午夜国产不卡在线观看视频| |精品福利一区二区三区| 精品久久久久香蕉网| 欧美日韩一区二区在线观看视频 |