RTC
1 功能概述
实时时钟(Real -Time Clock,RTC)是嵌入式系统中记录时间的硬件模块,在CP侧该模块提供注册闹钟和读取RTC时间的功能,bk7258只有一个RTC硬件模块(id 为 0)。
2 代码路径
- demo路径:
components\bk_cli\cli_aon_rtc.c
- 驱动源码路径:
cp\middleware\driver\rtc\aon_rtc_driver_64bit.c
3 cli命令简介
demo运行依赖的宏配置:
NAME
Description
File
value
CONFIG_AON_RTC
support rtc
cp\middleware\soc\bk7258\bk7258.defconfig| y
demo支持的命令如下表:
Command
Param
Description
aon_rtc_driver init
none
init rtc driver control memory
aon_rtc_driver deinit
none
free all resource related to rtc
aon_rtc_get_time {id}
id: rtc id number
get rtc time
aon_rtc_register {id} {name} {period_tick} {period_cnt}, {callback}
id: rtc id number
register Alarm
name: Alarm name
period_tick: rtc tick count
period_cnt: Alarm Repeat Count
callback: register Callback Function
aon_rtc_unregister {id} {name}
id: rtc id number
unregister Alarm
name: Alarm name
4 演示介绍
demo1执行的步骤如下:
aon_rtc_get_time 0
[16:37:26.111]发→◇aon_rtc_get_time 0 [16:37:26.116]收←◆aon_rtc_get_time 0 os:I(10745):create shell_handle, tcb=28086f60, stack=[28085338-28086f38:7168], prio=5 $cli:I(10746):id=0, tick_h=0 tick_l=10747 msaon_rtc_register 0 alarm1 64000 5//注册name为alarm1的闹钟,2s触发一次,执行五次(64000/32000(RTC时钟源))
[16:42:37.323]收←◆cli:I(8140):id=0, name=alarm1 alarmprm [16:42:39.323]收←◆cli:I(10140):id=0, name=alarm1 alarmprm [16:42:41.323]收←◆cli:I(12140):id=0, name=alarm1 alarmprm [16:42:43.323]收←◆cli:I(14140):id=0, name=alarm1 alarmprm [16:42:45.323]收←◆cli:I(16141):id=0, name=alarm1 alarmprm