U-boot中的倒计时可中断操作

部署运行你感兴趣的模型镜像

在启动u-boot后,启动内核前会有个倒计时,在倒计时到时后,u-boot就是自动加载内核到内存,进去启动内核;但是在倒计时到之前通过(键盘输入)串口终端输入可以终止记时操作,进入u-boot命令行状态。

今天在阅读TI OMAP平台 的在u-boot中的充电管理代码后再次发现使用了“倒计时可中断”操作,于是摘取了实现这种“倒计时可中断”的实现代码。方便日后移植使用。

void time_record(int time)
{
	int abort = 0;
	int chargedelay = time;

	printf("Hit any key to stop : %2d ", chargedelay);

	if (tstc()) {	/* we got a key press	*/
		(void) getc();  /* consume input	*/
	}

	while ((chargedelay > 0) && (!abort)) {
		int i;

		--chargedelay;
		/* delay 100 * 10ms */
		for (i=0; !abort && i<100; ++i) {
			if (tstc()) {	/* we got a key press	*/
				abort  = 1;	/* don't auto boot	*/
				chargedelay = 0;	/* no more delay	*/
				(void) getc();  /* consume input	*/
				break;
			}
			udelay (10000);
		}
		printf ("\b\b\b%2d ", chargedelay);
	}
	if (!abort)
	{
		/*倒计时被中断,在下面执行相应操作*/
	}
	else
	{
		/*倒计时到时,在下面执行相应操作*/
	}
}

参数time单位为秒。

tstc():是标准u-boot控制台函数,用于判断是否有输入。

getc():是标准u-boot控制台函数,用于读取输入。

printf("\b\b\b%2d ",chargedelay):是格式化控制台显示chargedelay,即删除chargedelay原显示,重新显示,

您可能感兴趣的与本文相关的镜像

GPT-SoVITS

GPT-SoVITS

AI应用

GPT-SoVITS 是一个开源的文本到语音(TTS)和语音转换模型,它结合了 GPT 的生成能力和 SoVITS 的语音转换技术。该项目以其强大的声音克隆能力而闻名,仅需少量语音样本(如5秒)即可实现高质量的即时语音合成,也可通过更长的音频(如1分钟)进行微调以获得更逼真的效果

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值