zoukankan      html  css  js  c++  java
  • RTC驱动程序

    drivers tc tc-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,...)

    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. 修改archarmplat-s3c24xxcommon-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, 使用新内核启动
      cp arch/arm/boot/uImage /work/nfs_root/uImage_rtc
      使用新内核启动
      nfs 30000000 192.168.31.202:/work/nfs_root/uImage_rtc
      bootm 30000000

    3. ls /dev/rtc* -l
      date /* 显示系统时间 /
      date 123015402011.30 /
      设置系统时间 date [MMDDhhmm[[CC]YY][.ss]] /
      hwclock -w /
      把系统时间写入RTC */

      短电,重启,执行date

    版权声明:本文为博主原创文章,转载请注明文章来源,有需要帮忙可加QQ:871263854
  • 相关阅读:
    辗转相除法求最大公约数和最小公倍数
    KMEANS算法
    Extjs RadioGroup中Radio的切换
    B树、B树、B+树、B*树都是什么
    DBSCAN算法的java实现
    SQL 基础:Select语句,各种join,union用法
    Ubuntu 安装中文输入法 fcitx
    Salesforce 主要发展历史
    Pair Programming(结对编程)
    学习笔记 设计模式之装饰者模式
  • 原文地址:https://www.cnblogs.com/Dream998/p/8540753.html
Copyright © 2011-2022 走看看