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

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

?? util.c

?? TI DM6446 EVM 串口下載程序 使用環境:windows dos環境或者linux 使用前需安裝mono
?? C
字號:
/* --------------------------------------------------------------------------
    FILE        : util.c 				                             	 	        
    PURPOSE     : Utility and misc. file
    PROJECT     : DaVinci User Boot-Loader and Flasher
    AUTHOR      : Daniel Allred
    DATE	    : Jan-22-2007  
 
    HISTORY
 	     v1.00 completion 							 						      
 	          Daniel Allred - Jan-22-2007                                              
 ----------------------------------------------------------------------------- */
#include "ubl.h"
#include "dm644x.h"
#include "uart.h"
#include "util.h"

// Memory allocation stuff
static VUint32 current_mem_loc;
VUint8 DDRMem[0] __attribute__((section (".ddrram")));;

// DDR Memory allocation routines (for storing large data)
Uint32 get_current_mem_loc()
{
	return current_mem_loc;
}

void set_current_mem_loc(Uint32 value)
{
	current_mem_loc = value;
}

void *ubl_alloc_mem (Uint32 size)
{
	void *cPtr;
	Uint32 size_temp;

	// Ensure word boundaries
	size_temp = ((size + 4) >> 2 ) << 2;
	
	if((current_mem_loc + size_temp) > (MAX_IMAGE_SIZE))
	{
		return 0;
	}

	cPtr = (void *) (DDRMem + current_mem_loc);
	current_mem_loc += size_temp;

	return cPtr;
}


// S-record Decode stuff
Uint32 GetHexData(Uint8 *src, Uint32 numBytes, Uint8* seq)
{
	Uint32 i;
	Uint8 temp[2];
	Uint32 checksum = 0;

	for(i=0;i<numBytes;i++)
	{
		/* Converting ascii to Hex*/
		temp[0] = *src++ - 48;
		temp[1] = *src++ - 48;
		if(temp[0] > 22)/* To support lower case a,b,c,d,e,f*/
		   temp[0] = temp[0]-39;
		else if(temp[0]>9)/* To support Upper case A,B,C,D,E,F*/
		   temp[0] = temp[0]-7;
		if(temp[1] > 22)/* To support lower case a,b,c,d,e,f*/
		   temp[1] = temp[1]-39;
		else if(temp[1]>9)/* To support Upper case A,B,C,D,E,F*/
		   temp[1] = temp[1]-7;
	
		seq[i] = (temp[0] << 4) | temp[1];
		checksum += seq[i];

	}
	return checksum;
}

Uint32 GetHexAddr(Uint8 *src, Uint32* addr)
{
	Uint32 checksum;
	checksum = GetHexData(src,4,(Uint8 *)addr);
	*addr = ENDIAN_SWAP(*addr);
	return checksum;
}

Uint32 SRecDecode(Uint8 *srecAddr, Uint32 srecByteCnt, Uint32 *binAddr, Uint32 *binByteCnt)
{
	VUint32		index;
	Uint8		cnt;
	Uint32		dstAddr;
	Uint32		totalCnt;
	Uint32		checksum;

	totalCnt = 0;
	index = 0;

	// Look for S0 (starting/title) record
	if((srecAddr[index] != 'S')||(srecAddr[index+1] != '0'))
	{
		return E_FAIL;
	}
	
	index += 2;
	// Read the length of S0 record & Ignore that many bytes
	GetHexData (&srecAddr[index], 1, &cnt);
	index += (cnt * 2) + 2;     // Ignore the count and checksum

	while(index <= srecByteCnt)
	{
	    // Check for S3 (data) record
		if(( srecAddr[index] == 'S' )&&( srecAddr[index+1] == '3'))
		{
			index += 2;
		
			checksum = GetHexData (srecAddr+index, 1, &cnt);
			index += 2;

			checksum += GetHexAddr(srecAddr+index, &dstAddr);
			index += 8;
			
			// Eliminate the Address 4 Bytes and checksum
			cnt -=5;	

			// Read cnt bytes to the to the determined destination address
			checksum += GetHexData (srecAddr+index, cnt, (Uint8 *)dstAddr);
			index += (cnt << 1);
			dstAddr += cnt;
			totalCnt += cnt;

			/* Skip Checksum */
			GetHexData (srecAddr+index, 1, &cnt);
			index += 2;
			if ( cnt != (Uint8)((~checksum) & 0xFF) )
			{
				UARTSendData((Uint8 *) "S-record decode checksum failure.\r\n", FALSE);
				return E_FAIL;
			}
		}
		
		// Check for S7 (terminating) record
		if ( ( srecAddr[index] == 'S' ) && ( srecAddr[index + 1] == '7' ) )
		{
			index += 2;

			GetHexData (&srecAddr[index], 1, (Uint8 *)&cnt);
			index += 2;

			if (cnt == 5)
			{
				GetHexAddr (&srecAddr[index], binAddr);
				index +=8;

				// Skip over the checksum
				index += 2;
				// We are at the end of the S-record, so we can exit while loop
				break;
			}
			else 
			{
				return E_FAIL;
			}
		}

		// Ignore all spaces and returns
		if( ( srecAddr[index] == ' '  ) ||
			( srecAddr[index] == '\n' ) ||
			( srecAddr[index] == ','  ) ||
			( srecAddr[index] == '\r' ) )
		{
			/**** Do nothing ****/
			index ++;
		}

	}	//end while
	*binByteCnt = totalCnt;
	return E_PASS;
}


// Simple wait loop - comes in handy.
void waitloop(Uint32 loopcnt)
{
	for (loopcnt = 0; loopcnt<1000; loopcnt++)
	{
		asm("   NOP");
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91美女片黄在线观看91美女| 亚洲综合免费观看高清完整版在线| 中文av一区二区| 欧美成人aa大片| 51精品国自产在线| 91精品国产欧美一区二区18| 欧美日韩精品综合在线| 在线精品亚洲一区二区不卡| 91九色最新地址| 欧美日韩精品系列| 日韩午夜av一区| 精品国产3级a| 中文字幕成人网| 亚洲欧美aⅴ...| 午夜精品视频在线观看| 日本女人一区二区三区| 精品在线观看免费| 丁香婷婷综合激情五月色| 99国产精品视频免费观看| **性色生活片久久毛片| 一区二区三区四区乱视频| 国产亚洲制服色| 欧美军同video69gay| 九九精品一区二区| 盗摄精品av一区二区三区| 97se亚洲国产综合在线| 欧洲人成人精品| 精品国产一区二区亚洲人成毛片| 久久精品视频免费| 亚洲黄色在线视频| 久久成人综合网| eeuss影院一区二区三区| 欧美日韩国产高清一区二区三区 | 欧美性高清videossexo| 99国产精品久久久久久久久久| 欧美在线你懂的| 精品国产乱码久久久久久久久 | 亚洲成av人影院| 国产一区二区三区四区在线观看| 99久免费精品视频在线观看| 欧美一区二区不卡视频| 国产三级精品视频| 天天综合日日夜夜精品| 国产在线视视频有精品| 欧洲一区在线观看| 国产欧美日韩在线看| 日韩高清欧美激情| av激情综合网| 久久久影视传媒| 日韩电影在线一区| 91女厕偷拍女厕偷拍高清| 精品嫩草影院久久| 亚洲综合偷拍欧美一区色| 国产精品99久久久久| 欧美日韩国产高清一区二区三区| 日本一区二区三区四区在线视频| 日日夜夜精品免费视频| 色综合网站在线| 国产精品拍天天在线| 国产美女精品一区二区三区| 欧美日韩国产在线观看| 一区二区三区在线不卡| 成人深夜福利app| 国产网站一区二区三区| 精品一区二区日韩| 91精品久久久久久久久99蜜臂 | 欧美日韩另类一区| 中文字幕一区二区三区蜜月| 国产精品亚洲一区二区三区在线| 欧美一区二区国产| 美日韩黄色大片| 日韩一区二区三| 蜜臀久久久99精品久久久久久| 在线综合视频播放| 婷婷久久综合九色综合绿巨人| 欧美中文字幕亚洲一区二区va在线 | 秋霞成人午夜伦在线观看| 欧美性色欧美a在线播放| 亚洲综合图片区| 欧美亚洲一区二区在线观看| 亚洲精品成人精品456| 一本大道av伊人久久综合| 亚洲欧美日韩一区二区三区在线观看 | 欧美日韩一区二区三区四区| 亚洲激情在线播放| 日本高清不卡在线观看| 亚洲精品视频一区| 欧美三级视频在线播放| 午夜久久久影院| 日韩色视频在线观看| 精品一区二区在线观看| 久久精品免费在线观看| caoporn国产精品| 亚洲男人天堂av网| 91麻豆精品国产91久久久资源速度| 奇米777欧美一区二区| 久久日一线二线三线suv| 国产.欧美.日韩| 一区二区三区在线免费视频| 欧美喷潮久久久xxxxx| 久久av中文字幕片| 国产精品国产自产拍高清av王其 | 欧美日韩国产三级| 美腿丝袜亚洲一区| 欧美经典一区二区三区| 欧美性受xxxx黑人xyx性爽| 免费在线观看精品| 亚洲欧美综合另类在线卡通| 日本电影亚洲天堂一区| 麻豆精品在线视频| 国产精品国产成人国产三级| 欧美日韩精品专区| 高清视频一区二区| 亚洲成人一区在线| 国产亚洲欧美日韩在线一区| 欧美专区日韩专区| 国产一区二区三区最好精华液| 亚洲欧美日韩国产一区二区三区| 91麻豆精品国产91久久久| 国产成人av在线影院| 天天操天天综合网| 中文字幕一区二区三区四区| 日韩欧美一区二区在线视频| 91女人视频在线观看| 国产老肥熟一区二区三区| 亚洲尤物视频在线| 中文字幕av一区二区三区高| 欧美一区二区大片| 欧美午夜片在线看| 91丨porny丨国产入口| 精品亚洲porn| 日韩电影在线一区| 一级特黄大欧美久久久| 欧美天天综合网| 99国产精品国产精品毛片| 国内精品久久久久影院一蜜桃| 五月激情综合色| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 日韩一区二区电影| 欧美日韩亚洲综合一区 | 99精品在线观看视频| 久久福利视频一区二区| 亚洲国产日韩精品| 亚洲综合偷拍欧美一区色| 日韩毛片高清在线播放| 国产精品女主播av| 国产欧美一区二区精品性色超碰| 日韩免费视频一区二区| 欧美一区二区在线免费观看| 精品视频在线免费看| 欧美专区日韩专区| 欧美色倩网站大全免费| 在线观看www91| 欧美伊人久久久久久久久影院| 日本丶国产丶欧美色综合| 91玉足脚交白嫩脚丫在线播放| 不卡视频在线看| 99视频精品免费视频| 色综合色狠狠综合色| 色婷婷亚洲精品| 欧美性猛交一区二区三区精品| 在线视频你懂得一区| 欧美熟乱第一页| 91精品国产aⅴ一区二区| 日韩免费电影网站| 国产亚洲成年网址在线观看| 国产丝袜美腿一区二区三区| 国产精品女同互慰在线看| 一区二区中文视频| 亚洲国产wwwccc36天堂| 奇米亚洲午夜久久精品| 国产精品中文字幕日韩精品| 国产成人精品影视| 色婷婷综合久久久中文一区二区| 色婷婷综合中文久久一本| 欧美乱妇15p| 精品日韩av一区二区| 国产精品女同一区二区三区| 一区二区三区免费观看| 日韩黄色一级片| 国产精品18久久久久久久网站| jvid福利写真一区二区三区| 欧美综合一区二区三区| 2020国产精品| 亚洲免费在线播放| 毛片av一区二区| 99视频在线精品| 日韩精品中文字幕一区二区三区| 国产日韩欧美一区二区三区乱码| 亚洲少妇30p| 韩国女主播成人在线| 色天天综合久久久久综合片| 91精品国产91久久久久久一区二区 | 精品久久一区二区三区| 国产精品久久久久毛片软件| 五月开心婷婷久久| 99热在这里有精品免费| 日韩欧美一二区| 亚洲欧洲精品一区二区三区不卡| 免费观看在线综合色|