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

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

?? jtag.py

?? 是瑞典科學院開發的世界最小的嵌入式操作系統,并且包括了TCP/IP協議,是最新版本
?? PY
?? 第 1 頁 / 共 2 頁
字號:
#!/usr/bin/env python#Parallel JTAG programmer for the MSP430 embedded proccessor.##(C) 2002 Chris Liechti <cliechti@gmx.net>#this is distributed under a free software license, see license.txt##Requires Python 2+ and the binary extension _parjtag.import sysimport _parjtagVERSION = "1.3"DEBUG = 0                           #disable debug messages by default#frame specific constsERASE_MASS  = 2ERASE_MAIN  = 1ERASE_SGMT  = 0#statesFREERUNNING = 0STOPPED     = 1#Configurations of the MSP430 driverVERIFICATION_MODE = 0  #Verify data downloaded to FLASH memories.RAMSIZE_OPTION    = 1  #Change RAM used to download and program flash blocksDEBUG_OPTION      = 2  #Set debug level. Enables debug outputs.#enumeration of output formats for uploadsHEX             = 0INTELHEX        = 1BINARY          = 2#exceptionsclass JTAGException(Exception): pass#for the use with memreaddef hexdump( (adr, memstr) ):    """Print a hex dump of data collected with memread    arg1: tuple with adress, memory    return None"""    count = 0    ascii = ''    for value in map(ord, memstr):        if not count: print "%04x: " % adr,        print "%02x" % value,        ascii += (32 <= value < 128) and chr(value) or '.'        count += 1        adr += 1        if count == 16:            count = 0            print "  ", ascii            ascii = ''    if count < 16: print "   "*(16-count), " ", asciidef makeihex( (address, data) ):    """work though the data and output lines in inzel hex format.    and end tag is appended"""    start = 0    while start<len(data):        end = start + 16        if end > len(data): end = len(data)        _ihexline(address, [ord(x) for x in data[start:end]])        start += 16        address += 16    _ihexline(address, [], type=1)   #append no data but an end linedef _ihexline(address, buffer, type=0):    """encode one line, output with checksum"""    sys.stdout.write( ':%02X%04X%02X' % (len(buffer), address & 0xffff, type) )    sum = len(buffer) + ((address >> 8) & 255) + (address & 255)    for b in buffer:        if b == None: b = 0         #substitute nonexistent values with zero        sys.stdout.write('%02X' % (b & 255))        sum += b&255    sys.stdout.write('%02X\n' %( (-sum) & 255))class Segment:    """store a string with memory contents along with its startaddress"""    def __init__(self, startaddress = 0, data=None):        if data is None:            self.data = ''        else:            self.data = data        self.startaddress = startaddress    def __getitem__(self, index):        return self.data[index]    def __len__(self):        return len(self.data)    def __repr__(self):        return "Segment(startaddress = 0x%04x, data=%r)" % (self.startaddress, self.data)class Memory:    """represent memory contents. with functions to load files"""    def __init__(self, filename=None):        self.segments = []        if filename:            self.filename = filename            self.loadFile(filename)    def append(self, seg):        self.segments.append(seg)    def __getitem__(self, index):        return self.segments[index]    def __len__(self):        return len(self.segments)    def loadIHex(self, file):        """load data from a (opened) file in Intel-HEX format"""        segmentdata = []        currentAddr = 0        startAddr   = 0        lines = file.readlines()        for l in lines:            if not l.strip(): continue  #skip empty lines            if l[0] != ':': raise Exception("File Format Error\n")            l = l.strip()               #fix CR-LF issues...            length  = int(l[1:3],16)            address = int(l[3:7],16)            type    = int(l[7:9],16)            check   = int(l[-2:],16)            if type == 0x00:                if currentAddr != address:                    if segmentdata:                        self.segments.append( Segment(startAddr, ''.join(segmentdata)) )                    startAddr = currentAddr = address                    segmentdata = []                for i in range(length):                    segmentdata.append( chr(int(l[9+2*i:11+2*i],16)) )                currentAddr = length + currentAddr            elif type == 0x01:                pass            else:                sys.stderr.write("Ignored unknown field (type 0x%02x) in ihex file.\n" % type)        if segmentdata:            self.segments.append( Segment(startAddr, ''.join(segmentdata)) )    def loadTIText(self, file):        """load data from a (opened) file in TI-Text format"""        next        = 1        currentAddr = 0        startAddr   = 0        segmentdata = []        #Convert data for MSP430, TXT-File is parsed line by line        while next >= 1:            #Read one line            l = file.readline()            if not l: break #EOF            l = l.strip()            if l[0] == 'q': break            elif l[0] == '@':        #if @ => new address => send frame and set new addr.                #create a new segment                if segmentdata:                    self.segments.append( Segment(startAddr, ''.join(segmentdata)) )                startAddr = currentAddr = int(l[1:],16)                segmentdata = []            else:                for i in l.split():                    segmentdata.append(chr(int(i,16)))        if segmentdata:            self.segments.append( Segment(startAddr, ''.join(segmentdata)) )    def loadELF(self, file):        """load data from a (opened) file in ELF object format.        File must be seekable"""        import elf        obj = elf.ELFObject()        obj.fromFile(file)        if obj.e_type != elf.ELFObject.ET_EXEC:            raise Exception("No executable")        for section in obj.getSections():            if DEBUG:                sys.stderr.write("ELF section %s at 0x%04x %d bytes\n" % (section.name, section.lma, len(section.data)))            if len(section.data):                self.segments.append( Segment(section.lma, section.data) )            def loadFile(self, filename):        """fill memory with the contents of a file. file type is determined from extension"""        #TODO: do a contents based detection        if filename[-4:].lower() == '.txt':            self.loadTIText(open(filename, "rb"))        elif filename[-4:].lower() in ('.a43', '.hex'):            self.loadIHex(open(filename, "rb"))        else:            self.loadELF(open(filename, "rb"))    def getMemrange(self, fromadr, toadr):        """get a range of bytes from the memory. unavailable values are filled with 0xff."""        res = ''        toadr = toadr + 1   #python indxes are excluding end, so include it        while fromadr < toadr:            for seg in self.segments:                segend = seg.startaddress + len(seg.data)                if seg.startaddress <= fromadr and fromadr < segend:                    if toadr > segend:   #not all data in segment                        catchlength = segend-fromadr                    else:                        catchlength = toadr-fromadr                    res = res + seg.data[fromadr-seg.startaddress : fromadr-seg.startaddress+catchlength]                    fromadr = fromadr + catchlength    #adjust start                    if len(res) >= toadr-fromadr:                        break   #return res            else:   #undefined memory is filled with 0xff                    res = res + chr(255)                    fromadr = fromadr + 1 #adjust start        return resclass JTAG:    """wrap the _parjtag extension"""    def __init__(self):        self.showprogess = 0            def connect(self, lpt=None):        """connect to specified or default port"""        if lpt is None:            _parjtag.connect()        else:            _parjtag.connect(lpt)    def close(self):        """release JTAG"""        _parjtag.release()    def uploadData(self, startaddress, size):        """upload a datablock"""        if DEBUG > 1: sys.stderr.write("* uploadData()\n")        return _parjtag.memread(startaddress, size)    def actionMassErase(self):        """Erase the flash memory completely (with mass erase command)"""        sys.stderr.write("Mass Erase...\n")        _parjtag.memerase(ERASE_MASS)    def actionMainErase(self):        """Erase the MAIN flash memory, leave the INFO mem"""        sys.stderr.write("Erase Main Flash...\n")        _parjtag.memerase(ERASE_MAIN, 0xfffe)    def makeActionSegmentErase(self, address):        """Selective segment erase"""        class SegmentEraser:            def __init__(self, segaddr):                self.address = segaddr            def __call__(self):                sys.stderr.write("Erase Segment @ 0x%04x...\n" % self.address)                _parjtag.memerase(ERASE_SGMT, self.address)        return SegmentEraser(address)    def actionEraseCheck(self):        """check the erasure of required flash cells."""        sys.stderr.write("Erase Check by file ...\n")        if self.data is not None:            for seg in self.data:                data = _parjtag.memread(seg.startaddress, len(seg.data))                if data != '\xff'*len(seg.data): raise JTAGException("Erase check failed")        else:            raise JTAGException("cannot do erase check against data with not knowing the actual data")    def progess_update(self, count, total):        sys.stderr.write("\r%d%%" % (100*count/total))            def actionProgram(self):        """program data into flash memory."""        if self.data is not None:            sys.stderr.write("Program ...\n")            if self.showprogess:                _parjtag.set_flash_callback(self.progess_update)            bytes = 0            for seg in self.data:                _parjtag.memwrite(seg.startaddress, seg.data)                bytes += len(seg.data)            if self.showprogess:                sys.stderr.write("\r")            sys.stderr.write("%i bytes programmed.\n" % bytes)        else:            raise JTAGException("programming without data not possible")    def actionVerify(self):        """Verify programmed data"""        if self.data is not None:            sys.stderr.write("Verify ...\n")            for seg in self.data:                data = _parjtag.memread(seg.startaddress, len(seg.data))                if data != seg.data: raise JTAGException("Verify failed")        else:            raise JTAGException("verify without data not possible")    def actionReset(self):        """perform a reset"""        sys.stderr.write("Reset device ...\n")        _parjtag.reset(0, 0)    def actionRun(self, address):        """start program at specified address"""

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
首页国产欧美久久| 亚洲精品一线二线三线无人区| 日韩欧美国产麻豆| 午夜精品一区在线观看| 日本道在线观看一区二区| 中文字幕一区二区三区不卡 | 天堂精品中文字幕在线| 色综合天天综合在线视频| 国产精品萝li| 99久久99久久综合| 国产精品福利一区| 99久久精品情趣| 亚洲桃色在线一区| 99精品视频中文字幕| 中文字幕在线观看一区二区| 成人激情开心网| 亚洲欧美在线视频观看| 不卡一区二区中文字幕| 国产精品精品国产色婷婷| 成人a级免费电影| 亚洲三级电影网站| 欧美伊人久久大香线蕉综合69| 亚洲欧美激情一区二区| 一本色道a无线码一区v| 亚洲一区在线视频观看| 8x福利精品第一导航| 捆绑紧缚一区二区三区视频| 国产亚洲污的网站| 99久久久精品免费观看国产蜜| 亚洲免费观看高清完整版在线观看| 日本黄色一区二区| 日韩国产一区二| 精品久久久久久久久久久久包黑料| 国产麻豆精品theporn| 中文字幕av资源一区| 国产日韩欧美在线一区| 成人免费观看男女羞羞视频| 亚洲日本va午夜在线影院| 欧美在线免费观看视频| 免费在线看一区| 久久久av毛片精品| 91在线视频网址| 天天综合色天天综合| 久久亚洲私人国产精品va媚药| 不卡的av中国片| 午夜精品福利一区二区三区av| 精品精品欲导航| av在线不卡电影| 亚洲成人免费av| 精品电影一区二区三区 | 成人综合婷婷国产精品久久免费| 欧美国产日韩一二三区| 欧美性xxxxxx少妇| 国产成人精品影视| 亚洲高清在线精品| 久久久亚洲精品石原莉奈| 91捆绑美女网站| 久久99精品一区二区三区三区| 中文字幕精品综合| 欧美高清激情brazzers| 国产精品性做久久久久久| 亚洲高清不卡在线| 国产精品毛片久久久久久久| 91精品国产一区二区三区香蕉| 成人动漫精品一区二区| 久久精品国产亚洲5555| 一区二区高清视频在线观看| 国产午夜精品一区二区三区四区| 欧美日韩一区国产| www.99精品| 蜜桃精品在线观看| 一级精品视频在线观看宜春院| 久久精品一区二区三区不卡牛牛| 欧美日韩不卡在线| 91年精品国产| 高清beeg欧美| 极品销魂美女一区二区三区| 亚洲国产视频在线| 自拍av一区二区三区| 国产区在线观看成人精品| 51精品视频一区二区三区| 91视视频在线直接观看在线看网页在线看| 久久国产成人午夜av影院| 亚洲一区二区视频在线观看| 国产精品不卡在线观看| 国产视频一区在线播放| 久久综合资源网| 日韩欧美一区电影| 51久久夜色精品国产麻豆| 精品视频在线免费| 精品视频在线看| 欧美午夜一区二区| 在线观看日韩国产| 国产精品美女一区二区三区| 精品黑人一区二区三区久久| 日韩欧美亚洲国产另类| 91精品国产一区二区三区蜜臀| 欧美日韩中文字幕一区二区| 色吊一区二区三区| 91看片淫黄大片一级| 成人a区在线观看| 成人亚洲一区二区一| 国产高清成人在线| 国产成人啪免费观看软件| 国产精品一区二区三区四区 | 久久99久国产精品黄毛片色诱| 婷婷成人激情在线网| 亚洲国产一区视频| 午夜国产精品一区| 天天综合天天做天天综合| 日韩精品一级中文字幕精品视频免费观看 | 国产精品高潮呻吟久久| 国产女人18毛片水真多成人如厕 | 欧美日韩免费电影| 欧美日韩国产区一| 这里只有精品电影| 日韩三级伦理片妻子的秘密按摩| 欧美精品v日韩精品v韩国精品v| 欧美欧美欧美欧美| 欧美一级欧美三级| 2023国产精品自拍| 国产精品丝袜在线| 亚洲精品日产精品乱码不卡| 亚洲国产精品一区二区www| 婷婷成人综合网| 国产最新精品精品你懂的| 成人午夜激情片| 欧洲精品一区二区| 91精品国产综合久久精品app| 欧美tk—视频vk| 国产亚洲欧美中文| 一区二区三区在线观看国产| 偷偷要91色婷婷| 国产美女视频91| 色综合久久综合网| 91精品国产日韩91久久久久久| 日韩欧美三级在线| 中文字幕一区二区三区四区| 亚洲最新视频在线播放| 精品一区二区久久久| 99久久综合狠狠综合久久| 欧美日韩一区二区三区四区五区| 精品精品欲导航| 亚洲日本成人在线观看| 五月天欧美精品| 国产suv精品一区二区三区| 91一区在线观看| 91精品国产综合久久蜜臀| 日韩欧美黄色影院| 成人免费一区二区三区视频| 丝袜诱惑亚洲看片| 成人福利在线看| 日韩一区二区三区免费观看| 国产精品嫩草99a| 日韩制服丝袜先锋影音| k8久久久一区二区三区 | 欧美美女激情18p| 国产亚洲精久久久久久| 亚洲美女一区二区三区| 久久成人久久爱| 欧美四级电影网| 国产精品无遮挡| 日韩av中文字幕一区二区 | gogogo免费视频观看亚洲一| 欧美日韩黄色影视| 国产精品久久久一本精品 | 亚洲国产成人高清精品| 国产成人高清在线| 日韩三级精品电影久久久| 一区二区三区蜜桃| 成人美女在线视频| 精品久久久久久无| 五月综合激情日本mⅴ| 91麻豆福利精品推荐| 亚洲国产精品精华液ab| 久久99精品一区二区三区三区| 欧美无砖专区一中文字| 国产精品国产精品国产专区不片| 裸体一区二区三区| 欧美日韩第一区日日骚| 一区二区三区四区不卡在线| 国产成人精品在线看| 久久众筹精品私拍模特| 久久精品国产一区二区三区免费看 | 国产日韩精品视频一区| 精品一区二区三区日韩| 91精品中文字幕一区二区三区| 亚洲人成亚洲人成在线观看图片| 国产成人午夜片在线观看高清观看| 精品裸体舞一区二区三区| 丝袜美腿亚洲色图| 欧美日韩精品综合在线| 一区二区三区高清不卡| 91麻豆福利精品推荐| 综合精品久久久| 91丨九色丨尤物| 一区二区三区在线免费播放| 在线免费视频一区二区| 亚洲欧美日韩久久精品| 色综合天天综合色综合av|