Linux内核开发之内存与I/O访问(三)

一般情况下,用户空间是不可能也不应该直接访问设备的,但是设备驱动程序可实现mmap()函数,这个函数可使得用户空间能直接访问设备的物理地址。实际上,mmap()S实现了这样的一个映射过程,它将用户空间的一段内存与设备内存关联,当用户访问用户空间的这段地址范围时,实际上会转化为对设备的访问。 ...

2017-09-28 10:13:08

阅读数:74

评论数:0

Linux内核开发之内存与I/O访问(二)

对于一块实际的设备而言,通常会提供一组寄存器来用于控制设备,读写设备和获取设备状态,也就是我们常说的控制寄存器,数据寄存器和状态寄存器。这些寄存器可能位于I/O空间(这时叫做I/O端口),也可能位于内存空间(对应的内存空间被成为I/O内存)。在Linux中提供了一系列的I/O端口和I/O内存操作的...

2017-09-28 10:11:44

阅读数:103

评论数:0

Linux内核开发之内存与I/O访问(一)

“小王,今天咱们开始讲有关内存和I/O访问的内容,心里先要有点低,这部分内容还是有点烦,有点难的哦”说着话,我心里都没底,怕吓着小王,不瞒你说,当时看这部分,我可是没少费劲。 “哦,那咋办,不能不学是不?没事,有小涛哥在,俺就不怕”小王信心十足的说。 “哦!看不出来,还让你来安慰我了”看着小王...

2017-09-28 10:07:01

阅读数:77

评论数:0

自旋锁spin_lock和raw_spin_lock

1.  临界区(Critical Section) 我们知道,临界区是指某个代码区间,在该区间中需要访问某些共享的数据对象,又或者是总线,硬件寄存器等,通常这段代码区间的范围要控制在尽可能小的范围内。临界区内需要对这些数据对象和硬件对象的访问进行保护,保证在退出临界区前不会被临界区外的代码对这些...

2017-09-25 15:03:25

阅读数:66

评论数:0

自旋锁spin_lock、spin_lock_irq 和 spin_lock_irqsave 分析

自旋锁的初衷:在短期间内进行轻量级的锁定。一个被争用的自旋锁使得请求它的线程在等待锁重新可用的期间进行自旋(特别浪费处理器时间),所以自旋锁不应该被持有时间过长。如果需要长时间锁定的话, 最好使用信号量。 单处理器的自旋锁: 首先,自旋锁的目的如果在系统不支持内核抢占时,自旋锁...

2017-09-25 14:50:56

阅读数:141

评论数:0

逆变器的简介、工作原理及主要构成

逆变器,英文inverter,是一种电源转换装置,可将12V或24V的直流电转换成230V、50Hz交流电或其它类型的交流电。它输出的交流电可用于各类设备,最大限度地满足移动供电场所或无电地区用户对交流电源的需要。 简介 逆变器又称逆变电源,是一种电源转换装置,可将12V或24V的直流电转换成...

2017-09-25 10:44:48

阅读数:470

评论数:0

LTTng 简介&使用实战

LTTng,它是用于跟踪 Linux 内核、应用程序以及库的系统软件包。LTTng 主要由内核模块和动态链接库(用于应用程序和动态链接库的跟踪)组成。它由一个会话守护进程控制,该守护进程接受来自命令行接口的命令。babeltrace 项目允许将追踪信息翻译成用户可读的日志,并提供一个读追踪库,即 ...

2017-09-25 10:36:18

阅读数:152

评论数:0

伺服和变频器的区别

变频器 伺服 驱动器

2017-09-20 18:55:36

阅读数:369

评论数:0

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