1. 使能date命令
由于date命令是读取RTC内的时间,所以必须使用相关SOC自带rtc的驱动,或者板上的rtc芯片。具体情况根据板子来决定 。当这两都兼备后,就可以使能date命令了。
添加定义:CONFIG_CMD_DATE:
#define CONFIG_CMD_DATE
源代码位于common/cmd_date.c
2. date命令的使用
2.1 date命令不带参数,即为读取rtc时间,并显示成我们可读的格式。
2.2 date命令带参数,用于设置rtc的时间。
2.2.1 设置rtc时间为: 8月09号, 17点30分
date 08091730
3. 源代码分析
do_date
|--> 定义一个rtc_time <include/rtc.h>的结构体
|--> 设置正确的i2c总线。(对于使用片上rtc,此处始终返回为0)
|--> 判断date命令的参数个数。
|--> 如果是一个,则是显示时间,调用rtc_get()。如果读取失败,则显示错误信息后退出。
|--> 如果是两个,则进一步判断。
|--> 如果是reset,则输出“Reset RTC..."后,调用rtc_reset函数。
|--> 如果不是reset,首先调用ret_get函数获取时间,如果正确,则通过mk_date将date命令的参数转换为rtc_time结构体。最后调用rtc_set函数。
由上面的代码分析发现,在u-boot中,要想实现rtc的驱动,只需实现rtc_get, rtc_reset, rtc_set函数即可。