一、时钟RTC
外部硬件时钟是用于嵌入式设备配置系统时间用的外设,大家都知道我们的电脑或者手机即使没有电了,很长一段时间过后重启它的时间还是准的。
在嵌入式设备中内置硬件时钟,这种时钟功耗非常小,用一个很小的充电电容电磁就可以了。再设备上电时,外部时钟的电池进行充电,然后再断电之后,电池对时钟进行供电,完成时间的记录校准更能。在系统重启时,就会先读取硬件时钟的时间,对系统时间进行匹配。
二、PCF8563
PCF8563是一款常用的低功耗实时时钟。可编程时钟输出,中断输出,提供低电平探测器。通过I2C总线发送所有地址和数据,总线最大速率400kbit/s。
对一个芯片的学习最好的资料肯定是他的datasheet。https://www.nxp.com/docs/en/data-sheet/PCF8563.pdf
电路图:
关注中断引脚,I2C引脚。
三、Linux配置命令
关系系统时间配置的Linux相关的两个命令
(1)date
date -s "20171107 00:00:00"的格式来配置系统时间
(2)hwclock
四、RTC的内核配置
(1)menuconfig
通过make menuconfig 来配置I2C的支持和芯片支持
配置I2C
选中
配置RTC支持
翻到最下面的取消CPU芯片的RTC驱动
(2)RTC的注册代码配置
修改内核代码:/arch/arm/macth-at91/board-sam9260ek.c
在板级init中 把
at91_add_device_i2c(null, 0));修改为
at91_add_device_i2c(mdk9260_i2c_devices, ARRAY_SIZE(mdk9260_i2c_devices));
添加device启动信息
最后用make uimage命令编译内核。