转自蜗窝科技:http://www.wowotech.net/pm_subsystem/regulator_driver.html 说实话,这篇好难懂啊... 1. 前言 本文从regulator driver的角度,描述怎样基于regulator framework编写regulator驱动.同时,以此为契机,学习.理解regulator有关的物理特性,以便能够更好的使用它们. 2. regulator driver的实现步骤 2.1 确定系统中regulator有关的硬件组成  提起硬件,最…
转自蜗窝科技:http://www.wowotech.net/pm_subsystem/regulator_framework_overview.html 1. 前言 Regulator,中文名翻译为“稳定器”,在电子工程中,是voltage regulator(稳压器)或者current regulator(稳流器)的简称,指可以自动维持恒定电压(或电流)的装置. voltage regulator最早应用于功放电路中,主要用于滤除电源纹波(100或者120Hz)和噪声,以及避免“输出电压随负…
前言 1.  什么是regulator?      regulator翻译为"调节器",分为voltage regulator(电压调节器)和current(电流调节器).一般电源管理芯片(Power Management IC)中会包含一个甚至多个regulator.   2.  regulator有什么作用?     通常的作用是给电子设备供电.大多数regulator可以启用(enable)和禁用(disable)其输出,同时也可以控制其输出电压(voltage)和电流(curr…
本文转载自:https://blog.csdn.net/mike8825/article/details/51656400 1. 前言 PWM是Pulse Width Modulation(脉冲宽度调制)的缩写,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,其本质是一种对模拟信号电平进行数字编码的方法.在嵌入式设备中,PWM多用于控制马达.LED.振动器等模拟器件. PWM framework是kernel为了方便PWM driver开发.PWM使用而抽象出来的一套通用API…
1. 概念:Regulator : 电源芯片, 比如电压转换芯片Consumer : 消费者,使用电源的部件, Regulator是给Consumer供电的machine : 单板,上面焊接有Regulator和ConsumerConstraints : 约束, 比如某个电源管理芯片输出的电压范围Supply : 提供电源的部件, Regulator就是一个Supply; Regulator A可以给Regulator B供电, 那么Regulator B的Supply就是A 2. 写驱动程序:…
背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本:4.14 ARM64处理器 使用工具:Source Insight 3.5, Visio 1. 介绍 cpufreq子系统负责在运行时对CPU频率和电压的动态调整,以达到性能和功耗的平衡,它也叫DVFS(Dynamic Voltage Frequency Scaling). DVFS原理:CMOS电…
背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本:4.14 ARM64处理器 使用工具:Source Insight 3.5, Visio 1. 介绍 在Linux OS中,Idle进程的运行会让CPU进入cpuidle状态.当没有其他进程处于运行状态时,Scheduler会选择Idle进程来运行,此时CPU无所事事. 在ARM64架构中,当CPU…
关键词:Zone.Cooling.Governor.Step Wise.Fair Share.trip等等. Linux Thermal的目的是控制系统运行过程中采样点温度,避免温度过高造成器件损坏,确保芯片长期稳定工作. 整个Thermal框架可以分为四部分: Thermal Driver负责将获取温度设备,注册成struct thermal_zone_device,比如Temp Sensor.NTC等. Thermal Governor则负责如何控制温度,注册成struct thermal_…
How to make docker use aufs in CentOS 7? - Server Faulthttps://serverfault.com/questions/650208/how-to-make-docker-use-aufs-in-centos-7 bnied/kernel-ml-aufs: Mainline kernel packages, with AUFS support.https://github.com/bnied/kernel-ml-aufs kernel-m…
转自:http://blog.csdn.net/batoom/article/details/17081651 1: 校准器的基本概念 所谓校准器实际是在软件控制下把输入的电源调节精心输出. Regulator模块用于控制系统中某些设备的电压/电流供应.在嵌入式系统(尤其是手机)中,控制耗电量很重要,直接影响到电池的续航时间.所以,如果系统中某一个模块暂时不需要使用,就可以通过regulator关闭其电源供应:或者降低提供给该模块的电压.电流大小. Regulator的文档在KERNEL/Doc…
ioctl //user space int ioctl(int fd,unsigned long cmd,...); //kernel space int (*ioctl)(struct inode *inode,struct file* filp,unsigned int cmd,unsigned long arg) Blocking I/O #include <linux/wait.h> wait_queue_head_t my_queue; DECLARE_WAIT_QUEUE_HEA…
一: spidev_init注册spidev 1: static int __init spidev_init(void) 2: { 3: int status; 4:   5: /* Claim our 256 reserved device numbers. Then register a class 6: * that will key udev/mdev to add/remove /dev nodes. Last, register 7: * the driver which mana…
今天安装好rhel-server-6.6-i386后,再安装VirtualBox成功,但是再VirtualBox中创建虚拟机的时候出现了“不能为xx虚拟机打开新任务” 并弹出如下的错误信息:…
systemctl enable postgresql.service systemctl start postgresql.service # systemctl status postgresql.service msfdb init # msfconsole # db_status…
出现上述问题是qt安装目录未包含mysql驱动. 解决方法如下: 1.查看系统是否存在libqsqlmysql.so find / -name libqsqlmysql.so 2.若不存在该文件则安装qt-mysql文件 yum list |grep qt-mysql yum install qt-mysql.i686 3.此时在/usr/lib/qt4/plugins/目录下应该有文件libqsqlmysql.so,将其拷贝到qt安装目录 cp /usr/lib/qt4/plugins/lib…
本文作为一个提纲挈领的介绍性文档,后面会以此展开,逐渐丰富. 1. 前言 在 <开发流程>中介绍了PM开发的一般流程,重点是好的模型.简单有效的接口参数.可量化的测试环境以及可独性强的输出. 内核中功耗开发无论是新模型开发还是已有模型的调优,都需要了解现有的框架,遵循已有框架,简单有效的修改.这就需要了解<Android/Linux内核Power Management知识点>,关于Linux省电,从开机-->运行-->suspend-->关机这四种状态,开机/关机…
本文作为一个提纲挈领的介绍性文档,后面会以此展开,逐渐丰富. 开发流程 针对一个PM feature进行开发,设计模型是第一步.模型设计好之后,还要保留参数接口,可以基于这些参数针对特殊个体进行优化. 建立一个可以快速迭代.准确可靠.可量化的验证环境尤其重要.一方面可以验证设计的模型是否有效.正确:另一方面还可以调整找到最适合的参数. 针对嵌入式设备来说,最主要的是达到性能和功耗的平衡:在满足性能要求的前提下,尽量降低功耗. 这就涉及到如何去量化性能(Performance)和功耗(Power)…
The Linux kernel supports a variety of virtualization schemes, and that's likely to grow as virtualization advances and new schemes are discovered (for example, lguest). But with all these virtualization schemes running on top of Linux, how do they e…
转自:http://www.wowotech.net/linux_kenrel/device_resource_management.html . 前言 蜗蜗建议,每一个Linux驱动工程师,都能瞄一眼本文. 之所以用“瞄”,因此它很简单,几乎不需要花费心思就能理解.之所有这建议,是因为它非常实用,可以解答一些困惑,可以使我们的代码变得简单.简洁.先看一个例子: : /* drivers/media/platform/soc_camera/mx1_camera.c, line 695 */ :…
声明:本文很多内容和思路参考了http://www.wowotech.net/comm/mmc_host_driver.html,对原作者表示感谢! 1.前言 本文是Linux MMC framework的第二篇,将介绍host对象的基本结构和相应的操作 2.主要数据结构和API 2.1 struct mmc_host Elemete Name struct mmc_host Path include/linux/mmc/host.h Responsiblities mmc core使用stru…
============================================================================== 深入linux kernel内核配置选项 ============================================================================== 如果自己不亲自实践配置的话,你永远也体会不到内核的真实所在. 使用过linux的发行版之一gentoo的话,你应该知道这是一个彻头彻尾的自定义…
原文网址:http://blog.chinaunix.net/uid-28685940-id-3889878.html /*************************************************************************************************************************************//* bus.c */ /* *  linux/drivers/mmc/core/bus.c * *  Cop…
序言 设备驱动可以运行在内核态,也可以运行在用户态,用户态驱动的利弊网上有很多的讨论,而且有些还上升到政治性上,这里不再多做讨论.不管用户态驱动还是内核态驱动,他们都有各自的缺点.内核态驱动的问题是:系统调用开销大:学习曲线陡峭:接口稳定性差:调试困难:bug致命:编程语言选择受限:而用户态驱动面临的挑战是:如何中断处理:如何DMA:如何管理设备的依赖关系:无法使用内核服务等.对此,<User-Space Device Drivers in Linux: A First Look> 一文有较详…
返回目录:<ARM-Linux中断系统>. 总结:二重点区分了抢占式内核和非抢占式内核的区别:抢占式内核可以在内核空间进行抢占,通过对中断处理进行线程化可以提高Linux内核实时性. 三介绍了Linux中断注册函数request_threaded_irq,其实request_irq也是对request_threaded_irq的封装. 四对request_threaded_irq进行了详细分析,两种类型中断(Cascaded IRQ和Nested IRQ),以及如何兼容BottomHalf和T…
返回目录:<ARM-Linux中断系统>. 总结: 原文地址:<linux kernel的中断子系统之(七):GIC代码分析> 参考代码:http://elixir.free-electrons.com/linux/v3.17-rc3/source 一.前言 GIC(Generic Interrupt Controller)是ARM公司提供的一个通用的中断控制器,其architecture specification目前有四个版本,V1-V4(V2最多支持8个ARM core,V3…
Linux target framework (tgt) aims to simplify various SCSI target driver (iSCSI, Fibre Channel, SRP, etc) creation and maintenance. The key goals are the clean integration into the scsi-mid layer and implementing a great portion of tgt in user space.…
聊聊Linux用户态驱动设计   序言 设备驱动可以运行在内核态,也可以运行在用户态,用户态驱动的利弊网上有很多的讨论,而且有些还上升到政治性上,这里不再多做讨论.不管用户态驱动还是内核态驱动,他们都有各自的缺点.内核态驱动的问题是:系统调用开销大:学习曲线陡峭:接口稳定性差:调试困难:bug致命:编程语言选择受限:而用户态驱动面临的挑战是:如何中断处理:如何DMA:如何管理设备的依赖关系:无法使用内核服务等.对此,<User-Space Device Drivers in Linux: A F…
[部分内容来自] http://www.wowotech.net/comm/mmc_framework_arch.html 1. 前言 由eMMC基础技术1:MMC简介中MMC.SD.SDIO的介绍可知,这三种技术都是起源于MMC技术,有很多共性,因此Linux kernel统一使用MMC framework管理所有和这三种技术有关的设备. 本文将基于eMMC基础技术1:MMC简介对MMC技术的介绍,学习Linux kernel MMC framework的软件架构. 2. 软件架构 Linux…
转自:http://www.crifan.com/files/doc/docbook/linux_wireless/release/html/linux_wireless.html 版本:v0.3 How to write wireless network card driver under Linux Crifan Li 摘要 本文主要介绍了Linux下的无线网络相关的基础知识,从网络到无线网络再到802.11的无线网络,然后再介绍Linux无线网络的框架,最后介绍如何在Linux的框架下编写…
一.前言 GIC(Generic Interrupt Controller)是ARM公司提供的一个通用的中断控制器,其architecture specification目前有四个版本,V1-V4(V2最多支持8个ARM core,V3/V4支持更多的ARM core,主要用于ARM64服务器系统结构).目前在ARM官方网站只能下载到Version 2的GIC architecture specification,因此,本文主要描述符合V2规范的GIC硬件及其驱动. 具体GIC硬件的实现形态有两…