⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 util.c

📁 嵌入式linux(arm9)的平台下
💻 C
字号:
#include "util.h"
#include "example.h"

static int progress;
static int dots;
static int oldMode;

void stringCopy(const char* source, char* dest)
{
	int i;
	for(i = 0; source[i] != 0; ++i)
	{
		dest[i] = source[i];
	}

	dest[i] = 0;
}

void memCopy(const void* src, void* dest, int bytes)
{
	int i;
	const char* charSrc = (char*) src;
	char* charDest = (char*) dest;

	for(i = 0; i < bytes; ++i)
		charDest[i] = charSrc[i];
}

void memFill(void* dest, int bytes, char value)
{
	int i;
	char* charDest = (char*) dest;
	
	for(i = 0; i < bytes; ++i)
		charDest[i] = value;
}

void memDisp(void* src, int bytes)
{
	char* charSrc = (char*) src;
	int i;
	for(i = 0; i < bytes; ++i)
	{
		if(i%16 == 0)
			printf("\n");

		if((charSrc[i] & 0x0FF) <= 0x0F)
			printf("0");

		printf("%X ", charSrc[i] & 0x0FF);
	}
}

int stringLength(const char* string)
{
	int i;
	for(i = 0; string[i] != 0; ++i);
	return i;
}

int stringToInt(const char* string)
{
	int value = 0;
	int i;
	for(i = 0; string[i] != 0; ++i)
	{
		value = value << 4;
		value |= charToInt(string[i]);
	}
	return value;
}

int charToInt(const char ch)
{
	switch (ch)
	{
		case '0':
		case '1':
		case '2':
		case '3':
		case '4':
		case '5':
		case '6':
		case '7':
		case '8':
		case '9':
			return (ch - '0');
			break;
		case 'A':
		case 'a':
			return 10;
			break;
		case 'B':
		case 'b':
			return 11;
			break;
		case 'C':
		case 'c':
			return 12;
			break;
		case 'D':
		case 'd':
			return 13;
			break;
		case 'E':
		case 'e':
			return 14;
			break;
		case 'F':
		case 'f':
			return 15;
			break;
		default:
			return 0;
	}
}

void showProgress(int show)
{	
	if(show)
	{
		progress = 1;
		dots = 0;
	}
	else
		progress = 0;
}

void updateProgress(int bytesRead)
{
	if(progress)
	{
		progress += bytesRead;
		if(progress >= STATUS_DOT_INTERVAL)
		{
			#ifdef LCD_STATUS
				lcdUpdateStatus();
			#endif
			printf(".");
			++dots;
			progress = 1;

			if(dots >= STATUS_LINE_INTERVAL)
			{
				printf("\n");
				dots = 0;
			}
		}
	}
}

/*int setPageMode(int on)
{
	uint32* configReg = (uint32*) MEM_STCFG0_ADDRESS;
	int oldMode = (*configReg) & MEM_STCFG_PM_BIT ? 1 : 0;	//read page mode bit

	if(oldMode != on)
		if(on)
			(*configReg) |=  MEM_STCFG_PM_BIT;		//turn page mode on
		else
			(*configReg) &= ~MEM_STCFG_PM_BIT;		//trun page mode off

	return oldMode;
}*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -