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

📄 ut5_errlog.c

📁 小型操作系统,以VC为开发环境,需要boachs调试
💻 C
字号:
/***************************************************************************
**     File name   : ut5_errlog.c
**     Author      : x.cheng
**     Create date :
**
**	   Comment:
**        util function used for log message in "jcinx.log"
**
**     Revisions:
**     $Log: ut5_errlog.c,v $
**     Revision 1.1.1.1  2005/07/27 06:53:15  x.cheng
**     add into repositories
**
**
***************************************************************************/

#include "const.h"
#include "type.h"
#include "stdarg.h"
#include "string.h"
#include "mem.h"

#include "..\..\Inc\vga.h"
#include "..\..\Inc\hd.h"
#include "..\..\Inc\kernel.h"
#include "..\..\Inc\io.h"
#include "..\..\Inc\fs.h"
#include "..\..\Inc\fat12.h"
#include "..\..\Inc\mts.h"


/**************global variable*****************/
static FILE *gpstFile=NULL;
static unsigned long gulErrlogNr=0;














//////////////////////////////////////////////////////////
// 
//
//
//////////////////////////////////////////////////////////
void vWriteErrlogStr(char *szFileName, char *szErrlog)
{
	char *szCRLF="\x0d\x0a";
	char *szSeperate="-----";
	char szBuffer[512];

	gulErrlogNr++;
	if (gpstFile==NULL)
		return;
	ksprintf(szBuffer, "%d. %s%s%s%s", gulErrlogNr, szFileName, szSeperate, szErrlog, szCRLF);
	uiFAT12WriteFile(gpstFile, szBuffer, strlen(szBuffer) );
}

//////////////////////////////////////////////////////////
// 
//
//
//////////////////////////////////////////////////////////
void vWriteErrlogHex(char *szFileName, unsigned char *pucErrlog, unsigned short uiHexLen)
{
	char *szCRLF="\x0d\x0a";
	char *szBlanks="  ";
	char szBuffer[512];

	int i, j, k;
	
	gulErrlogNr++;

	if (gpstFile==NULL)
		return;
	/*写调用本函数的文件名 */
	ksprintf(szBuffer, "%d. %s%sDUMP memory from: %p, size %d%s", gulErrlogNr, szFileName, szCRLF,
		     pucErrlog, uiHexLen, szCRLF);
	k=strlen(szBuffer);
	ksprintf(&szBuffer[k], " offset   0  1  2  3  4  5  6  7    8  9  A  B  C  D  E  F *0123456789ABCDEF*%s", szCRLF);
	uiFAT12WriteFile(gpstFile, szBuffer, strlen(szBuffer) );

	for (i=0; i<uiHexLen; i+=16) {
		//memset(szBuffer, '\0', 512); 郁闷,没什么作用,有点bug...
		ksprintf(szBuffer, "%p ", pucErrlog+i-pucErrlog);
		ksprintf(&szBuffer[9], "%02X %02X %02X %02X %02X %02X %02X %02X - %02X %02X %02X %02X %02X %02X %02X %02X ", 
				pucErrlog[i], pucErrlog[i+1], pucErrlog[i+2], pucErrlog[i+3], pucErrlog[i+4], 
				pucErrlog[i+5],	pucErrlog[i+6], pucErrlog[i+7], pucErrlog[i+8], pucErrlog[i+9], 
				pucErrlog[i+10], pucErrlog[i+11], pucErrlog[i+12], pucErrlog[i+13], 
				pucErrlog[i+14], pucErrlog[i+15]);
		k=strlen(szBuffer);
		ksprintf(&szBuffer[k], "%s", szBlanks);
		k=strlen(szBuffer);
		for (j=0; j<16; j++) {
			if ( pucErrlog[i+j] < ' ' || (pucErrlog[i+j] > 'z') )
				ksprintf(&szBuffer[k+j], "%c", '.');
			else ksprintf(&szBuffer[k+j], "%c", pucErrlog[i+j]);
		}
		/*写一行数据   */
		uiFAT12WriteFile(gpstFile, szBuffer, strlen(szBuffer) );
		uiFAT12WriteFile(gpstFile, szCRLF, strlen(szCRLF) );
	}
}









//////////////////////////////////////////////////////////
// 
//
//
//////////////////////////////////////////////////////////
void vErrlogInit()
{
	char *szBuffer="#THIS IS THE FIRST LINE OF JCINX.LOG...\x0d\x0a";

	gpstFile = pstFAT12CreateFile("jcinx.log", 0x10);
	uiFAT12WriteFile(gpstFile, szBuffer, strlen(szBuffer) );
}

⌨️ 快捷键说明

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