mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-03 21:48:15 +00:00 
			
		
		
		
	At 9600 baud or less a 1 ms wait is too short to detect the end of an escape sequence. Increase the wait duration to 10 ms which will work down to 1200 baud. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
		
			
				
	
	
		
			53 lines
		
	
	
		
			993 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			993 B
		
	
	
	
		
			C
		
	
	
	
	
	
// SPDX-License-Identifier: GPL-2.0+
 | 
						|
/*
 | 
						|
 * The 'conitrace' command prints the codes received from the console input as
 | 
						|
 * hexadecimal numbers.
 | 
						|
 *
 | 
						|
 * Copyright (c) 2018, Heinrich Schuchardt <xypron.glpk@gmx.de>
 | 
						|
 */
 | 
						|
#include <common.h>
 | 
						|
#include <command.h>
 | 
						|
#include <linux/delay.h>
 | 
						|
 | 
						|
static int do_conitrace(struct cmd_tbl *cmdtp, int flag, int argc,
 | 
						|
			char *const argv[])
 | 
						|
{
 | 
						|
	bool first = true;
 | 
						|
 | 
						|
	printf("Waiting for your input\n");
 | 
						|
	printf("To terminate type 'x'\n");
 | 
						|
 | 
						|
	/* Empty input buffer */
 | 
						|
	while (tstc())
 | 
						|
		getchar();
 | 
						|
 | 
						|
	for (;;) {
 | 
						|
		int c = getchar();
 | 
						|
 | 
						|
		if (first && (c == 'x' || c == 'X'))
 | 
						|
			break;
 | 
						|
 | 
						|
		printf("%02x ", c);
 | 
						|
		first = false;
 | 
						|
 | 
						|
		/* 10 ms delay - serves to detect separate keystrokes */
 | 
						|
		udelay(10000);
 | 
						|
		if (!tstc()) {
 | 
						|
			printf("\n");
 | 
						|
			first = true;
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	return CMD_RET_SUCCESS;
 | 
						|
}
 | 
						|
 | 
						|
#ifdef CONFIG_SYS_LONGHELP
 | 
						|
static char conitrace_help_text[] = "";
 | 
						|
#endif
 | 
						|
 | 
						|
U_BOOT_CMD_COMPLETE(
 | 
						|
	conitrace, 2, 0, do_conitrace,
 | 
						|
	"trace console input",
 | 
						|
	conitrace_help_text, NULL
 | 
						|
);
 |