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

Linux 时钟子系统

一文搞懂 | Linux 时钟子系统 Clock 时钟就是 SoC 中脉搏,由它来控制各个部件按各自节奏跳动。比如,CPU主频设置,串口波特率设置,I2S采样率设置,I2C速率设置等等。...中间节点有很多种,包括 PLL(锁相环,用于提升频率),Divider(分频器,用于降频),Mux(从多个clock path中选择一个),Gate(用来控制ON/OFF)。...叶节点是使用 clock 做为输入、有具体功能 HW block。...fixed rate clock 这一类clock具有固定频率,不能开关、不能调整频率、不能选择parent,是最简单一类clock。可以直接通过 DTS 配置方式支持。...(即multiplier和divider),clock频率是由parent clock频率,乘以mul,除以div,多用于一些具有固定分频系数clock。

4K30

Linux Led 子系统

2、概述 led 子系统驱动框架: 所有 led 共性: 有和用户通信设备节点 亮和灭 不同点: 有的 led 可能是接在 gpio 管脚上,不同 led 有不同 gpio 来控制 有的 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 设备提供注册操作函数

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

    Linux IIO 子系统

    Linux 内核为了管理这些日益增多 ADC 类传感器,特地推出了 IIO 子系统,我们学习如何使用 IIO 子系统来编写 ADC 类传感器驱动。...1、IIO 子系统简介 IIO 全称是 Industrial I/O,翻译过来就是工业 I/O,大家不要看到“工业”两个字就觉得 IIO 是只用于工业领域。...大家一般在搜索 IIO 子系统时候,会发现大多数讲都是 ADC,这是因为 IIO 就是为 ADC 类传感器准备,当然了 DAC 也是可以。...1、iio_dev 结构体 IIO 子系统使用结构体 iio_dev 来描述一个具体 IIO 设备,此设备结构体定义在include/linux/iio/iio.h 文件中 2、iio_dev 申请与释放...2、IIO 驱动框架创建 分析 IIO 子系统时候大家应该看出了,IIO 框架主要用于 ADC 类传感器,比如陀螺仪、加速度计、磁力计、光强度计等,这些传感器基本都是 IIC 或者 SPI 接口

    2.3K40

    Linux RTC 子系统

    rtc 一般负责系统关机后计时、闹钟等,Linux 内核提供了一个 rtc 子系统,来支持所有的 rtc 设备。...rtc 设备本质上是一个字符设备,rtc 子系统在字符设备基础上抽象与硬件无关部分,并在这个基础上拓展 sysfs 和 proc 文件系统访问。...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 层,然后给你一些数据结构让你填充,就可以将这个子系统用起来了。

    20510

    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"] 输入...apt-get clean [/card] 4.修改子系统位置 (1)首先查看所有分发版本 wsl -l --all -v (2)导出分发版为tar文件到d盘 wsl --export Ubuntu

    5.4K20

    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...在SoC,某些domain可以运行在较低频率和电压下,而其他domain可以运行在较高频率和电压下,某个domain所支持集合被称为Operating Performance

    3K20

    Linux 网络子系统

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

    3.6K21

    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...在SoC,某些domain可以运行在较低频率和电压下,而其他domain可以运行在较高频率和电压下,某个domain所支持集合被称为Operating Performance

    4.1K20

    Linux时间子系统(下)

    前言: 上一篇文章我们简单了解了一些关于时间概念,以及Linux内核中关于时间基本理解。而本篇则会简单说明时钟硬件,以及Linux时间子系统相关一些数据结构。...计算机里时钟硬件 前文曾经提到过,内核时间子系统实现也需要有硬件支持。...Linux时间子系统文件汇总 Linux kernel 时间子系统源文件位于linux/kernel/time/目录下,基本包含如下: 这里面也包含几个重要数据结构,接下来会分开说说: Clocksource...相信通过两期内容,可以帮助大家对计算机时间子系统有一个大概了解,同时更好理解hrtimer和timekeeping原理。...显然关于Linux时间子系统内容,还有很多可以深入挖掘,在此篇幅有限,就不做过多赘述了,也希望同样对操作系统感兴趣小伙伴与我们一起交流。

    39710

    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子系统...但是,下载目录为windows某一个磁盘,无法复制到wsl子系统中(不知道怎么解决,我目前又用不到,先不弄了) 使用命令行,首先加载到windows下含有cudnn文夹 sudo...和lib在不同文件夹,需要自己点开查看) 为上述文件添加读取和执行权限 sudo chmod a+r /usr/local/cuda-11.6/include/cudnn.h sudo chmod

    2.9K40

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

    中断是大家用最多功能,不管是单片机还是 Linux 系统,都需要用到中断,对它深入理解是非常必要。 为什么需要中断?...终止就是系统直接挂掉了。 中断子系统硬件架构 一个完整设备中,与中断相关硬件可以划分为3类,它们分别是:设备、中断控制器和CPU本身。...中断子系统架构 整个中断子系统架构分为 4 层,最底层(第四层)为硬件,包括 CPU、中断控制器。第三层是 CPU 驱动和中断控制器驱动,由芯片原厂负责。...第二层是 Linux 内核提供通用中断处理模块,这一层存在意义在于,希望用户在第一层写驱动在移植时候更方便,保持接口不变,不让用户直接使用芯片原厂 API,而是 Linux API。...第一层就是驱动工程师日常写驱动啦。 关于中断子系统,我写了八篇文章,从头到尾讲了一遍,大家可以去我blog查看: http://www.linuxer.vip/linux-interrupt1/

    3.3K10

    浅谈 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

    使用 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 input子系统(1)《Rice linux 学习开发》

    Linux input子系统,分为三篇文章,第一篇:Linux input子系统概念,第二篇:Linux input子系统代码分析(input core),第三篇:Linux input子系统驱动程序编写...答案:linux中将所有的输入设备抽象出input子系统这套软件体系,提供了统一接口函数,实现了大统一。 input子系统分为三层: 1.输入子系统设备驱动层。...2.输入子系统核心层 3.输入子系统事件处理层 其中: 1.设备驱动层提供对硬件寄存器读写访问和将底层硬件对用户输入访问相应转换为标准输入事件,在通过核心层提交给事件处理层。...综上所述:在linux中,输入子系统作为一个内核模块存在,向上为用户层提供接口函数,向下为驱动程序提供统一接口函数。...这样就能够将输入设备事件通过输入子系统发送给应用层应用程序,应用程序也可以通过输入子系统通知驱动程序完成某些任务。 下一篇:Linux input子系统代码分析(input core)

    1.9K10

    Linux驱动之SPI子系统剖析

    I2C选择总线上挂接一个从设备是使用从地址来区分,而SPI采用是CS片选线 SPI子系统框架 SPI核心层: drivers/spi/spi.c SPI总线驱动层(主机控制器驱动层):drivers.../spi/spi_s3c24xx. c SPI设备驱动层:drivers/spi/spidev.c (内核提供SPI通用设备驱动) Linux主从模式总线子系统采用是同一种分离思想,其分离具体策略大同小异...具体分离策略详细分析可参考Linux驱动之I2C子系统剖析中内核对I2C子系统框架阐述。笔者在这与I2C子系统类比,列出数据结构名。...struct i2c_msg struct spi_transfer 多个完整数据包封装 无 struct spi_message 源码分析 由于子系统架构与I2C等总线类似,所以不会在一些重复部分展开...,具体分析可以参考Linux驱动之I2C子系统剖析中分析方法。

    4.6K10

    Linux驱动之Misc子系统剖析

    何为Misc设备 Linux驱动分为字符设备驱动、块设备驱动和网络设备驱动,而字符设备又包括很多种,内核使用主设备号来区分各个字符设备驱动,在include/linux/major.h文件中已经预先定义好了各类字符设备主设备号...使用Misc设备好处 Misc子系统使用一个统一主设备号来管理,当需要注册Misc驱动时,内核会为其分配次设备号。...(misc_class); fail_remove: remove_proc_entry("misc", NULL); return err; } 先是创建了Misc类,随后将Misc子系统实现为字符设备驱动来注册到内核中...最后,该open方法并不是真正open方法,所以需要调用真正fops中open方法。 总结 Misc子系统使用同一个驱动来向上提供多个设备文件节点,向下控制多个(相应)设备。...Misc驱动本质上也是字符驱动,只是它借用Misc子系统框架来更方便向内核注册而已。

    1.3K10

    win10安装Linux子系统

    开启开发者模式 系统设置 -> 更新和安全 -> 针对开发人员 -> 选择开发人员模式 image.png 启动 Windows 10 Linux 子系统组件 系统设置 -> 应用 -> 右侧程序和功能...-> 启动或关闭windows功能 -> 勾选适用于 Linux Windows 子系统 确定后,重启电脑,系统更新配置 安装 Linux 子系统 打开 Windows 应用市场,输入 linux...搜索,选择你自己想要系统版本,建议使用Ubuntu 使用国内软件源 国外软件源更新软件实在是太慢了,还是改用国内软件源吧!...启动远程桌面 1、在Cortana中搜索远程桌面并启动: image 2、点击显示选项,填入本机IP(这里是局域网IP,所以你也可以用局域网内其他Windows10电脑试试,建议使用静态ip)、刚刚设置端口号...、还有你Linux子系统用户名(也可以使用root账户登陆,比较麻烦,因为Debian默认是禁止使用root账户登陆),如图: image 3、点击链接 当然也可以使用ssh连接 Debian

    4K60

    Linux驱动之PCI子系统剖析

    PCI总线常见于x86体系,本文默认面向体系为x86,注意x86架构下IO与内存是独立编址。 附: 本文默认读者熟悉Linux设备驱动模型,不熟悉可以先阅读这两篇blog。...Linux驱动之I2C子系统剖析 Linux驱动之SPI子系统剖析 PCI寻址 PCI系统总体布局组织为树状,从CPU连接Host Bridge引出PCI主桥,主桥连接是PCI总线0,可以直接连接PCI...PCI规范允许一个系统最多拥有256条总线,每条总线最多带有32个设备,每个设备可以是最多8个功能多功能板,但是对于大型系统而言总线数不够,故还支持PCI域,每个PCI域可最多支持256个总线。...Linux内核启动时会从PCI设备配置寄存器里读取内存/IO起始地址以及irq,并把这些信息赋值给struct pci_dev相应成员来生成软件描述PCI设备。...当linux系统启动时,会探测系统所有PCI设备,并为探测到每个PCI设备做如下操作: 1.分配一个struct pci_dev结构体,用来表示相应PCI设备 2.为这个结构体填充设备vendor

    3.5K20
    领券