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

📄 demo_app.c

📁 umon bootloader source code, support mips cpu.
💻 C
字号:
/* demo_app.c:
 * This file is a simple example of an application that could be run
 * on top of the monitor.
 *
 * start():
 * The start() function depends on the setting of MONCOMPTR in config.h.
 * It demonstrates the use of monConnect and the first mon_XXX function
 * typically called by an application, mon_getargv().
 *
 * main():
 * The main() function demonstrates argument processing (thanks to
 * the call to mon_getargv() in start()), environment variables and
 * a simple use of TFS to dump the content of an ASCII file.
 */

#include "config.h"
#include "monlib.h"
#include "tfs.h"
#include "stddefs.h"

int
main(int argc,char *argv[])
{
	int		i, tfd;
	char	line[80], *fname;

	/* If argument count is greater than one, then dump out the
	 * set of CLI arguments...
	 */
	if (argc > 1) {
		mon_printf("Argument list...\n");
		for(i=0;i<argc;i++)
			mon_printf("  arg[%d]: %s\n",i,argv[i]);
	}

	/* If the shell variable "USE_THIS_FILE" exists, then use the
	 * content of that shell variable as a filename; else use "monrc"...
	 */
	fname = mon_getenv("USE_THIS_FILE");
	if (!fname)
		fname = "monrc";

	/* If the file exists, the assume it is ASCII and dump it
	 * line by line...
	 */
	if (mon_tfsstat(fname)) {
		mon_printf("Dumping content of '%s'...\n",fname);

		tfd = mon_tfsopen(fname,TFS_RDONLY,0);
		if (tfd >= 0) {
			while(mon_tfsgetline(tfd,line,sizeof(line)))
				mon_printf("%s",line);
			mon_tfsclose(tfd,0);
		}
		else {
			mon_printf("TFS error: %s\n",
				(char *)mon_tfsctrl(TFS_ERRMSG,tfd,0));
		}
	}
	return(0);
}

void
__eabi(void)
{
}

int
start(void)
{
	char	**argv;
	int		argc;

	/* Connect the application to the monitor.  This must be done
	 * prior to the application making any other attempts to use the
	 * "mon_" functions provided by the monitor.
	 */
	monConnect((int(*)())(*(unsigned long *)MONCOMPTR),(void *)0,(void *)0);

	/* Extract argc/argv from structure and call main():
	 */
	mon_getargv(&argc,&argv);

	/* Call main, then return to monitor.
	 */
	return(main(argc,argv));
}

⌨️ 快捷键说明

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