
Linux
King-Five
这个作者很懒,什么都没留下…
展开
-
ubuntu 16.04 百度云客户端安装和修复bug
ubuntu 16.04 下安装百度云后访问资源网络出错,需要编辑代码的方法解决原创 2016-11-17 11:40:00 · 8008 阅读 · 8 评论 -
Linux RCU 实现
RCU(Read-Copy Update)是数据同步的一种方式,在当前的Linux内核中发挥着重要的作用。RCU主要针对的数据对象是链表,目的是提高遍历读取数据的效率,为了达到目的使用RCU机制读取数据的时候不对链表进行耗时的加锁操作。这样在同一时间可以有多个线程同时读取该链表,并且允许一个线程对链表进行修改(修改的时候,需要加锁)。RCU适用于需要频繁的读取数据,而相应修改数据并不多的情景,例如转载 2017-09-14 09:56:42 · 703 阅读 · 0 评论 -
Linux 驱动之DMA 子系统
DMA子是CPU中实现数据传输的一种方式,CPU配置好DMA控制器之后发起数据传输,CPU本身不参与数据传输的动作中去。DMA种类: 分为外设DMA和DMA控制器。其中外设DMA实现的为特定的外设与内存之间的数据传输,一般是外设向RAM单向传输数据。而DMA控制器则可以实现任意外设与内存之间的数据传输。此时外设跟CPU控制器之间通过流控制信号来保证传输通道的正常运行。DMA传输的数据宽度不固定。原创 2017-04-01 15:55:32 · 12528 阅读 · 0 评论 -
文章标题
在学习第一门编程语言时,就已经介绍了顺序分支、条件分支、循环分支。比如循环分支有for、while、do-while语句。在随后的学校及工作中,如果手工循环一般使用for、while,很少使用do-while,感觉用处不大,但现在看来,do-while大有用途。帮助定义复杂的宏以避免错误 举例来说,假设你需要定义这样一个宏:define DOSOMETHING() foo1(); foo2(转载 2017-03-31 16:56:33 · 279 阅读 · 0 评论 -
Linux 程序之环境变量
linux 程序内部支持环境变量的设定,获取变量值以及环境变量的取消。环境变量是系统运行时根据其值进行一些对应的操作变化。典型如PATH会改变系统的执行文件的搜索路径。linux 命令行中对环境变量的操作有: variable = value — 设定环境变量的值 export variable — 环境变量生效export variable = value —上面两步同时做echo $v原创 2017-03-31 16:36:56 · 509 阅读 · 0 评论 -
AlSA驱动中的PCM DMA
ASoC Platform驱动中使用了PCM DMA的构架来实现了申请DMA通道。首先得probe函数中会调用ret = devm_snd_dmaengine_pcm_register(&pdev->dev, NULL, 0); 为设备注册一个dmaengine_pcm。这个调用除了注册同时还注册了一个释放接口。核心是调用了 snd_dmaengine_pcm_register(dev, co原创 2017-03-31 15:11:27 · 4553 阅读 · 0 评论 -
QT信号和槽
信号和槽信号和槽是一种高级接口,应用于对象之间的通信,它是 QT 的核心特性。要正确的处理信号和槽,必须借助一个称为 moc(Meta Object Compiler)的 QT 工具,该工具是一个 C++ 预处理程序,它为高层次的事件处理自动生成所需要的附加代码。 信号和槽能携带任意数量和任意类型的参数。我们可以将很多信号与单个的槽进行连接,也可以将单个的信号与很多的槽进行连接,(当这个信号被发射时原创 2017-03-30 16:12:59 · 1030 阅读 · 0 评论 -
UIO 驱动中断
UIO 是怎么工作的? 一个设备驱动的主要任务有两个: 1. 存取设备的内存 2. 处理设备产生的中断 对于第一个任务,UIO 核心实现了mmap()可以处理物理内存(physical memory),逻辑内存(logical memory), 虚拟内存(virtual memory)。UIO驱动的编写是就不需要再考虑这些繁琐的细节。 第二个任务,对于设备中断的应答必须在内核空间进行。原创 2017-03-29 16:17:45 · 3566 阅读 · 0 评论 -
UIO 驱动方法
UIO(Userspace I/O)是运行在用户空间的I/O技术。Linux系统中一般的驱动设备都是运行在内核空间,而在用户空间用应用程序调用即可,而UIO则是将驱动的很少一部分运行在内核空间,而在用户空间实现驱动的绝大多数功能!使用UIO可以避免设备的驱动程序需要随着内核的更新而更新的问题.通过UIO的运行原理图可以看出,用户空间下的驱动程序比运行在内核空间的驱动要多得多,UIO框架下运行在内核空原创 2017-03-29 15:21:49 · 5163 阅读 · 0 评论 -
Angstorm 自动登陆设定
angstorm 中没有 init.d 文件。但是用户自动登陆的设定方法却比其他文件系统简单一些。主要是编辑/etc/systemd/system/getty.target.wants/serial-getty\@ttyS0.service修改内容为: change the lineExecStart=-/sbin/getty 115200 %I toExecStart=-/sbin/getty原创 2017-03-08 20:11:53 · 500 阅读 · 0 评论 -
linux定时器的使用
使用定时器的目的无非是为了周期性的执行某一任务,或者是到了一个指定时间去执行某一个任务。要达到这一目的,一般有两个常见的比较有效的方法。一个是用linux内部的三个定时器,另一个是用sleep, usleep函数让进程睡眠一段时间,其实,还有一个方法,那就是用gettimeofday, difftime等自己来计算时间间隔,然后时间到了就执行某一任务,但是这种方法效率低,所以不常用。转载 2017-03-08 16:04:14 · 1669 阅读 · 0 评论 -
centos缺少共享库:libstdc++.so.6
当在centos6.2下执行某些命令时,有缺少共享库的报错:error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory解决办法:1、执行命令: yum whatprovides libstdc++.s转载 2017-02-03 16:49:16 · 1395 阅读 · 0 评论 -
linux下查看网络速度
linux查看网络速度原创 2017-02-13 11:09:50 · 20782 阅读 · 0 评论 -
Linux thread_info 和 current task_struct
对每个进程,Linux内核都把两个不同的数据结构紧凑的存放在一个单独为进程分配的内存区域中:一个是内核态的进程堆栈,另一个是紧挨着进程描述符的小数据结构thread_info,叫做线程描述符。在较新的内核代码中,这个存储区域的大小通常为8192个字节(两个页框)。在linux/arch/x86/include/asm/page_32_types.h中,#define THREAD_SIZE_O转载 2017-12-07 08:59:15 · 1317 阅读 · 0 评论