排序:
默认
按更新时间
按访问量

从零开始学USB(基础知识二)

1.USB相关的硬件 USB设备,从物理上的逻辑结构来说,包含了主机Host端和设备Device端。 其中,主机Host端,有对应的硬件的USB的主机控制器Host Controller,而设备端,连接的是对应的USB设备。 1.1. USB控制器类型:OHCI,UHCI,EHCI,xHCI...

2018-12-08 21:40:55

阅读数:23

评论数:1

从零开始学USB(基础知识一)

1.什么是USB? USB是Universal Serial Bus的缩写,中文译为通用串行总线。 正如USB的第一个单词表述的那样,为了通用。 那么我们看一下,还有哪些总线不是串行的,哪些是不通用的串行总线 下表来自《USB Complete》里面对一些常见总线所总结的一些区别: ...

2018-12-08 19:04:26

阅读数:20

评论数:0

linux设备模型十(bus_device_driver总结)

前面九章分别对linux驱动模型中的细节部分进行了分析,本节作为小节,使用一个简单的例子,分别使用前面分析的内容,实现一个简单的总线,设备,驱动之间的关系。   实现一条总线 #include <linux/device.h> #include ...

2018-11-27 23:10:53

阅读数:18

评论数:0

从零开始之驱动发开、linux驱动(四十一、Linux中旧的时钟管理体系)

老的时钟管理和新的时钟管理并无本质的差别。 这里先列出新的新的common clock framework和老的区别,后面再分析老的实现。 1.老的时钟框架没有区分各种时钟类型,新的框架把时钟分成了五个不同的时钟类型,固定频率的,分频的,开关类型的,多选一类型。 2.老的时钟框架需要厂商自己...

2018-11-25 19:31:33

阅读数:27

评论数:0

从零开始之驱动发开、linux驱动(四十、Linux common clock framework(5)_使用举例)

前面三节分析的3.16.57内核中,三星的驱动中,恰好S5PV210的CPU没有使用Linux common clock framework来处理clk。所以,本文采用4.9.92的内核来分析S5PV210对前面第三节中时钟注册部分的使用。对于老的时钟框架,后面章节可能会用1到2部分说明一下。 ...

2018-11-25 01:08:31

阅读数:107

评论数:0

从零开始之驱动发开、linux驱动(三十九、Linux common clock framework(4)_总结)

前面三节参考蜗窝大神的文章分析了Linux common clock framework的主要实现细节,本篇则是对前三篇从全局的一个整合说明。   common clock framework主要维护着四条链表 static HLIST_HEAD(clk_root_list); stati...

2018-11-24 15:07:22

阅读数:52

评论数:0

从零开始之驱动发开、linux驱动(三十八、Linux common clock framework(3)_实现逻辑分析)

1. 前言 前面两篇clock framework的分析文章,分别从clock consumer和clock provider的角度,介绍了Linux kernel怎么管理系统的clock资源,以及device driver怎么使用clock资源。本文将深入到clock framework的内部...

2018-11-21 20:22:43

阅读数:18

评论数:0

从零开始之驱动发开、linux驱动(三十七、linux中common clock framework[2]_provider)

因为设备树这里还没学习,所以这一节属于provider章节的完全由蜗窝大神的文章来看。我在暂时只分析一些我知道的,同时对设备树这部分的原理和知识也也会尽快学习,补充这篇文章。 http://www.wowotech.net/pm_subsystem/clock_provider.html   ...

2018-11-20 22:36:40

阅读数:13

评论数:0

从零开始之驱动发开、linux驱动(三十六、linux中common clock framework[1]_consoumer)

部分内容来自下面几位博主的文章,如有侵权,联系我删除。 http://www.wowotech.net/pm_subsystem/clk_overview.html https://blog.csdn.net/cc289123557/article/details/80098586   时...

2018-11-17 17:42:59

阅读数:697

评论数:0

从零开始之驱动发开、linux驱动(三十五、利用EXPORT_SYMBOL导出符表原理)

Linux内核头文件提供了一个方便的方法用来管理符号的对模块外部的可见性,因此减少了命名空间的污染(命名空间的名称可能会与内核其他地方定义的名称冲突),并且适当信息隐藏。 如果你的模块需要输出符号给其他模块使用,应当使用下面的宏定义: EXPORT_SYMBOL(name); EXPORT_S...

2018-11-10 20:37:07

阅读数:61

评论数:0

从零开始之驱动发开、linux驱动(三十四、pwm方式的lcd的背光驱动)

上面一节pwm子系统已经可以在应用层注册pwm0来调节我们的lcd背光亮度了。但linux设备中有专门为lcd做了一个调光驱动,而且调光只需要设置一各参数,所以会方便许多,当然也是依赖于pwm子系统来实现的。   这里首先勾选pwm调节背光驱动 Device Drivers ---&am...

2018-11-09 00:03:54

阅读数:23

评论数:0

从零开始之驱动发开、linux驱动(三十三、PWM子系统)

内核中三星默认是没选PWM支持的,我们先配置一下: make menuconfig   Device Drivers ---> [*] Pulse-Width Modulation (PWM) Support ---> ...

2018-11-07 22:05:50

阅读数:18

评论数:0

从零开始之驱动发开、linux驱动(三十二、简单方式的lcd的背光驱动)

前面lcd章节我们知道了LCD的背光可以由两种方式决定调节: 1.一种是I/O口直接输出高低电平来控制背光的量灭,这种方式简单,但不能调背光亮度。 2.另一种是采用PWM调节脉冲宽度的方式来控制背光,这种方式需要采用PWM驱动来实现,优点是可以调节屏幕亮度,节省电量。     lcd背光...

2018-11-06 22:23:59

阅读数:51

评论数:0

从零开始之驱动发开、linux驱动(三十一、framebuffer中对mmap使用)

前面framebuffer章节我们了解了通过write函数来对fremebbuffer中的显存写数据的方式。   在开始分析mmap之前我们再次回顾一下fb_write函数 static ssize_t fb_write(struct file *file, const char __u...

2018-11-04 20:13:39

阅读数:14

评论数:0

从零开始之驱动发开、linux驱动(三十、mmap使用举例)

上节学习了mmap的映射原理,我们知道mmap映射分为四步: 1.在进程的虚拟地址空间的,创建虚拟映射区域(vm_area_struct) 2.文件物理地址和进程虚拟地址的一一映射关系(remap_pfn_range 将内核内存重新映射到用户空间) 3.进程发起对这片映射空间的访问,引发缺页...

2018-10-30 22:08:30

阅读数:18

评论数:0

从零开始之驱动发开、linux驱动(二十九、mmap原理)

一、概念 mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再调用r...

2018-10-29 23:33:16

阅读数:29

评论数:0

操作系统——线程

一、引入多线程技术的动机 在传统的操作系统中,进程是系统进行资源分配的基本单位,按进程为单位分给存放其映象所需要的虚地址空间、执行所需要的主存空间、完成任务需要的其他各类外围设备资源和文件。同时,进程也是处理器调度的基本单位,进程在任一时刻只有一个执行控制流,通常将这种结构的进程称单线程(结构)...

2018-10-29 20:21:13

阅读数:16

评论数:0

操作系统——进程

一、进程 1、什么是进程 进程的概念是操作系统中最基本、最重要的概念。它是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律而引进的一个新概念,所有多道程序设计的操作系统都建立在进程的基础上。操作系统专门引入进程的概念,从理论角度看,是对正在运行的程序活动规律的...

2018-10-28 22:55:04

阅读数:60

评论数:0

从零开始之驱动发开、linux驱动(二十八、framebuffer驱动框架)

框架 1.注册一个framebuffer类。 2.注册一个主设备号,因为fb个数通常比较少,所以可以用老的接口统一注册。 3.为2中的注册实现通用的fops,注意这里是通用的,特殊的架构在通用的里面还是要调用专门fb注册时实现的操作接口。(参考下面) 4.提供统一的注册,卸载接口。 5....

2018-10-26 21:10:13

阅读数:33

评论数:0

从零开始之驱动发开、linux驱动(二十七、修改三星平台framebuffer参数支持我们的LCD)

修改三星平台的fb支持我们的单板上的fb,只需要很少的修改。   1.6个时序参数修改   下面仔细说一下fb_videomode各个成员的意义: 名称 在数据手册中的简称 中文名 意义 备注 name No 名字 液晶屏名字(可选) ...

2018-10-26 00:37:22

阅读数:57

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭