• rtems 4.11 RTC驱动 (arm, beagle)


    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 中去

    ------------------------------------------------------------
    本文由WindTaiL在cnblogs中发布,转载请注明出处
  • 相关阅读:
    Discuz 页面不能加载插件的原因和解决方法
    discuz 插件核心函数hookscript分析.
    比较容易犯的一些智障错误(不定时修改)
    浅谈树状数组入门
    图论的小总结
    usaco 2009 12 过路费
    0122(本来是想ak的但是因为智障只拿了200。)
    图论
    欧拉路
    bfs
  • 原文地址:https://www.cnblogs.com/windtail/p/5734463.html
Copyright © 2020-2023  润新知