码迷,mamicode.com
首页 > 其他好文 > 详细

rtems 4.11 RTC驱动 (arm, beagle)

时间:2016-08-03 22:15:02      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:

RTC驱动的框架在 c/src/lib/libbsp/shared/tod.c 中,大部分功能都已经实现了,入口函数是 rtc_initialize(),BSP要实现的东西非常少。

beagle的实现在 c/src/lib/libbsp/arm/beagle/rtc.c中,提供一个 rtc_tbl RTC_Table[] 数组,数组的大小存储在 RTC_Count 全局变量中,每一个RTC_Table元素就是一个可能的RTC芯片,rtc_initialize()时,会调用每个RTC_Table元素的probe函数,第一个返回true的元素就是系统的rtc设备,这种实现方式是为了方便兼容产品的不同型号的主板(例如RTC芯片停产,换了另一个RTC芯片)。

RTC_Table元素(RTC设备)

RTC设备必须 rtc_fns 结构体中的3个函数:

  • 初始化:打开RTC设备时钟,设置总线访问方式等等
  • 读:从RTC设备中读取时间
  • 写:把时间设备到RTC设备中

rtc_initialize调用

cpukit/libcsupport/include/rtc.h 中定义了 RTC_DRIVER_TABLE_ENTRY,如果最终应用需要rtc,则可以通过配置,在 cpukit/sapi/include/confdefs.h 中包含到 _IO_Driver_address_table 中去

rtems 4.11 RTC驱动 (arm, beagle)

标签:

原文地址:http://www.cnblogs.com/windtail/p/5734463.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!