Linux的RTC子系统简析

一、概述

  1. RTC用作提供实时时间,有内部RTC和外RTC,外部RTC的供电可以通过VCC接二极管和纽扣电池接GND供电
  2. 外部I2C可以通过I2C接口控制RTC芯片
  3. datehwclock

二、驱动框架

  1. 用户层,包括APP、sysfs以及proc文件系统
  2. 设备驱动层,包括RTC设备驱动和RTC核心层
  3. 硬件层

三、RX8010的驱动程序

  1. compatibe属性为epson,rx8010,通过宏module_i2c_driver实现了入口函数和出口函数,入口函数i2c_add_driver注册i2c_driver、出口函数i2c_del_driver注销i2c_driver
  2. probe函数中,对RTC设备进行初始化,并通过devm_rtc_device_register注册rtc_device,并关联了一个rtc_ops
  3. rtc_device_register函数中分配一个rtc_device,填充结构体,并注册了一个字符设备,最后将RTC设备添加到proc文件系统中
  4. rtc_class_ops应该实现read_timeset_timeioctl

四、RTC应用编程

  1. ioctl的RTC_RD_TIME_IOR,第三个参数是rtc_time的结构体指针
  2. ioctl的RTC_SET_TIME,第三个参数是rtc_time的结构体指针

五、总结

posted @ 2025-12-22 23:04  gramming  阅读(3)  评论(0)    收藏  举报