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

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

?? etc.cpp

?? 三星公司S3c2443的測試程序源碼
?? CPP
字號:
/*----------------------------------------------------------------------
 *
 * Filename:
 * - etc.c
 *
 * Descriptions
 * - Miscellaneout functions
 *
 * History
 * -
 *
 * Copyright (c) 2003 SAMSUNG Electronics.
 *
 *----------------------------------------------------------------------
 */
#include <stdio.h>
#include <string.h>
#include "system.h"
#include "console.h"
#include "Def.h"

#define IMAGE_MAXSIZE 1600


/*-----------------------------------------------------------
 * Copy
 */
void Copy32(U32 sa, U32 da, U32 words)
{
	for (U32 i=0; i<words; i++)
		*(U32 *)(da+i) = *(U32 *)(sa+i);
}

void Copy(U32* sa, U32* da, U32 num)
{
	for (U32 i=0; i<num; i++)
		*(da+i) = *(sa+i);
}


bool Compare32(U32 a0, U32 a1, U32 words)
{
	U32* pD0 = (U32 *)a0;
	U32* pD1 = (U32 *)a1;

	bool ret = true;
	
	for (int i=0; i<words; i++)
	{
		if (*pD0 != *pD1) {
			ret = false;
			//gh0522.cha printf(" %08x=%08x : %08x=%08x\n", pD0, *pD0, pD1, *pD1);
		}
		pD0++;
		pD1++;
	}

	return ret;
}

bool Compare(U32* a, U32* b, U32 num)
{
	bool ret = true;
	
	for (U32 i=0; i<num; i++)
		if (*(a+i) != *(b+i)) 
			ret = false, printf(" %08x=%08x : %08x=%08x\n", a+i, *(a+i), b+i, *(b+i));

	return ret;
}

bool Compare(U16* a, U16* b, U32 num)
{
	bool ret = true;
	
	for (U32 i=0; i<num; i++)
		if (*(a+i) != *(b+i)) 
			ret = false, printf(" %08x=%04x : %08x=%04x\n", a+i, *(a+i), b+i, *(b+i));

	return ret;
}

bool Compare(U8* a, U8* b, U32 num)
{
	bool ret = true;
	
	for (U32 i=0; i<num; i++)
		if (*(a+i) != *(b+i)) 
			ret = false, printf(" %08x=%02x : %08x=%02x\n", a+i, *(a+i), b+i, *(b+i));

	return ret;
}


void CopyUp(U32 uSrcAddr, U32 uDestAddr, U32 uBytes)
{

	memcpy((void *)uDestAddr, (void *)uSrcAddr, uBytes);
}

void CopyDown(U32 uSrcAddr, U32 uDestAddr, U32 uBytes)
{
#if 1
	memcpy((void *)uDestAddr, (void *)uSrcAddr, uBytes);
#elif 0
	/* It is used in the case the transfer is thru AHB-AHB bridges */
	U32 i;
	for (i=0; i<(uBytes+4); i+=4)
	{
		*(U32 *)(uDestAddr+i) = *(U32 *)(uSrcAddr+i);
	}
#else
	DMA Dma;
	Dma.MoveMem(uSrcAddr, uDestAddr, uBytes);
#endif
}

U32 LoadFile(const char* fileName, U32 uDstAddr, bool bAsk)
{
	FILE* fp;
	U32 read, uFileSize;
	int sel;
#if 0
	fp = fopen(fileName, "rb");
	Assert(fp);
	fseek(fp, 0, SEEK_END);
	uFileSize = ftell(fp);
	rewind(fp);

	if (bAsk)
	{
		printf("Enter 1 if the file is to be loaded !\n");
		sel = GetInt();
	}
	else
		sel = 1;
	
	if (sel == 1)
	{
		read = fread((void *)uDstAddr, sizeof(unsigned char), uFileSize, fp);
		Assert(read==uFileSize);
	}
	
	fclose(fp);
	
#endif
	return uFileSize;
}

void LoadFile(const char* fileName, U32 uDstAddr, U32& uFileSize, bool bAsk)
{
#if 0
	FILE* fp;
	U32 read;
	int sel;

	fp = fopen(fileName, "rb");
	Assert(fp);
	fseek(fp, 0, SEEK_END);
	uFileSize = ftell(fp);
    rewind(fp);

	if (bAsk)
	{
		printf("Enter 1 if the file is to be loaded !\n");
		sel = GetInt();
	}
	else
		sel = 1;
	
	if (sel == 1)
	{
		read = fread((void *)uDstAddr, sizeof(unsigned char), uFileSize, fp);
		Assert(read==uFileSize);
	}
	
	fclose(fp);
#endif	
}

void SaveToFile(const char* fileName, U32 fileSize, U32 uSrcAddr)
{
#if 0
	FILE* fp = fopen(fileName, "wb");
	Assert(fp);
	
	U32 written = fwrite((void *)uSrcAddr, sizeof(unsigned char), fileSize, fp);
	Assert(written == fileSize);

	fclose(fp);
#endif	
}

// 24bpp BMP -> 16bpp RGB
void ConvertBmpToRgb16bpp(U32 fromAddr, U32 toAddr, U32 xSize, U32 ySize)
{
	U32 i,x,y;
	U16 *lcdFramePtr;
	U16 *tempPtr;
	U16 temp[IMAGE_MAXSIZE];
	U32 tempBuffer = fromAddr + 0x400000; // up to 1600x1200
	U8 b,g,r;
	
	U8 *srcPtr=(U8 *)(fromAddr+54);
	lcdFramePtr=(U16 *)(toAddr);

	for(y=0;y<ySize;y++) {
		for(x=0;x<xSize*3;x++) {
			b=*srcPtr++;
			g=*srcPtr++;
			r=*srcPtr++;

			*lcdFramePtr++=(r>>3)<<11|(g>>2)<<5|(b>>3)<<0;
		}
	}

	lcdFramePtr=(U16 *)(toAddr+xSize*ySize*2-2);
	tempPtr=(U16 *)(tempBuffer);
	for(y=0;y<xSize*ySize;y++) {
		*tempPtr++=*lcdFramePtr--;
	}

	lcdFramePtr=(U16 *)(toAddr);
	tempPtr=(U16 *)(tempBuffer);
	for(y=0;y<ySize;y++) {
		for(x=0;x<xSize;x++) {
			temp[(xSize-1)-x]=*tempPtr++;
		}
		if(x==xSize) {
			for(i=0;i<xSize;i++)
				*lcdFramePtr++=temp[i];
		}
	}
}

// 24bpp BMP -> 24bpp RGB
void ConvertBmpToRgb24bpp(U32 fromAddr, U32 toAddr, U32 xSize, U32 ySize)
{
	U32 i,x,y;
	U32 *lcdFramePtr,*tempPtr;
	U32 temp[IMAGE_MAXSIZE];
	U32 tempBuffer = fromAddr + 0x760000; // up to 1600x1200
    U8 b,g,r;
	
	U8 *srcPtr=(U8 *)(fromAddr+54);
	lcdFramePtr=(U32 *)(toAddr);
   	for(y=0;y<xSize*ySize;y++) {
    	b=*srcPtr++;
    	g=*srcPtr++;
	    r=*srcPtr++;

	    *lcdFramePtr++=(r<<16)|(g<<8)|(b<<0);
	}

	lcdFramePtr=(U32 *)(toAddr+xSize*ySize*4-4);
	tempPtr=(U32 *)(tempBuffer);
    for(y=0;y<xSize*ySize;y++) {
	    *tempPtr++=*lcdFramePtr--;
    }

	lcdFramePtr=(U32 *)(toAddr);
	tempPtr=(U32 *)(tempBuffer);
    for(y=0;y<ySize;y++) {
	    for(x=0;x<xSize;x++) {
			temp[(xSize-1)-x]=*tempPtr++;
	    }
	    if(x==xSize) {	    	
		   	for(i=0;i<xSize;i++)
		    	*lcdFramePtr++=temp[i];
		}
	}	

}

// Bmp 24bpp -> Rgb 16 or 24bpp
void ConvertBmpToRgb(U32 fromAddr, U32 toAddr, U32 xSize, U32 ySize, U32 bpp)
{
	if (bpp == 16) 
	{		
		ConvertBmpToRgb16bpp(fromAddr, toAddr, xSize, ySize);
	} 
	else if (bpp == 24) 
	{
		ConvertBmpToRgb24bpp(fromAddr, toAddr, xSize, ySize);
	} 
	else 
	{
		printf("bpp should be 16 or 24 at ConvertBmpToRgb()\n");
	}
}

/*-----------------------------------------------------------
 * MemDump
 */
void Dump32(U32 addr, U32 words)
{
	int i, j;
	U32 *pMem;

	pMem = (U32 *)(addr/4*4);

	printf("\n");
	for(i=0; i<words; )
	{
		printf(" %3d: ", i);

		for(j=0; j<8; j++)
			printf("%08x ", *pMem++),
			i++;
		printf("\n");
	}
}

void Dump16(U32 addr, U32 hwords)
{
	int i, j;
	U16 *pMem;

	pMem = (U16 *)(addr/2*2);

	printf("\n");
	for(i=0; i<hwords; )
	{
		printf(" %3d: ", i);

		for(j=0; j<16; j++)
			printf("%04x ", *pMem++),
			i++;
		printf("\n");
	}
}

void Dump8(U32 addr, U32 bytes)
{
	int i, j;
	U8 *pMem;

	pMem = (U8 *)addr;

	printf("\n");
	for(i=0; i<bytes; )
	{
		printf(" %3d: ", i);

		for(j=0; j<32; j++)
			printf("%02x ", *pMem++),
			i++;
		printf("\n");
	}
}

/*-----------------------------------------------------------
 * Delay
 *  - Delay for 100us step.
 *
 */
#if 0
#define CNT_FOR_TENTH_MSEC 820 /* FCLK = 100MHz */
#else
#define CNT_FOR_TENTH_MSEC 2500 //413 /* HCLKin:HCLKout = 1:1, HCLK = 25MHz */
#endif

void Delay(U32 steps)
{
	int i;

	for(; steps>0; steps--)
		for(i=0; i<CNT_FOR_TENTH_MSEC; i++);
}

static void delay2(U32 steps, U32 cntFor100us)
{
	int i;

	for(; steps>0; steps--)
		for(i=0; i<cntFor100us; i++);
}

void TuneDelay(void)
{
	U32 i, r, j, sel, cntFor100us;
	int val;

	cntFor100us = CNT_FOR_TENTH_MSEC;

	while(1)
	{

		printf(" 0. Exit\n");
		printf(" 1. Enter the count value.\n");
		printf(" 2. Count in every one sec.\n");
		printf(" 3. Count in every one sec printflay the value of the timer.\n");
		printf(" Which one ? ");

		sel = GetIntNum();

		if (sel == 0)
			break;
		else if (sel == 1)
		{
			printf("  Current count value for 100us is %d. Enter the new value: ", 
cntFor100us);
			val = GetIntNum();
			if (val != -1)
				cntFor100us = val;
		}
		else if (sel == 2)
		{
			for (i=0; i<60; i++)
			{
				printf("%d ", i);

				for (j=0; j<100; j++)
					delay2(100, cntFor100us);

				if (getchar()!= 0)
					break;
			}
		}
#if 0		
		else if (sel == 3)
		{
			for (i=0; i<60; i++)
			{
				printf("%d ", i);

				TimerStart();

				for (j=0; j<100; j++)
					delay2(100, cntFor100us);

				printf("(%d) ",TimerRead());

				if (Uartgetchar()() != 0)
					break;
			}
		}
#endif		
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久亚洲精华国产精华液| 欧美日韩国产一区| 国产精品美女久久久久久久| 国产成人午夜精品影院观看视频| 久久精品一区二区三区av| 国产91富婆露脸刺激对白| 亚洲国产精品av| 91亚洲国产成人精品一区二区三 | 日韩美女视频在线| 国产又粗又猛又爽又黄91精品| 久久综合久久综合久久综合| 大桥未久av一区二区三区中文| 亚洲图片你懂的| 欧美肥妇bbw| 国产精一区二区三区| 自拍偷拍亚洲激情| 欧美男人的天堂一二区| 精品一区二区三区香蕉蜜桃| 中文字幕欧美国产| 欧洲精品一区二区三区在线观看| 日韩电影一区二区三区四区| 久久久久久久久久久电影| 91影院在线观看| 免费成人在线观看视频| 国产精品网站一区| 欧美老女人在线| 成人aaaa免费全部观看| 激情文学综合插| 国产精品超碰97尤物18| 成人av网在线| 夜色激情一区二区| 欧美精品一区二区久久久| 色综合久久综合网欧美综合网| 免费观看一级欧美片| 国产精品伦理一区二区| 91精品黄色片免费大全| 不卡欧美aaaaa| 麻豆国产精品一区二区三区 | 亚洲国产精品二十页| 欧美日韩一区二区三区在线看| 国产呦萝稀缺另类资源| 亚洲第一福利一区| 亚洲欧洲日本在线| 久久综合九色综合欧美98| 欧美三级在线播放| 99久久精品99国产精品| 国产麻豆成人精品| 青青青爽久久午夜综合久久午夜| 亚洲欧洲av另类| 久久综合九色综合欧美亚洲| 欧美日韩美少妇| 97久久精品人人做人人爽50路| 韩国av一区二区| 青青草国产精品亚洲专区无| 一区二区三国产精华液| 国产精品久久99| 日本一区二区三区久久久久久久久不| 91精品婷婷国产综合久久性色| 91在线视频免费91| 成人一级片在线观看| 国产精品自产自拍| 精品亚洲porn| 九九**精品视频免费播放| 偷拍一区二区三区| 亚洲国产欧美另类丝袜| 一区二区三区精品在线观看| 亚洲人成电影网站色mp4| 国产精品激情偷乱一区二区∴| 国产日产欧美一区| 久久日韩粉嫩一区二区三区| 欧美美女激情18p| 欧美日韩另类一区| 欧美人狂配大交3d怪物一区| 在线观看亚洲专区| 在线观看国产日韩| 在线精品亚洲一区二区不卡| 91浏览器打开| 91激情在线视频| 欧美性一二三区| 欧美日韩国产免费一区二区| 欧美日韩亚洲综合在线| 欧美日韩免费视频| 666欧美在线视频| 欧美精品免费视频| 日韩美一区二区三区| 精品国产一区二区三区忘忧草| 欧美一级生活片| 日韩欧美一区电影| 久久品道一品道久久精品| 国产欧美日韩久久| 亚洲丝袜自拍清纯另类| 亚洲影视资源网| 免费欧美在线视频| 国产在线视视频有精品| 不卡的av在线| 欧美日韩日日骚| 欧美不卡在线视频| 国产精品久久久爽爽爽麻豆色哟哟| 国产精品日韩精品欧美在线| 一区二区三区欧美日| 天天亚洲美女在线视频| 久久99国产乱子伦精品免费| 国产jizzjizz一区二区| 99r精品视频| 欧美一区二区三区性视频| 久久久91精品国产一区二区精品 | 中文在线资源观看网站视频免费不卡| 中文字幕欧美日本乱码一线二线| 成人免费在线视频| 视频一区二区不卡| 国产69精品久久777的优势| 色哟哟亚洲精品| 精品久久国产字幕高潮| 中文字幕在线不卡一区| 亚洲成人综合视频| 国产成人免费网站| 欧美少妇性性性| 久久久久久久久97黄色工厂| 亚洲精品乱码久久久久| 国产在线播放一区| 色噜噜狠狠色综合欧洲selulu| 欧美成人猛片aaaaaaa| 亚洲精品菠萝久久久久久久| 久久精品国产一区二区三| 91丝袜美腿高跟国产极品老师 | 国产美女精品一区二区三区| 91视频.com| 精品国产3级a| 一区二区三区在线观看欧美 | 亚洲国产精品精华液2区45| 亚洲午夜精品17c| 国产成人啪免费观看软件| 欧美疯狂做受xxxx富婆| 亚洲欧洲日产国码二区| 国产伦精品一区二区三区在线观看| 精品视频一区三区九区| 国产精品美女视频| 九色porny丨国产精品| 精品视频1区2区| 中文字幕亚洲综合久久菠萝蜜| 久久91精品国产91久久小草| 欧美日韩亚洲国产综合| 亚洲欧美偷拍三级| 丁香桃色午夜亚洲一区二区三区| 777奇米四色成人影色区| 亚洲人成精品久久久久| 国产69精品一区二区亚洲孕妇| 欧美大白屁股肥臀xxxxxx| 亚洲一区二区三区不卡国产欧美 | 色婷婷综合久久久| 国产女同性恋一区二区| 精品亚洲aⅴ乱码一区二区三区| 在线不卡免费欧美| 亚洲综合男人的天堂| hitomi一区二区三区精品| 久久久不卡网国产精品一区| 精品中文字幕一区二区| 日韩午夜激情免费电影| 亚洲图片欧美综合| 91高清视频免费看| 亚洲免费色视频| 91婷婷韩国欧美一区二区| 亚洲色欲色欲www| 不卡一区二区在线| 日韩毛片高清在线播放| 99re在线精品| 亚洲美女免费视频| 色94色欧美sute亚洲13| 一区二区三区在线免费视频| 91久久奴性调教| 香蕉加勒比综合久久| 欧美一区日本一区韩国一区| 日本一不卡视频| 337p粉嫩大胆色噜噜噜噜亚洲| 久久成人综合网| 久久免费精品国产久精品久久久久 | 欧洲一区二区三区免费视频| 一区二区三区中文在线| 欧美性感一区二区三区| 亚洲成人免费电影| 日韩一区二区精品| 国产精品综合在线视频| 中文字幕一区二| 色8久久精品久久久久久蜜| 亚洲成人综合网站| 欧美成人video| 成人福利视频网站| 亚洲欧美另类久久久精品2019 | 欧美三级三级三级爽爽爽| 日韩电影一区二区三区四区| 日韩欧美中文一区| 成人av综合一区| 亚洲午夜精品久久久久久久久| 欧美福利电影网| 国产成人免费网站| 亚洲一区二区欧美| 精品久久国产老人久久综合| 波多野结衣精品在线| 婷婷久久综合九色综合伊人色| 精品国产乱子伦一区|