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

Linux RTC 子系统

rtc 一般负责系统关机后计时、闹钟等,Linux 内核提供了一个 rtc 子系统,来支持所有的 rtc 设备。...rtc 设备本质上是一个字符设备,rtc 子系统在字符设备基础上抽象与硬件无关部分,并在这个基础上拓展 sysfs 和 proc 文件系统下访问。...初始化 RTC 设备结构、sysfs、proc interface.c:提供用户程序与 RTC 接口函数 dev.c:将 RTC 设备抽象为通用字符设备,提供文件操作函数集 sysfs.c:管理 RTC...rx8010_set_alarm rx8010_set_time 软件逻辑就不在这里赘述了,大家可以参考下面链接 https://jasper1024.com/jasper/c089e4b/ 大家多看几个 Linux...子系统就会发现,基本上每个子系统都差不多,Linux 都会封装上中下 3 层,然后给你一些数据结构让你填充,就可以将这个子系统用起来了。

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

Linux Regmap 子系统

这样 Linux 内核中就会充斥着大量重复、冗余代码,但是这些本质上都是对寄存器操作,所以为了方便内核开发人员统一访问 I2C/SPI 设备时候,为此引入了 Regmap 子系统。...芯片内部寄存器也是同样道理,比如 I.MX6ULL PWM、定时器等外设初始化,最终都是要落到寄存器设置上。...3、regmap_config 结构体 顾名思义,regmap_config 结构体就是用来初始化 regmap ,这个结构体也定义在include/linux/regmap.h 文件中。...3、Regmap 操作函数 1、Regmap 申请与初始化 regmap 支持多种物理总线,比如 I2C 和 SPI,我们需要根据所使用接口来选择合适 regmap 初始化函数。...Linux 内核提供了针对不同接口 regmap 初始化函数。

2.8K40

Linux IIO 子系统

Linux 内核为了管理这些日益增多 ADC 类传感器,特地推出了 IIO 子系统,我们学习如何使用 IIO 子系统来编写 ADC 类传感器驱动。...大家一般在搜索 IIO 子系统时候,会发现大多数讲都是 ADC,这是因为 IIO 就是为 ADC 类传感器准备,当然了 DAC 也是可以。...1、iio_dev 结构体 IIO 子系统使用结构体 iio_dev 来描述一个具体 IIO 设备,此设备结构体定义在include/linux/iio/iio.h 文件中 2、iio_dev 申请与释放...Linux 内核使用 iio_chan_spec 结构体来描述通道,定义在 include/linux/iio/iio.h 文件中。...IIO 设备申请、初始化以及注册在 probe 函数中完成,在注销驱动时候还需要在 remove 函数中注销掉 IIO 设备、释放掉申请一些内存。

2.2K40

Linux Led 子系统

可能由其他芯片来控制(节约 cpu pin,或者为了控制 led 电流等) 可以设置亮度 可以闪烁 所以 Linux led 子系统把所有 led 共性给实现了,把不同地方留给驱动工程师去做...led 子系统核心文件: driver/leds/led-class.c driver/leds/led-core.c driver/leds/led-triggers.c include/linux/...led 子系统是一个简单 Linux 子系统 ,在目录 /sys/class/leds 下展示该子系统设备,每个设备都有自己属性: brightness:设置 LED 亮度,范围 0 ~ max_brightness...LED_FULL = 255, //最大亮度 }; 3、代码框架分析 led-class.c (led 子系统框架入口) 维护 LED 子系统所有 LED 设备,为 LED 设备提供注册操作函数...timer 这个 trigger 是 ledtrig-timer.c 中模块初始化时候注册进去 echo timer > /sys/class/leds/led1/trigger 这一句会调用 led_trigger_store

36130

windowsLinux子系统安装

1.启用子系统功能 需要win系统支持子系统 进入控制面板 -> 程序和功能 -> 启用或关闭windows功能: 勾选适用于Linuxwindows子系统,确定,等待后,确认重启设备 2.下载子系统...acc status="" title="如果微软商店打不开"] 方案一:核实windows update服务是否启动 计算机右击管理→展开服务和应用程序→点击服务→核实windows update服务状态是否是正在运行...,点击获取 默认安装到C盘(若不想安装到C盘,看本篇最后),点击安装 等待下载完成后,启动即可, 3.子系统相关配置 启动后,会提示创建用户和设置密码,根据提示操作即可 [card title="修改...root密码" color="info"] 直接输入sudo passwd root修改 [/card] [card title="修改Linux国内镜像源并更新" color="success"] 输入...-18.04 d:\ubuntu18.04.tar 注:版本根据自己修改 (3)注销当前分发版 wsl --unregister Ubuntu-18.04 注:版本根据自己修改 (4)重新导入并安装分发版在

5.3K20

Windows下Linux子系统安装

安装 以管理员模式打开Windows PowerShell wsl --list -online查看可以安装Linux发行版 wsl --install -d Ubuntu-20.04(安装后需要重启...) 输入用户名和密码即可,回到开始菜单,找到Ubuntu图标即可打开 wsl子系统,位置在\\wsl$直接在任务管理器搜索即可 查看版本wsl -l -v 定期更新:sudo apt update &&...,等待下载VS Code Server for x64并安装 链接到vs code(左下角出现WSL:Ununtu-20.04) 安装miniconda 参考链接:Python环境搭建:基于Win10子系统...f bash Miniconda3--py38_4.11.0-Linux-x86_64.sh 一直点Enter/yes,直到出现“Do you wish the installer to intialize...但是,下载目录为windows某一个磁盘,无法复制到wsl子系统中(不知道怎么解决,我目前又用不到,先不弄了) 使用命令行,首先加载到windows下含有cudnn文夹 sudo

2.8K40

Linux 电源管理子系统

6)SoC 进入挂起状态、SDRAM 自刷新入口。 7)设备运行时动态电源管理,根据使用情况动态开关设备。 8)底层时钟、稳压器、频率/电压表(OPP模块完成)支撑,各驱动子系统都可能用到。...4、CPUIdle 驱动 目前 ARM SoC 大多支持几个不同 Idle 级别,CPUIdle 驱动子系统存在目的就是对这些Idle状态进行管理,并根据系统运行情况进入不同Idle级别。...6、Regulator 驱动 Regulator是Linux系统中电源管理基础设施之一,用于稳压电源管理,是各种驱动子系统中设置电压标准接口。...LinuxRegulator子系统提供如下API以用于注册/注销一个稳压器: structregulator_dev * regulator_register(conststructregulator_desc...Linux运行时PM最早是在Linux2.6.32内核中被合并

2.9K20

Linux 网络子系统

今天分享一篇经典Linux协议栈文章,主要讲解Linux网络子系统,看完相信大家对协议栈又会加深不少,不光可以了解协议栈处理流程,方便定位问题,还可以学习一下怎么去设计一个可扩展子系统,屏蔽不同层次差异...目录 Linux网络子系统分层 Linux网络子系统实现需要: 支持不同协议族 ( INET, INET6, UNIX, NETLINK…) 支持不同网络设备 支持统一BSD socket API...创建ksoftirqd内核线程 linux内核通过调用subsys_initcall来初始化各个子系统,在源代码目录里你可以grep出许多对这个函数调用。...这里我们要说是网络子系统初始化,会执行到net_dev_init函数。...网络子系统分层 Linux网络子系统实现需要: 支持不同协议族 ( INET, INET6, UNIX, NETLINK…) 支持不同网络设备 支持统一BSD socket API 需要屏蔽协议

3.3K21

Linux时间子系统(下)

前言: 上一篇文章我们简单了解了一些关于时间概念,以及Linux内核中关于时间基本理解。而本篇则会简单说明时钟硬件,以及Linux时间子系统相关一些数据结构。...Linux时间子系统文件汇总 Linux kernel 时间子系统源文件位于linux/kernel/time/目录下,基本包含如下: 这里面也包含几个重要数据结构,接下来会分开说说: Clocksource...上面三种时间通过 xtime变量计算,xtime会在系统启动时候通过从rtc获取值来初始化,之后通过每次时钟中断时候,加上当前时间和上次中断产生时间差值。...可能会有的疑问:为什么需要维护xtime,每次需要获取时间时候读取rtc不就好了?但其实读取rtc也有缺点,比如: 读取rtc效率不高,所以一般只在初始化时候维护一次。...显然关于Linux时间子系统内容,还有很多可以深入挖掘,在此篇幅有限,就不做过多赘述了,也希望同样对操作系统感兴趣小伙伴与我们一起交流。

31810

Linux 电源管理子系统

6)SoC 进入挂起状态、SDRAM 自刷新入口。 7)设备运行时动态电源管理,根据使用情况动态开关设备。 8)底层时钟、稳压器、频率/电压表(OPP模块完成)支撑,各驱动子系统都可能用到。...4、CPUIdle 驱动 目前 ARM SoC 大多支持几个不同 Idle 级别,CPUIdle 驱动子系统存在目的就是对这些Idle状态进行管理,并根据系统运行情况进入不同Idle级别。...6、Regulator 驱动 Regulator是Linux系统中电源管理基础设施之一,用于稳压电源管理,是各种驱动子系统中设置电压标准接口。...LinuxRegulator子系统提供如下API以用于注册/注销一个稳压器: structregulator_dev * regulator_register(conststructregulator_desc...Linux运行时PM最早是在Linux2.6.32内核中被合并

4K20

Linux 中断子系统(一):框架

中断是大家用最多功能,不管是单片机还是 Linux 系统,都需要用到中断,对它深入理解是非常必要。 为什么需要中断?...中断控制器级联有两种类型: 机器级别的级联,级联初始化代码理所当然地位于板子初始化代码中(arch/xxx/mach-xxx),因为只要是使用这个板子或SOC设备,必然要使用这个子控制器。...中断子系统架构 整个中断子系统架构分为 4 层,最底层(第四层)为硬件,包括 CPU、中断控制器。第三层是 CPU 驱动和中断控制器驱动,由芯片原厂负责。...第二层是 Linux 内核提供通用中断处理模块,这一层存在意义在于,希望用户在第一层写驱动在移植时候更方便,保持接口不变,不让用户直接使用芯片原厂 API,而是 Linux API。...第一层就是驱动工程师日常写驱动啦。 关于中断子系统,我写了八篇文章,从头到尾讲了一遍,大家可以去我blog查看: http://www.linuxer.vip/linux-interrupt1/

3.2K10

使用 xshell 登录 Windows linux 子系统

3 Windows 配置开机自启动 3.1 windows 计划任务配置 可以使用windows自带定时任务计划上添加开机启动Ubuntu ssh服务任务。.../sshd",开启 linux 子系统 ssh 服务 选择“点击完成打开属性页”按钮,点击完成,打开属性页 在属性页选择“使用最高权限运行” 3.2 测试计划任务命令 管理员身份打开 DOS 窗口 cd...3.3 linux 权限配置 配置完计划任务,执行时会因为 sudo root 要求输入密码,但因为任务自启动,不能填充密码。因此,我们可以针对启动用户设置使用 sudo 时无需密码。...4 计划任务测试 配置完成后,我们可以先关闭 linux ssh 服务 sudo service ssh stop # 关闭 ssh 服务 ps aux | grep ssh # 查看 ssh 服务是否已关闭...image.png 找到建立计划任务。右键点击,手动运行,查看运行结果。如果“上次运行结果列”出现“操作成功完成”提示,就表示我们计划任务配置成功啦!

2.7K11

浅谈 Linux 内核无线子系统

浅谈 Linux 内核无线子系统 Linux 内核是如何实现无线网络接口呢?数据包是通过怎样方式被发送和接收呢?...1 全局概览 在开始探索 Linux 无线具体细节之前,让我们先来把握一下 Linux 无线子系统整体结构。如图1,展示了 Linux 无线子系统各个模块之间抽象关系。 ?...现阶段大部分无线设备都是软件实现软 MAC 设备。 通常我们把 Linux 内核无线子系统看成两大块: cfg80211 和 mac80211 ,它们连通内核其他模块和用户空间应用程序。...Linux 内核无线子系统统一各种 WiFi 设备,并处理 OSI 模型中最底层 MAC 、 PHY 两层。 若进一步划分, MAC 层可以分为 MAC 高层和 MAC 底层。...Linux 子系统实现大部分 MAC 高层回调函数。 2 模块间接口 从图一中我们可以看出,各个模块之间分界线很清晰,并且模块间相互透明不可见。模块之间一般不会相互影响。

3.3K31

linux input子系统(1)《Rice linux 学习开发》

Linux input子系统,分为三篇文章,第一篇:Linux input子系统概念,第二篇:Linux input子系统代码分析(input core),第三篇:Linux input子系统驱动程序编写...linux系统输入设备繁多,例如按键、键盘、触摸屏、鼠标。这些输入设备都属于字符设备。不过这些输入设备不同类型,不同原理,不同输入输出信息。那么是如何统一这些输入设备呢?...答案:linux中将所有的输入设备抽象出input子系统这套软件体系,提供了统一接口函数,实现了大统一。 input子系统分为三层: 1.输入子系统设备驱动层。...综上所述:在linux中,输入子系统作为一个内核模块存在,向上为用户层提供接口函数,向下为驱动程序提供统一接口函数。...这样就能够将输入设备事件通过输入子系统发送给应用层应用程序,应用程序也可以通过输入子系统通知驱动程序完成某些任务。 下一篇:Linux input子系统代码分析(input core)

1.9K10

Linux内存初始化

看了很多关于linux内存管理文章还是云里雾里,听了很多关于linux内存管理课程还是一头雾水。...其实很多时候造成不懂原因不是资料太少,恰恰是资料太多,而且各个内核版本差异,32位64位不同,文章胡编乱造等都给读者带来疑惑。...本着对内存深度剖析态度,希望以版本kernel-4.14,架构AARCH64为专题做个内存管理架构性整理。 这篇文章我们先来看下linux在启动过程中初始化。...注意:如果想要在伙伴系统初始化之前进行设备寄存器访问,那么可以考虑early IO remap机制。 至此我们已经知道dtb和early ioremap都是在fixmap区,如下图: ?...系统内存布局: 完成dtbmap之后,内核可以访问这一段内存了,通过解析dtb中内容,内核可以勾勒出整个内存布局情况,为后续内存管理初始化奠定基础。

2.8K21

WSL2:Windows 亲生 Linux 子系统

在上一篇文章中,我们主要聊了一下:在 Windows 系统中,安装 WSL 子系统。...文章在此:WSL:在 Windows 系统中开发 Linux 程序又一神器 但是 WSL 只是长得像 Linux 而已,虽然在这个子系统中,我们可以执行 Linux 程序,但是到了底层,WSL 调用还是...后来,微软终于放出了 WSL2 这个真正 Linux 子系统,这是一个真正 Linux 完整内核,与传统虚拟机 VitualBox、VMWare 一样,但是它与宿主机互操作性更好。...关于 Linux 桌面环境,它与 Windows 桌面环境理念有一些不一样。 在 Linux 系统中,桌面环境是一个独立应用程序,不属于操作系统一部分。...换句换说,即使没有桌面环境,也可以很愉快Linux 系统,比如那些服务器之类设备。 Linux桌面由客户端和服务端组成,它们之间通过一个协议来通信,俗称:X11。

1.8K10

linux input子系统(3)《Rice linux 学习开发》

前面两篇文章写了《input子系统概念》和《分析input子系统代码》。这一篇文章来说说input子系统驱动程序编写。...input设备是使用input_dev结构体描述,使用input子系统实现输入设备驱动,驱动核心是向系统报告输入事件,不在关心文件操作接口,驱动报告事件经过input核心层,input handler...从这句话中,可以看出input子系统驱动部分会变得简单。 input子系统驱动还是比较简单,因为大部分工作,都在input核心层,input handler做完了。...input驱动代码,我是在之前文章《linux 中断机制》和input子系统驱动编写要点结合进行修改。你会发现代码很简单。 上面说到,input设备是使用input_dev结构体来描述。...其它代码含义请参看include/linux/input.h文件。 事件值(value):事件值。如果事件类型是EV_KEY,当按键按下时值为1,松开时值为0。

1.8K10
领券