drivers\rtc\rtc-s3c.c

s3c_rtc_init
  platform_driver_register
    s3c_rtc_probe
      rtc_device_register("s3c", &pdev->dev, &s3c_rtcops, THIS_MODULE)
        rtc_dev_prepare
          cdev_init(&rtc->char_dev, &rtc_dev_fops);
        rtc_dev_add_device
          cdev_add

app: open("/dev/rtc0");
-------------------------------------------
kernel: sys_open
    rtc_dev_fops.open
      rtc_dev_open
        // 根据次设备号找到以前用"rtc_device_register"注册的rtc_device
        struct rtc_device *rtc = container_of(inode->i_cdev,struct rtc_device, char_dev);
        const struct rtc_class_ops *ops = rtc->ops;
        err = ops->open ? ops->open(rtc->dev.parent) : 0;
          s3c_rtc_open
app: ioctl(fd, RTC_RD_TIME,...)(读写使用ioctl实现的不是read和write)
-------------------------------------------
kernel: sys_ioctl
  rtc_dev_fops.ioctl
    rtc_dev_ioctl
      struct rtc_device *rtc = file->private_data;
      rtc_read_time(rtc, &tm);
          err = rtc->ops->read_time(rtc->dev.parent, tm);
            s3c_rtc_gettime

测试RTC:
1. 修改arch\arm\plat-s3c24xx\common-smdk.c
static struct platform_device __initdata *smdk_devs[] = {
  &s3c_device_nand,
  &smdk_led4,
  &smdk_led5,
  &smdk_led6,
  &smdk_led7,
改为(在数组smdk_devs里加上s3c_device_rtc):
static struct platform_device __initdata *smdk_devs[] = {
&s3c_device_nand,
&smdk_led4,
&smdk_led5,
&smdk_led6,
&smdk_led7,
&s3c_device_rtc,

2. make uImage, 使用新内核启动
3. ls /dev/rtc* -l
date /* 显示系统时间 */
date 123015402011.30 /* 设置系统时间 date [MMDDhhmm[[CC]YY][.ss]] */
hwclock -w /* 把系统时间写入RTC */

短电,重启,执行date

20、RTC驱动程序的更多相关文章

  1. RTC驱动程序分析

    drivers\rtc\rtc-s3c.c s3c_rtc_init      platform_driver_register            s3c_rtc_probe           ...

  2. 第43章 RTC—实时时钟

    第43章     RTC—实时时钟 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fireg ...

  3. 第43章 RTC—实时时钟—零死角玩转STM32-F429系列

    第43章     RTC—实时时钟 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fireg ...

  4. S3C2440上RTC时钟驱动开发实例讲解(转载)

    嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤.一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便.如有错误之处,谢请指正. 共享资源,欢迎转载:http:/ ...

  5. linux RTC 驱动模型分析【转】

    转自:http://blog.csdn.net/yaozhenguo2006/article/details/6824970 RTC(real time clock)实时时钟,主要作用是给Linux系 ...

  6. 嵌入式Linux设备驱动程序:编写内核设备驱动程序

    嵌入式Linux设备驱动程序:编写内核设备驱动程序 Embedded Linux device drivers: Writing a kernel device driver 编写内核设备驱动程序 最 ...

  7. Linux 驱动开发

    linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

  8. u-boot学习笔记(一):基础概念

    1.U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目.U-Boot的作用是系统引导.U-Boot从FADSROM.8xxROM.PPCBOOT逐步发展演化 ...

  9. U-Boot

    U-Boot U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目.从FADSROM.8xxROM.PPCBOOT逐步发展演化而来.其源码目录.编译形式与Li ...

随机推荐

  1. spark network-common

    概述 Spark底层使用netty作为节点间通信的桥梁.其实现在common/network-common包中.common/network-common包主要是对netty进行了一层封装,主要是定义 ...

  2. 关于指定dll搜索路径

    原文:关于指定dll搜索路径 问题现象 当部分DLL放在子文件夹下,需要指定DLL搜索路径,否则系统将找不到文件 产生原因 系统默认搜索只会在前程序目录并不包括子目录 解决方法 1,使用App.con ...

  3. php 根据html table生成excel文件

    <?php /* *处理Excel导出 *@param $datas array 设置表格数据 *@param $titlename string 设置head *@param $title s ...

  4. PHP类中的__get()和__set函数到底有什么用

    PHP类中的__get()和__set函数到底有什么用 一.总结 一句话总结:当试图获取一个不可达变量时,类会自动调用__get.同样的,当试图设置一个不可达变量时,类会自动调用__set.在网站中, ...

  5. 洛谷P1852 奇怪的字符串

    题目描述 输入两个01串,输出它们的最长公共子序列的长度 输入输出格式 输入格式: 一行,两个01串 输出格式: 最长公共子序列的长度 输入输出样例 输入样例#1: 复制 01010101010 00 ...

  6. golang filepath.Glob

    package main import ( "fmt" "path/filepath" ) func main() { //找出/home/ 目录下的所有的lo ...

  7. BZOJ1444: [Jsoi2009]有趣的游戏(Trie图,矩乘)

    Description Input 注意 是0<=P, n , l, m≤ 10. Output Sample Input input 1 3 2 2 1 2 1 2 AB BA AA inpu ...

  8. 记2018/5/5 qbxt 测试

    记2018/5/5 qbxt 测试 竞赛时间: 2018 年 5 月 5 日 13:30-17:00 T1 一.maze(1s,512MB): 简单的迷宫问题:给定一个n*m的迷宫,.表示可以通过,# ...

  9. 决策树2 -- CART算法

    声明: 1,本篇为个人对<2012.李航.统计学习方法.pdf>的学习总结.不得用作商用,欢迎转载,但请注明出处(即:本帖地址). 2,因为本人在学习初始时有非常多数学知识都已忘记.所以为 ...

  10. CSU1660: K-Cycle

    Description A simple cycle is a closed simple path, with no other repeated vertices or edges other t ...