![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LINUX相关
安卓彭
专注Android开发近10年,擅长Framework和App开发。目前主要从事车载Framework开发。
展开
-
linux驱动学习笔记1--字符型驱动的编写
memdev-driver为一个虚拟设备的驱动程序,这个虚拟设备就是一块内存。memdev-app是对应的应用程序。read-mem.c , write-mem.c是操作设备文件memdev0的read-mem2.c ,write-mem2.c是操作设备文件memdev1的整套驱动及应用软件的开发流程如下:1.写好驱动程序2.为驱动写Makefile,且Makefile文件要与原创 2014-07-04 19:14:17 · 606 阅读 · 0 评论 -
linux下在qtcreator里装qwt插件
文章在我的qq空间里,地址:http://user.qzone.qq.com/1208963539/2原创 2014-12-20 22:36:55 · 544 阅读 · 0 评论 -
linux usb驱动框架(一)
一下代码来自韦东山视频,我只是加了些注释/* * drivers\hid\usbhid\usbmouse.c */#include #include #include #include #include #include static struct usb_device_id usbmouse_as_key_id_table [] = {{ USB_INTERFACE_INFO(USB_INT原创 2014-12-07 10:57:30 · 411 阅读 · 0 评论 -
s3c2440触摸屏驱动
以下程序来自韦东山视频里讲解的驱动,我只是在其中添加了些注释#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include struct s3c_ts_regs {unsigned long原创 2014-12-06 20:38:18 · 316 阅读 · 0 评论 -
tiny6410按键驱动(五)---同步互斥阻塞
驱动代码如下:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2014-12-24 20:55:25 · 390 阅读 · 0 评论 -
tiny6410按键驱动(六)---异步通知
驱动代码如下:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2014-12-24 21:00:02 · 403 阅读 · 0 评论 -
tiny6410按键驱动总结
写了7个版本的按键驱动: 1.查询法:在应用程序的while循环里不停的调用read函数读取按键值,太耗费CPU资源了。 2.中断发:同样是在一个while循环里不停的调用read函数读按键值,但是这个程序里用了个等待队列,没有按键按下时,调用read函数进程会休眠。当有按键按下时,在中断服务程序里会唤醒休眠的进程,从而读取到按键值。相对于查询法,耗费的CPU资源少了很原创 2014-12-24 21:23:00 · 479 阅读 · 0 评论 -
tiny6410按键驱动(一)---驱动框架
看了韦东山老师的视频后,自己动手写了几个驱动。这些驱动都是照着韦东山老师程序的框架写的,但绝非复制粘贴。之前我看了视频,再看看代码,感觉蛮简单的,以为自己会了。但是当我自己写的时候才发现,经常出现各种错误。我用的开发板是tiny6410,韦老师用的是2440。我板子上用的内核是linux-2.6.38,韦老师用的是linux-2.6.22.6,所以有些内核函数有些区别。还有一个奇葩的问题是我在开发原创 2014-12-24 20:28:20 · 506 阅读 · 0 评论 -
tiny6410按键驱动(二)---查询法
废话少说,直接贴代码吧:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #inc原创 2014-12-24 20:32:11 · 343 阅读 · 0 评论 -
tiny6410按键驱动(四)---poll机制
代码如下:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #原创 2014-12-24 20:52:17 · 471 阅读 · 0 评论 -
tiny6410按键驱动(七)---定时器延时消抖
驱动程序如下:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2014-12-24 21:19:03 · 528 阅读 · 0 评论 -
tiny6410按键驱动(三)---中断发
驱动代码如下:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2014-12-24 20:36:00 · 367 阅读 · 0 评论 -
Linux设备驱动总的并发控制
并发和竞态广泛存在,中断屏蔽,原子操作,自旋锁和信号量都是解决并发问题的机制。中断屏蔽很少单独被使用,原子操作只能针对整数进行,因此自旋锁和信号量应用最为广泛。 自旋锁会导致死循环,锁定期间不允许阻塞。驱动工程师应谨慎使用自旋锁,而且在使用中还要特别注意如下几个问题: 1.自旋锁实际上是忙等锁,当锁不可用时,CPU 一直循环执行“测试并设置”该锁直到可用而取得该锁, C原创 2014-12-04 08:56:04 · 394 阅读 · 0 评论 -
fedora17下安装网卡驱动
我的电脑是联想G480,最近装le原创 2014-06-17 17:20:58 · 864 阅读 · 0 评论 -
fedora 17 添加yum更新源
fedora17 正式版出来了,禁不住那华丽的烟花桌面的诱惑,我在virtual box安装体验了一下。等有时间再试一下硬盘安装方法,今天总结一下怎样添加fedora 17 yum 软件源。fedora中的yum源列表不像ubuntu那样全在一个sources.list文件中,而是每个源对应一个.repo文件,(这样分开管理会方便一些)它们都放在同一个目录下,路径是:/etc/yum.re转载 2014-08-07 21:37:08 · 451 阅读 · 0 评论 -
linux内核简介
Linux内核结构 Linux内核主要由五个子系统组成:进程调度,内存管理,虚拟文件系统,网络接口,进程间通信。1.进程调度(SCHED):控制进程对CPU的访问。当需要选择下一个进程运行时,由调度程序选择最值得运行的进程。可运行进程实际上是仅等待CPU资源的进程,如果某个进程在等待其它资源,则该进程是不可运行进程。Linux使用了比较简单的基于优先级的进程调度算法转载 2014-09-23 19:49:19 · 282 阅读 · 0 评论 -
tiny6410学习笔记--在Qtopia2.2.0中添加自定义程序组
原创 2014-11-15 21:02:54 · 247 阅读 · 0 评论 -
linux学习笔记--在qtcreator上安装qwt插件
linux学习笔记2-在qtcreator上安装qwt插件----------------------------背景------------------------------------------------------------------------------------平台:装有fedora17的虚拟机VM------------------------原创 2014-06-18 19:36:12 · 862 阅读 · 0 评论 -
Linux内核与根文件系统的关系
Linux内核与根文件系统的关系开篇题外话:对于Linux初学者来说,这是一个很纠结的问题,但这也是一个很关键的问题!一语破天机: “尽管内核是 Linux 的核心,但文件却是用户与操作系统交互所采用的主要工具。这对 Linux 来说尤其如此,这是因为在 UNIX 传统中,它使用文件 I/O 机制管理硬件设备和数据文件。”一.什么是文件系统文件系统指文件存在的物理空间,linu转载 2014-11-16 14:28:07 · 340 阅读 · 0 评论 -
字符设备驱动实例
/*本程序通过创建量数组来模拟一个字符设备*//*驱动程序如下*/#include #include #include #include #include int dev1_registers[5];int dev2_registers[5];struct cdev cdev; dev_t devno;/*文件打开函数*/in原创 2014-11-25 16:32:04 · 458 阅读 · 0 评论 -
如何开启VMware串口
如何开启VMware串口先前在玩GEC2410时,有个想法,就是在linux下进行调试,由于目标板上电或复位时会发送信息给PC机的串口,这已在windows下实现过,于是想在linux下看看效果,可是当时我在linux下设好串口后,发现一点反应都没有,当时以为是自己没有安装交叉编译环境,于是昨天晚上把嵌入式 linux下的交叉编译环境装好后,心想这下应该可以拉,没想到我上电目标板,linu转载 2014-11-21 21:24:33 · 766 阅读 · 0 评论 -
tiny6410异常处理例程分析
.globl _start_start:/* 0 地址 */b reset /* 复位时,cpu跳到0地址 */ldr pc, =undefined_instruction /* cpu遇到不能识别的指令时 */ldr pc, _vector_swi /* 当执行swi指令时, 进入SVC模 式 */@ldr原创 2014-11-21 22:42:57 · 317 阅读 · 0 评论 -
linux下进程间通信
//代码singal.c#include#includevoid sig_deal(){ static int cnt=0; printf("receive singal SIGUSR1:%d times",++cnt);}int main(int argc,char **argv){ signal(SIGUSR1,sig_dea原创 2014-11-27 15:49:55 · 314 阅读 · 0 评论 -
linux杂项设备驱动框架
Linux里面的misc杂项设备是主设备号为10的驱动设备,它的注册跟使用比较的简单,所以比较适用于功能简单的设备。它有自己的设备结构体: struct miscdevice { int minor; const char *name; //在/dev/下创建的节点的名字 con原创 2014-12-17 20:00:09 · 477 阅读 · 0 评论 -
解决6410执行rmmod出错的办法
原文地址:http://blog.csdn.net/cp1300/article/details/7994014最近看了一段时间韦东山老师的视频教程,看就了印象不深,还是动手写吧。于是就照着韦老师的驱动框架写了个小驱动,编译没问题,执行insmod命令也没问题,可就是在执行rmmod命令时老师出现错误“ Segmentation fault“ ,在/dev下的设备节点依然存在。昨晚折腾了转载 2014-12-13 15:44:13 · 1038 阅读 · 0 评论