rtems 4.11 RTC驱动 (arm, beagle)
2016-08-03 20:48
225 查看
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设备时钟,设置总线访问方式等等
读:从RTC设备中读取时间
写:把时间设备到RTC设备中
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 中去相关文章推荐
- C++文件读写详解(ofstream,ifstream,fstream)
- 关于TabHost的详细解析
- 1810: water problem II(今天心情不爽,map)
- 单张图片上传表单提交
- cocos2dx3.x绘制自己的node
- c#.net 是如何访问 SQL Server 数据库
- 我自己的网站--搭建环境(二)
- Windows 7您的凭据不工作
- Part3_lesson3---ARM伪指令学习
- 一,VS2013下cocos2d的环境搭建以及工程创建
- 数据结构实验之串二:字符串匹配
- C++ STL 一般总结
- 擅长排列的小明
- hdu 1233 还是畅通工程
- #8.VNC服务器的搭建
- 双向队列
- ThinkPHP入门(二)
- HDU 1872 稳定排序
- 【zzuliOJ】1896 - 985的买饮料难题(贪心)
- stm32f4 dsp库arm_cfft_f32 fft用法