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

📄 printd.c

📁 mips架构的bootloader,99左右的版本 但源代码现在没人更新了
💻 C
字号:
/************************************************************* * File: bsps/printd.c * Purpose: diagnostics printer * Author: Phil Bunce (pjb@carmel.com) * Revision History: *	980310	Created *	980506	Changed logfile to serialice1.log *	981204	Really changed logfile to serialice1.log */#include <varargs.h>#include <stdio.h>#include <malloc.h>#include "iceif.h"#define LOGFILE "serialice1.log"extern char vers[];FILE *diagfp; /* diagnostics file pointer */int diaglevel;int vfprintf(FILE *fp,char *fmt,va_list ap);int vsprintf(char *dst,char *fmt,va_list ap);void printMsg(char *msg);/**************************************************************/void printDiag(level,fmt,va_alist)int level;char *fmt;va_dcl{va_list ap;char tmp[200];if (diaglevel < level) return;#ifdef PMCCif (!diagfp) diagfp = stdout;#elseif (!diagfp) {	diagfp = fopen(LOGFILE,"w");	if (!diagfp) return;	}#endif#ifdef PMCCif (level == 0) fprintf(diagfp,"ERROR: ");va_start(ap);vfprintf(diagfp,fmt,ap);va_end(ap);fflush(diagfp);#elseif (level == 0) {	va_start(ap);	vsprintf(tmp,fmt,ap);	va_end(ap);	printMsg(tmp);	}else {	va_start(ap);	vfprintf(diagfp,fmt,ap);	va_end(ap);	fflush(diagfp);	}#endif}/**************************************************************/void diagCntrl(char *str){int n,level;char devname[100];if (diagfp && diagfp != stdout) fclose(diagfp);diagfp = 0;n = sscanf(str,"%d:%s",&level,devname);diaglevel = level;switch (n) {        case 1 : /* verbose level only */		if (level == 0) return;#ifdef PMCC                diagfp = stdout;#else		diagfp = fopen(LOGFILE,"w");#if  0 /* defined(EJTAG) causes a crash */		if (!EjtagControl(EJTAG_DIAG,diaglevel,diagfp)) {			printDiag(0,"EjtagControl: DIAG: failed.\n");			}#endif#endif                break;        case 2 : /* verbose level + device name */                diagfp = fopen(devname,"w");                if (diagfp) break;                printDiag(0,"can't open %s\n",devname);                break;        default:                printDiag(0,"diagCntrl: %s: bad value\n",str);        }printDiag(1,"version: %s\n",vers);}#ifdef PMCC/* vfprintf calls free. We don't have an IMON entry for free. So I stub it *//* vfprintf will only call malloc and free if the string is > 99 chars */void free(void *adr){}#endif

⌨️ 快捷键说明

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