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

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.7K40
您找到你想要的搜索结果了吗?
是的
没有找到

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.1K40

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 层,然后给你一些数据结构让你填充,就可以将这个子系统用起来了。

10910

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

30630

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.8K20

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.2K21

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内核中被合并

3.9K20

Linux时间子系统(下)

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

27410

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

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

3.1K10

使用 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.6K11

浅谈 Linux 内核无线子系统

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

3.2K31

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.7K10

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
领券