Linux Regulator Framework(2)_regulator driver

作者:wowo 发布于:2015-4-16 22:18 分类:电源管理子系统

本文从regulator driver的角度,描述怎样基于regulator framework编写regulator驱动。同时,以此为契机,学习、理解regulator有关的物理特性,以便能够更好的使用它们。

阅读全文>>

标签: Linux driver framework regulator

评论(24) 浏览(33472)

linux usb 摄像头测试

作者:syhdjf 发布于:2015-4-12 12:40

在调试一款linux下的usb摄像头,通过配置内核已经支持,log信息如下

[    3.888301] usb 2-1.2: new high-speed USB device number 3 using musb-hdrc
[    4.117340] usb 2-1.2: New USB device found, idVendor=058f, idProduct=5608
[    4.124577] usb 2-1.2: New USB device strings: Mfr=3, Product=1, SerialNumber=0
[    4.132276] usb 2-1.2: Product: USB 2.0 Web Camera
[    4.137322] usb 2-1.2: Manufacturer: Alcor Micro, Corp.
[    4.217896] input: USB 2.0 Web Camera as /devices/ocp.3/47400000.usb/47401c00.usb/musb-hdrc.1.auto/usb2/2-1/2-1.2/2-1.2:1.0/input/input1
root@am335x-evm:~# dmesg | grep video
[    0.252158] Linux video capture interface: v2.00
[    1.512511] usbcore: registered new interface driver uvcvideo
[    4.187567] uvcvideo: Found UVC 1.00 device USB 2.0 Web Camera (058f:5608

想要通过luvcview测试下,但是编译时总是通不过,把头文件#include <linux/videodev.h> 改成了videodev2.h还是通不过,不知道luvcview能不能在linux3.14下运行?

各位是否有什么好的测试摄像头的方法或软件?能否提供下,小弟先行谢过。

标签: luvcview linux摄像头

评论(5) 浏览(20567)

ARM CPU性能实验

作者:linuxer 发布于:2015-4-9 18:13

一般工程师的直觉是当提升了CPU的运行频率,那么性能应该是呈现线性的关系,例如如果CPU跑260MHz,当降低到130MHz后,其性能应该会降低一半。实际情况如何呢?我们来做一个实验看看。

阅读全文>>

标签: ARM性能

评论(27) 浏览(17626)

linux 串口调试方法

作者:syhdjf 发布于:2015-4-8 16:41

最近项目上用到linux下的串口,与下级模块的通信出了些问题,所以写了个小程序想要测试下串口,物理连接是PC端串口调试助手通过usb转串口 线接到板子的uart,最终的效果是,板子的uart能发不能收,发出去的数据在PC端可以接收到,PC端串口调试助手发送到板子uart的信 息,uart不能接收,read函数一直返回-1.

所以想请教下各位有没有什么好的方法测试一下linux的串口?

阅读全文>>

标签: Linux uart

评论(3) 浏览(17281)

Linux时间子系统之(十三):Tick Device layer综述

作者:linuxer 发布于:2015-3-26 18:50 分类:时间子系统

时间子系统中的tick device layer主要涉及kernel/time/tick-*相关的文件,本文的主要内容就是从high level层次(不纠缠在具体的每行代码)描述tick device layer的运作逻辑。

如 果说每个.c文件是一个模块的话,我们可以首先简单描述tick device layer的各个模块。tick-common.c描述了tick device的一些通用操作,此外,该文件还包括了周期性tick的代码。想要让系统工作在tickless mode(更准确应该是Dynamic tick模块,也就是说根据系统的当前运行状况,动态的启停周期性tick)需要两个模块的支持,分别是tick-oneshot.c和tick- sched.c。tick-oneshot.c主要是提供和tick device的one shot mode相关的操作接口函数。从字面上看,tick-sched.c是和tick的调度相关,所谓tick的调度包括两个方面,一方面是在系统正常运行过 程中,如何产生周期性的tick event,另一方面是在系统没有任务执行,进入idle状态的时候,如何停止周期性的tick,以及恢复的时候如何更新系统状态(例如:jiffies 等)。tick-broadcast.c和tick-broadcast-hrtimer.c是和tick broadcast相关,本文不会涉及这部分的内容,会有专门的文档描述它。

本文的第二章描述了关于tick device概述性的内容,随后在第三章描述了tick device layer是如何初始化的,由于tick device开始总是工作在periodic mode,因此,本章也就顺便描述了周期性tick的运作。如果硬件以及系统配置允许,系统中的tick device会切换one shot mode,从而进入tickless mode,因此第四章描述了在配置了高精度timer的情况下,dynamic tick如何运作之机理,第五章和第四章类似,只不过描述的是没有配置高精度timer的情况。

阅读全文>>

标签: Device tick tickless NO_HZ

评论(45) 浏览(31831)

对heziq网友问题的回答

作者:linuxer 发布于:2015-3-23 19:03

heziq网友在《linux kernel的中断子系统之(四):High level irq event handler》文档中提出了若干个问题,由于在回复中无法图形表达,因此单独出一份文档来回答,希望可以有所帮助。当然,由于他提出的问题和硬件电路设计有关,这里我只是表达我自己的观点(毕竟出身是软件工程师),如果有误,请不吝指出。

阅读全文>>

标签: 上拉电阻 下拉电阻

评论(9) 浏览(13116)

Linux Regulator Framework(1)_概述

作者:wowo 发布于:2015-3-20 21:42 分类:电源管理子系统

Regulator,中文名翻译为“稳定器”,在电子工程中,是voltage regulator(稳压器)或者current regulator(稳流器)的简称,指可以自动维持恒定电压(或电流)的装置。

voltage regulator最早应用于功放电路中,主要用于滤除电源纹波(100或者120Hz)和噪声,以及避免“输出电压随负载的变化而变化”的情况。后来,随着IC级别的regulator的出现(便宜了),voltage regulator几乎存在于任何的电子设备中。例如我们常见的嵌入式设备中,基本上每一种电压,都是经过regulator输出的。

相比较voltage regulator的广泛使用,很少见到current regulator的应用场景(相信大多数的嵌入式工程师都没有接触过)。它一般存在于电流源中,除此之外,它广泛存在于近年来新兴的LED照明设备中。current regulator在LED设备中的作用主要有两个:避免驱动电流超出最大额定值,影响其可靠性;获得预期的亮度要求,并保证各个LED亮度、色度的一致性。

虽然原理比较复杂,但从设备驱动的角度看,regulator的控制应该很简单,就是输出的enable/disable、输出电压或电流的大小的控制。那么,linux kernel的regulator framework到底要做什么呢?这就是本文的目的:弄清楚regulator framework背后思考,并总结出其软件架构(和common clock framework类似,consumer/provider/core)。

注1:有关regulator的描述,参考自“http://sound.westhost.com/articles/vi-regulators.html”。

注2:kernel中有关regulator framework的介绍写的相当好(Documentation\power\regulator\*),因此本文大部分内容会参考这些文件。

阅读全文>>

标签: Linux framework regulator 软件架构

评论(18) 浏览(44616)

Linux power supply class(1)_软件架构及API汇整

作者:wowo 发布于:2015-3-13 22:14 分类:电源管理子系统

power supply class为编写供电设备(power supply,后面简称PSY)的驱动提供了统一的框架,功能包括:

1)抽象PSY设备的共性,向用户空间提供统一的API。

2)为底层PSY驱动的编写,提供简单、统一的方式。同时封装并实现公共逻辑,驱动工程师只需把精力集中在和硬件相关的部分即可。

本文将从设计思路、软件架构、API说明以及怎么编写power supply driver四个角度,介绍power supply class。并会在下一篇文章中,分析power supply class的内部逻辑。如果有时间,会在第三篇文章中,以android系统为例,介绍应用软件怎样利用power supply class,监控系统的供电状态。

注:其实所有的class(如input subsystem),思路都是这样的----抽象共性、统一接口、屏蔽细节。我们在“Linux设备模型(7)_Class”中介绍过,本文在介绍power supply class同时,也以此为例,进一步理解设备模型中class的存在意义和使用方法。

阅读全文>>

标签: Linux class psy

评论(43) 浏览(46243)

计算机科学基础知识之(六):理解栈帧

作者:linuxer 发布于:2015-3-12 13:00 分类:基础学科

本文以一个简单的例子来描述ARM linux下的stack frame。

本文也是对tigger网友问题的回复。

阅读全文>>

标签: stack frame 栈帧

评论(8) 浏览(23023)

计算机科学基础知识(五): 动态链接

作者:linuxer 发布于:2015-3-10 18:15 分类:基础学科

本文以类似hello world这样的简单程序为例,描述了动态连接的概念。第二章描述了整个动态链接的大概过程,随后的两章解析了程序访问动态库中的数据和调用动态库中函数的过程。

注意:阅读本文之前需要先了解relocatable object file静态链接以及动态库和PIC这些内容。

阅读全文>>

标签: dynamic link 动态链接

评论(2) 浏览(14444)

Copyright @ 2013-2015 蜗窝科技 All rights reserved. Powered by emlog