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

zephyr笔记 2.2.1 内核时钟

2 概念 内核支持两个不同的时钟。 32位硬件时钟是一个高精度计数器,可以跟踪若干个周期时间,但这个周期不能指定单位。一个周期的持续时间取决于内核使用的电路板硬件,通常以纳秒为单位进行测量。...大多数内核基于时间的服务都使用系统时钟,包括内核计时器对象和其他内核对象类型支持的超时。 为方便起见,内核的API允许以毫秒为单位指定持续时间,并自动将它们转换为相应的tick数。...硬件时钟可用于高精度的测量事务,因为它比内核系统时钟的精度更高。 2.1 时钟限制 系统时钟的tick计数来自硬件时钟的周期计数。...内核计算出tick频率需要多少个硬件时钟周期,然后编程在多个硬件时钟周期后产生中断; 每个中断对应于一个tick。...注意:配置较小的时间间隔允许更细粒度的时序,但也会增加内核处理时钟中断所需的工作量,因为它们会更频繁地发生。 将滴答持续时间设置为零将禁用内核时钟及其相关服务。

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

    Linux内核时钟系统和定时器实现

    Linux内核时钟系统和定时器实现 Linux 2.6.16之前,内核只支持低精度时钟内核定时器的工作方式: 系统启动后,会读取时钟源设备(RTC, HPET,PIT…),初始化当前系统时间; 内核会根据...所以说这之前,linux只能支持ms级别的时钟,随着时钟源硬件设备的精度提高和软件高精度计时的需求,有了高精度时钟内核设计。...Linux 2.6.16 ,内核支持了高精度的时钟内核采用新的定时器hrtimer,其实现逻辑和Linux 2.6.16 之前定时器逻辑区别: hrtimer采用红黑树进行高精度定时器的管理,而不是时间轮...新的内核不再会直接支持周期性的tick,新内核定时器框架采用了基于事件触发,而不是以前的周期性触发。...在高精度时钟模式下,操作系统内核仍然需要周期性的tick中断,以便刷新内核的一些任务。

    3.6K30

    高通GPIO驱动(DTS方式)

    gpio调试的方式有很多,linux3.0以上ARM架构的处理器基本上都采用了DTS的方式,在linux3.0可以通过获取sysfs的方式来获取gpio状态; sysfs文件系统的建立可以参照下面的博客...//gpio_99不再使用后应当释放 gpio的申请和设置都可能会出现失败的情况,应该做好异常处理;; 2.2 pinctrl子系统设备树: Pin Control Subsystem是Linux内核抽象出的一套用于控制硬件引脚的一套子系统...比上面的方式多了许多配置GPIO的方式,例如配置电流(可以用于睡眠唤醒的功能),管理pin脚的复用,接口规格等功能;蜗窝科技的大牛们就有几篇写的很好: linux内核中的GPIO系统之(1):软件框架...linux内核中的GPIO系统之(2):pin control subsystem Linux内核中的GPIO系统之(3):pin controller driver代码分析 linux内核中的GPIO...系统之(4):pinctrl驱动的理解和总结 linux内核中的GPIO系统之(5):gpio subsysem和pinctrl subsystem之间的耦合 DTS代码: 1 device_node

    4.7K40

    Linux 内核裁剪框架初探

    5 内核裁剪框架初探 内核裁剪框架的原理没有变,仍然是跟踪目标应用工作负载的内核占用情况,以确定所需的内核选项。 5.1 内核裁剪框架的核心特性 内核裁剪框架大概可以具备以下特性: 端到端的可见性。...给定一个部署环境和目标应用程序,内核裁剪框架可以有效地检索基线配置和 应用配置,并将它们组合成所需的内核配置,然后使用生成的配置构建废弃的内核。...5.2 内核裁剪框架的体系结构 内核裁剪框架应该同时具备离/在线系统,体系结构如下图所示: 通过离线系统, 配置跟踪器用于跟踪部署环境和应用程序所需的配置选项,并记录下来。...通过在线系统,配置组合器使用基线配置和应用配置来生成目标内核配置,然后,内核构建器生成裁剪后的Linux内核. 5.3 内核裁剪框架的实现可行性 配置跟踪 内核裁剪框架的配置跟踪器在目标应用程序驱动的内核执行期间跟踪配置选项...了解了现有技术的局限性,尝试提出一个Linux内核裁剪框架,或许可以解决这些问题。

    2.3K30

    系统日报-20220119(分布式时钟和调度框架

    分布式系统祖师爷级论文———Lamport 逻辑时钟 基于 Lamport 时钟的分布式锁 来源:http://yang.observer/2020/07/26/time-lamport-logical-time...of Events in a Distributed System[4]” (分布式系统中的时间、时钟与事件序)。...论文原文设计的很精妙,译文翻译的也不错,博客作者的时钟系列都可以看下。毕竟,时与序是分布式系统中的基石,推荐一读。...深度学习集群调度框架 一个 16 核 GPU 调度的例子 来源: https://www.usenix.org/system/files/osdi18-xiao.pdf[5] 摘要: 该文章介绍了一个适用于深度学习集群资源的调度框架...,是比较早的一篇系统性对深度学习资源集群调度的文章,根据深度学习的几个特性设计了对应的调度框架

    43210

    并行分布式框架 Celery 之 Lamport 逻辑时钟 & Mingle

    Consumer [源码分析] 消息队列 Kombu 之 Producer [源码分析] 消息队列 Kombu 之 启动过程 [源码解析] 消息队列 Kombu 之 基本架构 [源码解析] 并行分布式框架...Celery 之架构 (1) [源码解析] 并行分布式框架 Celery 之架构 (2) [源码解析] 并行分布式框架 Celery 之 worker 启动 (1) [源码解析] 并行分布式框架 Celery...Heartbeat [源码解析] 并行分布式任务队列 Celery 之 EventDispatcher & Event 组件 [源码解析] 并行分布式任务队列 Celery 之 负载均衡 [源码解析] 并行分布式框架...Celery 之 容错机制 [源码解析] 并行分布式框架 Celery 之 Lamport 逻辑时钟 & Mingle 0x01 逻辑时钟 1.1 来由 分布式系统解决了传统单体架构的单点问题和性能容量问题...1.2 什么是逻辑时钟 逻辑时钟是为了区分现实中的物理时钟提出来的概念,一般情况下我们提到的时间都是指物理时间,但实际上很多应用中,只要所有机器有相同的时间就够了,这个时间不一定要跟实际时间相同。

    59230

    Linux内核的LED设备驱动框架【转】

    驱动框架的概念 内核中驱动部分维护者针对每个种类的驱动设计一套成熟的、标准的、典型的驱动实现,并把不同厂家的同类硬件驱动中相同的部分抽出来自己实现好,再把不同部分留出接口给具体的驱动开发工程师来实现,这就叫驱动框架...LED设备驱动框架概述 (1)LED设备的共性: 1)LED的亮与灭; 2)具有相应的设备节点(设备文件)。...因此,Linux中LED的驱动框架把所有LED设备的共性给实现了,把不同的地方留给驱动工程师去做。...内核在启动过程中,内核需要按照先后顺序去进行初始化操作。因此,内核给是给启动时要调用的所有初始化函数归类,然后每个类按照一定的次序去调用执行。...内核开发者在编写内核代码时只要将函数设置合适的级别,这些函数就会被链接的时候放入特定的段,内核启动时再按照段顺序去依次执行各个段即可。

    2.6K10

    RTOS内功修炼记(四)— 小小的时钟节拍,撑起了内核半边天!

    时钟节拍的产生 周期性的时钟信号可以由硬件定时器产生,也可以由Systick产生,显然默认已经使能的Systick更好用一点,所以一般情况下都使用Systick产生周期性的时钟信号。...时钟节拍服务程序 时钟节拍中断处理函数中调用RTOS内核提供的 API 完成对每一个时钟节拍的处理即可,这也是移植一个RTOS内核很重要的一步。...每个时钟节拍来临时做什么 内核提供的API究竟做了什么呢?...基于RTOS内核中的时钟管理,可以方便扩展出软件定时器功能。在每个时钟节拍来临的时候,对系统中存在的软件定时器一并进行处理。...总结 本文内容比较多,最后来总结一下比较重要的点: ① RTOS内核需要时钟节拍来周期性的处理任务延时、软件定时器、时间片调度的逻辑,所以「移植时必须要提供时钟节拍」。

    1.1K12

    基于Web内核的微信小程序框架实践

    框架能去拥抱更多的Web特性,深入到Chromium内核中,去支持更多平台。 还有一个目的就是,通过新框架去拓宽小程序生态的边界,能够在许多非移动端设备,提供微信小程序生态。...这样就需要深入Web内核中做一些修改和定制,来实现一个符合业务需求的小程序框架。 ---- 2. ...基于Chromium内核的小程序框架 2.1 整体框架 先来看一下新框架最终的架构图,这个图其实和PWA的架构很接近,运行环境是在Chromium内核的基础上。...---- 3.基于Chromium内核的小游戏框架 基于Chromium内核的小游戏框架,相比小程序而言就简洁很多了,它同样运行在Chromium内核中,只会使用Render线程,作为小游戏的JS线程...内核只会对接 Android Native框架,最重要的就是图形和输入。

    2.6K22

    Rust for Linux 源码导读 | Rust 驱动开发与通用时钟管理框架抽象

    初始通用时钟框架抽象。 平台驱动程序现在通过实现特质(trait)来定义。包括用于简化平台驱动程序注册的新宏和新示例/模板。 dev_* 打印宏。...Linux 通用时钟框架介绍 背景介绍 当下通用计算机中的CPU中各个模块都需要时钟驱动,内核就需要一套通用的机制来进行时钟管理。这套通用机制还必须跨平台地方便管理CPU上所有的时钟资源。...Linux 平台中提供一套通用时钟框架(common clock framework)来管理系统clock资源的子系统,其职能可以分为下面三个部分: 向其它driver提供操作clocks的通用API。...而这个通用时钟框架管理的对象就是这些clock器件。...框架的主要功能包括: 使能(enable/disable)clk 设置clk频率 选择clk的parent 通用时钟框架的通用接口定义在 Linux 内核中(include/linux/clk.h[3]

    1.2K50

    内核net_device设备框架的一个缺陷

    前几天在看Linux内核源码时,发现一个net_device设备框架的一个问题,以至于upstream的内核源码中,至少有12个设备驱动和虚拟设备存在内存泄漏的风险。...内核代码已经是很geek的代码了,但大家可以看看,内核中的“命名”起的非常好,从成员变量的名称上,就可以看出该函数的用途。所以,变量命名不是越短越好,而是尽量让读者看得明白,易于维护。...这个bug的根本原因,是net_device框架的一个设计缺陷造成的。按照软件设计原则,是不应该一处申请内存,两处分别释放。...PS:发现这个缺陷后,我搜索了内核源码,判断upstream中有12处含有内存泄漏风险的bug。...但是我不敢轻易改动net_device框架(牵涉太多了),于是只能针对这12个driver进行workaround的修改。

    1.7K20

    一套基于增强型8051内核的应用裸机框架

    8051-ELL 简介 8051-ELL,是根据新一代增强型8051为内核的MCU,基于keil开发的硬件抽象平台。...ELL采用了一个裸机框架来组织库文件。框架包括两大部分:工程文件和库文件。 工程文件主要存放Keil工程、Vscode文件、用户代码。这里可以根据你的编程习惯进行安排,非常的自由!...源代码阅读指导 一、基本架构 设计框架上,ELL分为三个组成部分,分别是片内外设库、组件库、设备驱动库。...型号 定时器 IO 中断 系统时钟 PCA PWM MPWM HPWM EEPROM ADC MDU16 比较器 USB LED RTC TKEY STC8A系列 √ √ √ √ √ √ X X √ √...* @param[in] clkSrc PWM时钟源。PWM clock source. * @param[in] period PWM周期值(计数器重装载值)。

    61720

    如何写出高质量的代码

    I:接口分离原则,注重对接口依赖的隔离,主要约束接口接口,主要针对抽象,针对程序整体框架的构建。...第2阶段,看设计 UML工具,看方法,类,文件切割,官网上有600多页白皮书,OMG证书 用手机阅读Linux 1.0内核的UML类图 阅读Linux2.0内核UML类图,与1.0类图相比,为什么设计发生了变化...推荐书籍《重构与模式》 第3阶段,看代码结构 阅读Linux3.0内核的包图,文件夹 Windows源代码的包图,对比商用软件与开源系统的结构设计的异同 第4阶段,看开源代码获取设计经验...按变量的生命周期的办法阅读源码 按照对比法阅读源码 重构 如何重构 代码中的重复性或相似性 Copy/paste -重构到框架,aop框架 重构策略 绕来绕去 0 风险

    59120
    领券