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

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

?? cbootloader.cpp

?? 使用USB接口實現AVR單片機ISP升級.
?? CPP
字號:
/*  cbootloader.cpp - part of flashtool for AVRUSBBoot, an USB bootloader for Atmel AVR controllers  Thomas Fischl <tfischl@gmx.de>  Creation Date..: 2006-03-18  Last change....: 2006-06-25  Parts are taken from the PowerSwitch project by Objective Development Software GmbH*/
//#include <windows.h>
#include "usb.h"
#include "cbootloader.h"
//#include <string.h>
extern void UpdataMessageStr(char* mystring);
extern void UpdataMessageVal(unsigned int i);static int  usbGetStringAscii(usb_dev_handle *dev, int index, int langid, char *buf, int buflen){char    buffer[256];int     rval, i;    if((rval = usb_control_msg(dev, USB_ENDPOINT_IN, USB_REQ_GET_DESCRIPTOR, (USB_DT_STRING << 8) + index, langid, buffer, sizeof(buffer), 1000)) < 0)        return rval;    if(buffer[1] != USB_DT_STRING)        return 0;    if((unsigned char)buffer[0] < rval)        rval = (unsigned char)buffer[0];    rval /= 2;    /* lossy conversion to ISO Latin1 */    for(i=1;i<rval;i++){        if(i > buflen)  /* destination buffer overflow */            break;        buf[i-1] = buffer[2 * i];        if(buffer[2 * i + 1] != 0)  /* outside of ISO Latin1 range */            buf[i-1] = '?';    }    buf[i-1] = 0;    return i-1;}/* This project uses the free shared default VID/PID. If you want to see an * example device lookup where an individually reserved PID is used, see our * RemoteSensor reference implementation. */static  usb_dev_handle   *findDevice(void){struct usb_bus      *bus;struct usb_device   *dev;usb_dev_handle      *handle = 0;    usb_find_busses();    usb_find_devices();    for(bus=usb_get_busses(); bus; bus=bus->next){        for(dev=bus->devices; dev; dev=dev->next){            if(dev->descriptor.idVendor == USBDEV_SHARED_VENDOR && dev->descriptor.idProduct == USBDEV_SHARED_PRODUCT){                char    string[256];                int     len;                handle = usb_open(dev); /* we need to open the device in order to query strings */                if(!handle){                    //fprintf(stderr, "Warning: cannot open USB device: %s\n", usb_strerror());
	                UpdataMessageStr("Warning: cannot open USB device:");
                    UpdataMessageStr(usb_strerror());
					UpdataMessageStr("\r\n");
				                    continue;                }                len = usbGetStringAscii(handle, dev->descriptor.iManufacturer, 0x0409, string, sizeof(string));                if(len < 0){                    //fprintf(stderr, "warning: cannot query manufacturer for device: %s\n", usb_strerror());
					UpdataMessageStr("warning: cannot query manufacturer for device: ");
					UpdataMessageStr(usb_strerror());
					UpdataMessageStr("\r\n");                    goto skipDevice;                }                if(strcmp(string, "www.fischl.de") != 0)                    goto skipDevice;                len = usbGetStringAscii(handle, dev->descriptor.iProduct, 0x0409, string, sizeof(string));                if(len < 0){                    //fprintf(stderr, "warning: cannot query product for device: %s\n", usb_strerror());
					UpdataMessageStr("warning: cannot query product for device: ");
					UpdataMessageStr(usb_strerror());
					UpdataMessageStr("\r\n");                    goto skipDevice;                }		  //fprintf(stderr, "seen product ->%s<-\n", string);
				//UpdataMessageStr(usb_strerror());
				//UpdataMessageStr("seen product ->");
				//UpdataMessageStr(string);
				//UpdataMessageStr("<-");
				//UpdataMessageStr("\r\n");                if(strcmp(string, "AVRUSBBoot") == 0)                    break;skipDevice:                usb_close(handle);                handle = NULL;            }        }        if(handle)            break;    }    if(!handle)
	{       // fprintf(stderr, "Could not find USB device www.fischl.de/AVRUSBBoot\n");
	   UpdataMessageStr("Could not find USB device www.fischl.de/AVRUSBBoot");
	   UpdataMessageStr("\r\n");
	}    return handle;}CBootloader::CBootloader() {
	char *vname = "";
	char *devname = "";
	device=NULL;  if(usbOpenDevice(&device, USBDEV_SHARED_VENDOR, vname, USBDEV_SHARED_PRODUCT, devname, 1)){    //fprintf(stderr, "Could not find USB device \"AVRUSBBoot\" with vid=0x%x pid=0x%x\n", USBDEV_SHARED_VENDOR, USBDEV_SHARED_PRODUCT);    //exit(1);
	UpdataMessageStr("Could not find USB device with VID=0x");
    UpdataMessageVal(USBDEV_SHARED_VENDOR);
	UpdataMessageStr(" PID=0x");
	UpdataMessageVal(USBDEV_SHARED_PRODUCT);
	UpdataMessageStr("\r\n");  }}CBootloader::~CBootloader() {
  usbCloseDevice(device);}unsigned int CBootloader::getPagesize() {
  char       buffer[132];  int                 ErrorCode;
  int len=132;
  unsigned int pagesize;
  if(device==NULL)//ssda
	  return 0;	ErrorCode=usbGetReport(device, USB_HID_REPORT_TYPE_FEATURE, 1, (char *)buffer, &len);  if (ErrorCode!=0) {    //fprintf(stderr, "Error: wrong response size in getPageSize: %d !\n", nBytes);
	//exit(1);
	UpdataMessageStr("Error: wrong response size in getPageSize:");
	UpdataMessageVal(ErrorCode);
	UpdataMessageStr("\r\n");    return 0;  }

  pagesize=(unsigned int)((unsigned char)(buffer[1] << 8) | (unsigned char)buffer[2]);  return pagesize;}void CBootloader::startApplication() {  char       buffer[132];  int        len=132;
  int        ErrorCode;  buffer[0]=1;
  buffer[1]=1;  ErrorCode=usbSetReport(device, USB_HID_REPORT_TYPE_FEATURE,(char *)buffer, len);  if (ErrorCode != 0) {
    UpdataMessageStr("Error: wrong response size in startApplication:");
	UpdataMessageVal(ErrorCode);
	UpdataMessageStr("\r\n");
	exit(1);  }}void CBootloader::writePage(CPage* page)
{ //unsigned int nBytes;
   char       buffer[132];
  int        len=132;
  int        ErrorCode;
  buffer[0]=1;
  buffer[1]=2;
  buffer[2]=page->getPageaddress()&0x00ff;
  buffer[3]=(page->getPageaddress()&0xff00)>>8;
  memcpy(buffer+4,page->getData(),(unsigned int)page->getPagesize());
  ErrorCode=usbSetReport(device, USB_HID_REPORT_TYPE_FEATURE,(char *)buffer, len);  //nBytes = usb_control_msg(usbhandle,   //		   USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_OUT,   //		   2, page->getPageaddress(), 0,   //		   (char*) page->getData(), page->getPagesize(),   //			   5000);  if (ErrorCode!=0)
  {
	UpdataMessageStr("Error: wrong byte count in writePage:");
	UpdataMessageVal(ErrorCode);
	UpdataMessageStr("\r\n");
	exit(1);  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕一区在线观看视频| 国产制服丝袜一区| 秋霞午夜鲁丝一区二区老狼| 国产精品1024| 欧美日韩激情在线| 国产欧美日韩麻豆91| 午夜精品影院在线观看| 国产精品一品视频| 欧美色视频在线观看| 国产精品视频线看| 久久电影网电视剧免费观看| 91九色02白丝porn| 日本一区二区三区四区在线视频 | www.视频一区| 日韩视频在线你懂得| 亚洲精品免费在线| 国产.欧美.日韩| 日韩午夜激情电影| 亚洲不卡一区二区三区| 91亚洲精品一区二区乱码| 久久亚洲私人国产精品va媚药| 亚洲综合在线视频| 91亚洲精品一区二区乱码| 国产欧美一二三区| 国产精品亚洲一区二区三区妖精 | 午夜欧美2019年伦理| 盗摄精品av一区二区三区| 日韩免费福利电影在线观看| 性欧美疯狂xxxxbbbb| 在线观看日韩国产| 亚洲一线二线三线视频| 91免费观看在线| 亚洲色图欧美在线| 成人丝袜视频网| 国产免费久久精品| 成人午夜碰碰视频| 国产喂奶挤奶一区二区三区 | 亚洲一级不卡视频| 99国产精品99久久久久久| 国产欧美一区二区精品秋霞影院| 国产精品亚洲第一| 国产亚洲综合av| 国产精品18久久久久久久网站| 久久女同精品一区二区| 中文字幕亚洲在| 蜜臂av日日欢夜夜爽一区| 日韩免费观看高清完整版| 五月婷婷激情综合| 欧美精品在线视频| 久久国产剧场电影| 欧美极品少妇xxxxⅹ高跟鞋 | 日韩av电影免费观看高清完整版在线观看| 欧洲精品在线观看| 日本不卡一区二区三区高清视频| 91精品国产黑色紧身裤美女| 美女久久久精品| 国产欧美视频在线观看| 99热在这里有精品免费| 亚洲丝袜美腿综合| 欧美日韩国产乱码电影| 国内精品免费**视频| 国产精品乱码一区二区三区软件| 91视频www| 青椒成人免费视频| 中文字幕欧美三区| 欧美美女一区二区在线观看| 免费看日韩a级影片| 久久精品理论片| 国产福利视频一区二区三区| 国产精品久久久久久久蜜臀| 欧洲精品在线观看| 欧美变态tickling挠脚心| 中文字幕乱码久久午夜不卡| 天堂在线一区二区| 国产精品综合一区二区三区| 最好看的中文字幕久久| 91精品国产免费| 成人精品一区二区三区中文字幕| 亚洲综合色在线| 久久久久一区二区三区四区| 91偷拍与自偷拍精品| 久久国产精品99久久久久久老狼| 国产精品乱码一区二三区小蝌蚪| 欧美电影一区二区| 99精品视频在线免费观看| 日韩和欧美一区二区| 中文字幕日韩欧美一区二区三区| 91精品国模一区二区三区| 99在线精品观看| 国产伦精一区二区三区| 天使萌一区二区三区免费观看| 国产清纯白嫩初高生在线观看91| 欧美男人的天堂一二区| 91免费小视频| 国产精品亚洲一区二区三区妖精| 日本中文字幕一区二区视频| 亚洲免费资源在线播放| 中文字幕高清不卡| 精品久久久久香蕉网| 欧美日韩精品免费观看视频 | 粉嫩绯色av一区二区在线观看| 午夜电影网一区| 亚洲伦理在线精品| 国产精品嫩草影院com| 久久久久国色av免费看影院| 日韩亚洲欧美在线观看| 欧美日韩国产在线观看| 色综合久久久网| 99久免费精品视频在线观看| 成人综合婷婷国产精品久久免费| 韩国av一区二区三区在线观看| 首页综合国产亚洲丝袜| 午夜伊人狠狠久久| 亚洲va韩国va欧美va精品| 亚洲福中文字幕伊人影院| 亚洲精品免费在线| 亚洲午夜精品网| 亚洲一区二区三区爽爽爽爽爽 | gogogo免费视频观看亚洲一| 日韩一区二区三区四区| 亚洲乱码日产精品bd| 亚洲人吸女人奶水| 亚洲日本护士毛茸茸| 亚洲人成网站影音先锋播放| 狠狠色狠狠色综合系列| 成人性色生活片免费看爆迷你毛片| 欧美妇女性影城| 欧美色中文字幕| 欧美日本在线视频| 欧洲激情一区二区| 欧美久久久久久久久| 9191久久久久久久久久久| 欧美高清视频www夜色资源网| 欧美日韩综合不卡| 在线电影国产精品| 精品欧美乱码久久久久久| 精品国产不卡一区二区三区| 国产日韩精品一区二区浪潮av| 国产精品沙发午睡系列990531| 国产精品剧情在线亚洲| 一区二区三区四区在线播放| 亚洲成人你懂的| 蜜臀a∨国产成人精品| 国产成人免费视频一区| thepron国产精品| 欧美日韩久久一区二区| 精品久久久久av影院 | 91国偷自产一区二区开放时间| 91国内精品野花午夜精品 | 日韩av电影免费观看高清完整版| 久久99精品久久久久久动态图 | 青青草97国产精品免费观看 | 蜜臀av一区二区在线观看| 国产精品911| 欧美伊人精品成人久久综合97| 欧美一卡2卡3卡4卡| 国产精品嫩草影院com| 五月婷婷久久丁香| 成人激情校园春色| 91精品一区二区三区久久久久久| 国产三区在线成人av| 亚洲国产aⅴ天堂久久| 国产精品一区二区无线| 欧美日韩和欧美的一区二区| 国产欧美一区二区在线| 午夜视频在线观看一区二区| 国产经典欧美精品| 日韩一区二区精品在线观看| 国产精品久久久久婷婷| 极品少妇xxxx精品少妇偷拍| 91传媒视频在线播放| 国产日韩欧美精品电影三级在线| 亚洲午夜三级在线| 成人av资源网站| 精品粉嫩超白一线天av| 亚洲国产精品天堂| 成人av电影在线| 欧美精品一区在线观看| 亚洲va国产天堂va久久en| 成人午夜视频免费看| 久久久欧美精品sm网站| 日韩精品乱码免费| 色婷婷av一区二区三区软件| 国产欧美一区二区三区沐欲| 看片的网站亚洲| 欧美一区二区播放| 午夜不卡在线视频| 欧美自拍偷拍午夜视频| 亚洲免费观看高清完整版在线观看 | 韩国精品在线观看| 欧美日韩一区二区三区视频| 综合av第一页| 99久久er热在这里只有精品66| 9191久久久久久久久久久| 夜夜嗨av一区二区三区| 91蜜桃在线观看| 亚洲色图欧洲色图| 在线精品观看国产| 国产美女av一区二区三区| 777久久久精品|