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

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

?? fbcmd.c

?? 5509A燒寫flash的bootloader啟動程序
?? C
字號:
/**********************************************************************
 *		 (C) COPYRIGHT TEXAS INSTRUMENTS, INC. 2000, 2001			  *
 *																	  *
 * FBCmd.c -- Process FlashBurn Target Component commands             *
 *				for FBTC55.                                           *
 **********************************************************************
 */
/* Change Log:
 */
/*
 * $Log: FBCmd.c,v $
 * Revision 1.4  2001/04/19 18:56:50  heeschen
 * v00.30 Alpha - Updated comments
 *
 *
 */

#include "fbtc55.h"
#include "fbcmd.h"
#include "flash.h"
#include <stdio.h>


#define DBPRINT  0

/* -------------
 * Globals
 * -------------
 */



/* -------------
 * Local statics
 * -------------
 */

/* ----------------
 * Local prototypes
 * ----------------
 */
static void SendVersionID(void);


u16 doCommand(u16 *msg)
{
	u16 cmd = GetCmd();
	
			#if DBPRINT == 1
			printf("CMD: %x", cmd);
			#endif
	
	/* Dispatch to a processor for the current message.
	*/
	switch(cmd +1 )
	{
	case 0x0000:      /* NOP */
		break;
	case 0x0001:      /* QUERY PROTOCOL VERSION */
		SetErrorBits(CMDOK);
		SendI2ToHost(cmd, GetProtocolVersionID());
		break;
	case 0x0002:      /* QUERY STATUS */
			#if DBPRINT == 1
			printf("  Status: %x", GetProtocolStatusWord());
			#endif
		SendI2ToHost(cmd, GetProtocolStatusWord());
		break;
	case 0x0003:      /* ERASE FLASH */
		SetErrorBits(CMDOK);
		EraseFlash();
		SendI2ToHost(cmd, 0);
		break;
	case 0x0004:      /* QUERY FLASH BASE ADDRESS VALUE */
		SetErrorBits(CMDOK);
			// Send byte addr back to host,
			// not word addr.
		SendI4ToHost(cmd, FLASH_BASE_ADDR * 2);
		break;
	case 0x0005:      /* READ 1 VALUE FROM FLASH LOGICAL ADDR */	
			#if DBPRINT == 1
			printf(" ARGS: %x %x", GetArgVal(0), GetArgVal(1));
			#endif
		SetErrorBits(CMDOK);
			// Note that address from host is byte addr,
			// but I use word addr.
		SendI2ToHost(cmd, GetFlashVal(GetFlashBase() + ShortsToULong(GetArgVal(0), GetArgVal(1)) / 2));
		break;
	case 0x0006: /* READ A BLOCK OF FLASH DATA */
			#if DBPRINT == 1
			printf(" ARGS: %x %x %x", GetArgVal(0), GetArgVal(1), GetArgVal(2));
			#endif
		SetErrorBits(CMDOK);
		SendFlashBufToHost(cmd, GetFlashBase() + ShortsToULong(GetArgVal(0), GetArgVal(1)) / 2, GetArgVal(2));
		break;
	case 0x0007:   /* WRITE DATA TO FLASH  */
			#if DBPRINT == 1
			printf(" ARGS: %x %x %x",  GetArgVal(0), GetArgVal(1), GetArgVal(2));
			#endif
			// Note that address from host is byte addr,
			// but I use word addr.
		SetErrorBits(CMDOK);
		BurnFlash(ShortsToULong(GetArgVal(0), GetArgVal(1)), GetData(), GetArgVal(2));
		break;
	case 0x0008:    /* WRITE MORE DATA TO FLASH */
			#if DBPRINT == 1
			printf(" ARG: %x",  GetArgVal(0));
			#endif
		SetErrorBits(CMDOK);
		BurnFlash((unsigned long)GetNextFlashAddr() * 2, GetData(), GetArgVal(0));
		break;
	case 0x0009:   /* RESPOND WITH FLASH DATA CHECKSUM */
			#if DBPRINT == 1
			printf(" ARGS: %x %x %x %x",  GetArgVal(0), GetArgVal(1), GetArgVal(2), GetArgVal(3));
			#endif
		SetErrorBits(CMDOK);

		CKSSet(0);
			// Note that address from host is logical byte addr.
		SendI2ToHost(cmd,
		            (u16)CKSAccumBuf(ShortsToULong(GetArgVal(0), GetArgVal(1)),
					                 ShortsToULong(GetArgVal(2), GetArgVal(3))));
		break;
    case 0x000a:   /* ACCEPT USER DATA
	                * Simply accept & toss data.
                    * I use this for timing tests.
                    * It could contain your own proprietary
                    * commands or data, sort of an escape
                    * sequence.
                    */
			#if DBPRINT == 1
			printf(" ARG: %x",  GetArgVal(0));
			#endif
		SetErrorBits(CMDOK);		/* This implementation doesn't do anything
		 * with the data)
		 */
		SendI2ToHost(cmd, 0);
		break;

    case 0x000b:      /* QUERY FLASHSIZE VALUE */
		SetErrorBits(CMDOK);
		SendI4ToHost(cmd, GetFlashSize());
		break;

	case 0x000c:      /* CHANGE FLASHSTART ADDRESS */
			#if DBPRINT == 1
			printf(" ARGS: %x %x", GetArgVal(0), GetArgVal(1));
			#endif
		SetErrorBits(CMDOK);
			// Change to word address from byte address for Host.
		SetFlashBase(ShortsToULong(GetArgVal(0), GetArgVal(1)) / 2);
		break;

	case 0x000d:      /* CHANGE FLASH SIZE */
			#if DBPRINT == 1
			printf(" ARGS: %x %x\n", GetArgVal(0), GetArgVal(1));
			#endif
		SetErrorBits(CMDOK);
		SetFlashSize(ShortsToULong(GetArgVal(0), GetArgVal(1)));
		break;

	case 0x000e:      /* QUERY FBTC VERSION ID */
		SetErrorBits(CMDOK);
		SendVersionID();
		break;

	case 0x000f:      /* QUERY EDIT FLASH PERMISSION */
		SetErrorBits(CMDOK);
		SendI2ToHost(cmd, EDITFLASHPERMIT);
		break;

	case 0x0010:      /* QUERY MAX DATA BLOCK SIZE IN BYTES */
		SetErrorBits(CMDOK);
		SendI2ToHost(cmd, MAXDATABYTES);
		break;

	default:
			#if DBPRINT == 1
			printf(" *** UNKNOWN! ***");
			#endif
		break;
	}
	
	#if DBPRINT == 1
	printf("\n");
	#endif
	
	return 0;
}



/* Send my version ID back to the Host.
 */
static void SendVersionID(void)
{	
	StoreCmd(0x000e);  /* response to this command */	
	StoreArg(0, FBTCVersionMajor); /* Arg0 */
	StoreArg(1, FBTCVersionMinor); /* Arg1 */
}



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久福利| 激情综合网最新| 曰韩精品一区二区| 亚洲视频在线一区| 国产精品久久久久影院色老大| 久久精品亚洲麻豆av一区二区| 精品久久久久久久久久久院品网 | 亚洲私人黄色宅男| 国产精品久久夜| 中文字幕一区三区| 亚洲欧美日韩国产手机在线| 亚洲天堂精品在线观看| 亚洲卡通动漫在线| 一区二区三区日韩欧美精品| 亚洲综合久久av| 亚洲不卡一区二区三区| 日本欧美在线观看| 久久av资源站| 国产91对白在线观看九色| 成人av电影在线网| 欧美哺乳videos| 制服丝袜亚洲精品中文字幕| 欧美顶级少妇做爰| 精品精品欲导航| 久久久精品国产免费观看同学| 国产日韩欧美激情| 中文字幕日韩一区| 亚洲图片欧美视频| 日本人妖一区二区| 国产精品1区2区| 91在线无精精品入口| 欧美日韩在线电影| 精品国产乱子伦一区| 国产精品视频一二三区| 一区二区三区在线视频免费观看| 日本成人在线网站| 国产精品18久久久久久久网站| 99久久婷婷国产综合精品| 欧美午夜精品久久久久久超碰| 欧美一级生活片| 中文字幕不卡三区| 亚洲成人午夜电影| 国产精品一级片| 色狠狠色狠狠综合| 精品播放一区二区| 一区二区三区丝袜| 久久精品久久久精品美女| 成人国产精品免费观看视频| 在线观看一区不卡| 久久亚洲综合av| 最好看的中文字幕久久| 日本不卡在线视频| 成人丝袜18视频在线观看| 欧美日韩国产123区| 久久蜜臀中文字幕| 亚洲国产cao| 成人综合在线网站| 5858s免费视频成人| 国产精品视频一二三区| 日韩一区精品视频| 91视频国产资源| 精品捆绑美女sm三区| 亚洲综合色视频| 成人午夜视频网站| 91精品国产乱码久久蜜臀| 中文字幕在线免费不卡| 九色综合国产一区二区三区| 色偷偷久久人人79超碰人人澡| 国产日产欧产精品推荐色 | 欧美一区二区三区小说| 综合久久一区二区三区| 狠狠色狠狠色综合系列| 欧美日韩国产一区二区三区地区| 中文字幕精品一区二区三区精品| 午夜欧美在线一二页| 不卡的av网站| 久久精品在线观看| 老汉av免费一区二区三区 | 亚洲国产日韩a在线播放| 不卡欧美aaaaa| 国产亚洲一区二区三区四区| 喷水一区二区三区| 欧美日韩国产一级| 一区二区成人在线视频| 99视频有精品| 国产欧美日韩激情| 久久精品国产精品亚洲综合| 在线电影一区二区三区| 一区二区日韩电影| 91女人视频在线观看| 中文av一区特黄| 国产成人自拍高清视频在线免费播放| 日韩精品中文字幕一区二区三区| 天天综合网 天天综合色| 欧洲av一区二区嗯嗯嗯啊| 亚洲精品日日夜夜| 色视频成人在线观看免| 亚洲免费在线播放| 91视频观看视频| 亚洲人午夜精品天堂一二香蕉| 成人高清免费在线播放| 欧美韩国一区二区| 成人一级黄色片| 欧美激情综合五月色丁香小说| 精品一区二区三区在线观看| 精品日韩欧美在线| 久久成人免费电影| 久久久久久久久岛国免费| 精品一区精品二区高清| 久久久综合视频| 国产精品资源在线观看| 久久久精品综合| 成人免费毛片片v| 亚洲少妇最新在线视频| 99麻豆久久久国产精品免费| 亚洲欧美在线高清| 一本一本大道香蕉久在线精品| 亚洲蜜臀av乱码久久精品 | 国产日韩欧美精品在线| 国产黑丝在线一区二区三区| 国产日韩欧美a| 99视频精品全部免费在线| 最新国产の精品合集bt伙计| 欧美三级午夜理伦三级中视频| 日韩制服丝袜av| 精品欧美一区二区久久| 国产91在线看| 亚洲美女在线一区| 欧美精品在线观看播放| 久久99国产精品麻豆| 国产日韩亚洲欧美综合| 成人av综合在线| 一区二区三区丝袜| 91精品国产综合久久久久久| 国产在线播放一区| 日韩毛片高清在线播放| 欧美体内she精视频| 老色鬼精品视频在线观看播放| 欧美国产成人在线| 欧美亚一区二区| 欧美激情一区二区三区全黄| 久99久精品视频免费观看| 国产精品私人影院| 欧美日韩国产区一| 国产精品夜夜嗨| 一区二区三区日韩欧美精品 | 在线不卡的av| 国产制服丝袜一区| 亚洲免费观看高清完整版在线观看| 欧美亚洲日本国产| 韩日精品视频一区| 亚洲人午夜精品天堂一二香蕉| 日韩亚洲欧美成人一区| 波多野结衣中文一区| 日本系列欧美系列| 国产精品久久精品日日| 日韩一区二区三区四区| www.在线欧美| 男男gaygay亚洲| ●精品国产综合乱码久久久久| 欧美一区二区在线免费观看| 不卡电影免费在线播放一区| 蜜桃av一区二区| 一区二区三区丝袜| 国产三级欧美三级日产三级99 | 久久久美女毛片| 欧美在线色视频| 国产精品一二三在| 午夜国产精品一区| 亚洲欧美综合色| 欧美mv日韩mv国产网站app| 一本一道综合狠狠老| 国产成人免费视频| 精品制服美女丁香| 亚洲成a人片综合在线| 精品视频色一区| 欧美一卡二卡三卡| 91麻豆精品一区二区三区| 另类小说欧美激情| 亚洲福利电影网| 国产精品无人区| 日韩女同互慰一区二区| 欧美日韩另类一区| av男人天堂一区| 国产乱色国产精品免费视频| 日本亚洲天堂网| 久久精品亚洲乱码伦伦中文| 成人高清视频免费观看| 久色婷婷小香蕉久久| 2022国产精品视频| 成人白浆超碰人人人人| 亚洲成人av电影在线| 日韩三级视频在线看| 久久精品国产77777蜜臀| 欧美二区乱c少妇| 国产一区二区看久久| 亚洲国产裸拍裸体视频在线观看乱了| 欧美成人video| 91在线播放网址| 成人午夜电影久久影院|