U-boot中的倒计时可中断操作
来源:互联网 发布:iphone去广告软件 编辑:程序博客网 时间:2024/06/10 17:34
在启动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原显示,重新显示,
- U-boot中的倒计时可中断操作
- u-boot关闭中断
- u-boot中的makefile
- u-boot中的命令
- U-Boot中的地址
- U-boot 调试中的command
- U-Boot中的地址问题
- u-boot中的GOT段
- U-Boot中的filesize环境变量
- 增加u-boot中的命令
- u-boot中的bdinfo命令
- u-boot中的usb命令
- u-boot中的version命令
- u-boot中的FAT命令
- u-boot中的date命令
- U-BOOT中的Makefile分析
- u-boot中的FAT命令
- U-Boot中的Splash Screen
- 转 -- Oracle 11gR2 RAC 常用维护操作 说明
- 你所不知道的路由器:已成新入口!
- ubuntu 10.04下的配置tftp服务器
- wordpress 简单翻译方法
- 比较严谨的判断字符串为空
- U-boot中的倒计时可中断操作
- Linux 下编译、安装、配置 QT
- (6)Http协议之状态码详解----6
- php 两种 缩放图片的函数,为图片添加水印
- 创建或者查找GL账户(code_combination_id)
- jdk7 AIO 入门
- (7)Http协议之Cookie详解---7
- [转载]VC项目配置基础
- 广州传智播客端午节放假通知