首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux RTC驱动模型分析

Linux系统提供了两套RTC接口,/dev/rtc是为pc机器提供,另一种/dev/rtc0, /dev/rtc1支持所有的系统,具体可参考rtc.txt文档。...linux为新的接口设计一套驱动模型,如果驱动工程师想增加某一个驱动,只需要将芯片相关的代码编写,然后注册到rtc核心层中即可。...RTC驱动框架 RTC涉及的代码如下: driver/rtc/class.c: 此文件向linux内核驱动模型注册了一个类RTC, 同时为底层的RTC驱动提供了注册/注销RTC接口。...driver/rtc/rtc-xxx.c: 各式各样的rtc驱动RTC的模型图如下: ? 通过上图可以清晰的看出class.c为各种各异的驱动提供了注册接口。...驱动的核心结构,当驱动程序使用rtc_device_register函数传递正确的参数,然后就返回struct rtc_deivce给驱动程序。

6K41
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    30.Linux-RTC驱动分析及使用

    linux中的rtc驱动位于drivers/rtc下,里面包含了许多开发平台的RTC驱动,我们这里是以S3C24xx为主,所以它的RTC驱动rtc-s3c.c 1.进入..../drivers/rtc/rtc-s3c.c 还是首先进入入口函数,如下图所示: ? 这里注册了一个“s3c2410-rtc”名称的平台设备驱动 而“s3c2410-rtc”的平台设备,在..../lifexy/p/7827559.html一摸一样的流程 所以“s3c2410-rtc”平台设备驱动的.probe主要做了以下几件事: 1.设置RTC相关寄存器 2.分配rtc_device结构体 3...这个RTC平台设备,没有注册,所以平台驱动没有被匹配上,接下来我们来修改内核里的注册数组 4.1进入arch/arm/plat-s3c24xx/Common-smdk.c 如下图所示,在smdk_devs...5.1接下来,便开始设置RTC时间 在linux里有两个时钟: 硬件时钟(2440里寄存器的时钟)、系统时钟(内核中的时钟) 所以有两个不同的命令: date命令、hwclock命令 5.2 date命令使用

    2.8K80

    Linux RTC 子系统

    rtc 一般负责系统关机后计时、闹钟等,Linux 内核提供了一个 rtc 子系统,来支持所有的 rtc 设备。.../rtc/sysfs.c kernel-6.1/drivers/rtc/rtc-xxx.c class.c:向内核注册 RTC 类,为底层驱动提供 register 与 unregister 接口用于...rtc-xxx.c:各平台 RTC 设备的实际驱动 rtc.h:定义与 RTC 有关的数据结构 RK3399 以博主手边的 RK3399 为例,RTC 驱动在 /kernel/drivers/rtc/...rx8010_set_alarm rx8010_set_time 软件逻辑就不在这里赘述了,大家可以参考下面链接 https://jasper1024.com/jasper/c089e4b/ 大家多看几个 Linux...子系统就会发现,基本上每个子系统都差不多,Linux 都会封装上中下 3 层,然后给你一些数据结构让你填充,就可以将这个子系统用起来了。

    18810

    Linux系统驱动之上机实验_基于QEMU

    资料下载 coding无法使用浏览器打开,必须用git工具下载: git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git...视频观看 百问网驱动大全 上机实验_基于QEMU 前提:安装了VMware,运行百问网提供的Ubuntu 18.04 本节视频对应源码在GIT仓库中,位置如下(这2个文件是完全一样的): doc_and_source_for_drivers...-4.9.88 qemu ToolChain 2.2 设置工具链 执行如下命令: export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabihf-.../linux-4.9.88$ make mrproper book@100ask:~/100ask_imx6ull-qemu/linux-4.9.88$ make 100ask_imx6ull_qemu_defconfig...替换LCD驱动程序 QEMU所用的内核里已经带有LCD驱动程序了,要测试我们编写的驱动程序,需要做2件事: 4. 测试 使用新内核启动QEMU后,执行fb-test及可测试。

    1.7K20

    Linux RTC 开发指南

    Linux RTC 开发指南 1 概述 1.1 编写目的 介绍Linux 内核中RTC 驱动的适配和DEBUG 方法,为RTC 设备的使用者和维护者提供参考。...1.2 适用范围 内核版本 驱动文件 LINUX-4.9 及以上 RTC-SUNXI.C 1.3 相关人员 RTC 驱动及应用层的开发/维护人员。...2 模块介绍 Linux 内核中,RTC 驱动的结构图如下所示, 可以分为三个层次: 接口层,负责向用户空间提供操作的结点以及相关接口。...• RTC Core, 为rtc 驱动提供了一套API, 完成设备和驱动的注册等。 • RTC 驱动层,负责具体的RTC 驱动实现,如设置时间、闹钟等设置寄存器的操作。...驱动会注册生成串口设备/dev/rtcN,应用层的使用只需遵循Linux 系统中的标准RTC 编程方法即可。

    1.6K30

    Linux驱动之网卡驱动剖析

    Linux 网络设备驱动架构 驱动架构自上而下分为4层: 协议接口层 设备接口层 设备驱动功能层 网络设备与媒介层 协议接口层 协议接口层主要功能是给上层协议提供接收和发送的接口。...传递的数据被描述为套接字缓冲区,用struct sk_buff结构描述,该结构体定义位于include/linux/skbuff.h中,用于在Linux网络子系统中的各层之间传输数据,该结构在整个网络收发过程中贯穿始终...设备驱动功能层 类似于字符设备,struct net_device结构体也提供了一个操作函数集struct net_device_ops来描述对网卡的各种操作。...源码分析 笔者基于的是 S5PV210 的 DM9000 驱动,会大体上对 DM9000 的驱动源码进行分析, 分析源码位于DM9000 源码 platform 框架分析 DM9000 的驱动是基于 platform...return platform_driver_register(&dm9000_driver); } 该函数调用了 platform_driver_register 函数注册了一个平台总线驱动

    56K20

    Linux驱动开发: USB驱动开发

    四、 linux内核下USB相关的API函数与数据结构 前面介绍了USB相关一些基础概念与重要的数据结构,接下来就分析在linux内核中如何编写一个USB 驱动程序,编写与一个USB设备驱动程序的方法和其他总线驱动方式类似...\n"); } //定义USB驱动结构体 static struct usb_driver usbtest_driver = { .name = "linux_usb_drv", .id_table...(中断传输方式) 5.1 USB驱动注册框架代码 #include #include #include /*...[root@wbyq linux-3.5]# make menuconfig 由于内核自带了usb鼠标驱动,所以需要去除: Device Drivers ---> HID support...#include /* 本程序为USB鼠标驱动程序,要安装本驱动,需要先将内核自带的USB驱动程序卸载掉 */ //定义USB的IDTAB 24ae:2002 static

    69.7K20

    Linux——Linux驱动之基本理论常识总结(什么是Linux驱动Linux驱动需要掌握哪些?)

    2 Linux驱动程序需要掌握的内容 3 Linux驱动可参考的资源 4 ARM处理器体系架构 5 ARM的前世今生 ---- 0 引言 前面Linux专题中关于Linux下系统编程总结了17篇博文,主要是为了提高...Linux下的C编程应用能力,熟悉Linux编程应用环境,从此篇博文起开始Linux驱动的总结,后面计划加一些综合实践项目练习。...Linux驱动可参考的资源 Linux本身就是一个开源软件,开源的好处大家都知道,资料丰富,我们做Linux驱动开发,能找到技术支持和相应资源的有如下,列出的,对于新手来说,建议最佳的顺序是从1到5:...对上:Linux设备驱动给上层提供调用的接口; 对中:Linux设备驱动要注册到内核中,标准说法是 挂载在总线上; 对下:直接操作硬件,如GPIO、IIC、SPI、PWM等; 以上三个,Linux内核都提供了大量的接口函数...、结构体,其实Linux驱动,就是掌握了这些东西怎么用,适应到自己要写的驱动程序中。

    8.7K30

    Linux SPI 驱动

    四、指纹SPI设备驱动框架 在对硬件有了较高的基础理解后,其实代码主要就是开始对SPI的接口做的软件实现了。...由于平台厂商通常给我们做好了spicontroller以及spicore部分,接下来的总结主要是针对SPI设备驱动部分的。...代码部分均来自于linuxkernel开源代码https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/?...五、总结 个人理解现在这个科技发展的风口下,手机、IOT、车机等终端设备齐放异彩的大背景下,新终端生态的搭建、基础智能设备的整合、大健康的趋势下,Sensor的发展是一个非常关键的驱动力,基础驱动软件能力的掌握也是重中之重...,linux给了我们一个很好的平台让我们能在前辈的肩上进行各种高质量的代码学习,我们也需抓住这个机会,在做好本质工作的基础上静心努力钻研,不断前行,祝愿各位也祝愿我自己在技术的道路上越走越远。

    18.4K12
    领券