自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (2)
  • 收藏
  • 关注

原创 混杂设备驱动模型解析

1.混杂设备概念描述在linux系统,存在一类设备字符设备,它们拥有相同的设备号10,但次设备号不同,我们称为混杂设备,是字符设备的一个分支,所有混杂涉笔形成一个链表,对设备访问时内核根据次设备号查找响应的混杂设备。 linux驱动模型分多,但字符设备,混杂设备,网络设备都会使用一种结构来描述该设备。 linux中使用struct miscdevice来描述混杂设备1.1初始化描述结构miscd

2016-08-07 21:11:17 518 8

原创 my_dev: probe of my_dev failed with error 84

在进行总线设备驱动程序开发实验过程中 我们执行insmod bus.ko //加载总线模块程序insmod driver.ko//向总线挂载设备驱动程序insmod device.ko//向总线挂载设备[ 109.061662] the bus’s driver find the device it can handle [ 109.061681] [ 109.067210] my_de

2016-08-04 15:36:36 724

原创 error: 'TASK_UNINTERRUPTIBLE' undeclared (first use in this function)和error: 'TASK_NORMAL' undeclare

在编写一个阻塞型驱动程序时,编译出现错误。 root@ubuntu:/home/linuxsystemcode/devicedriver/KEY/HDKEY# make /home/linuxsystemcode/devicedriver/KEY/HDKEY/key.c:43: error: 'TASK_NORMAL' undeclared (first use in this funct

2016-08-04 00:43:27 5002

原创 linux设备驱动中断程序深度完全解析

裸机中断 1.中断统一入口 2.事先注册中断处理程序 3.根据中断源的编号处理程序linux系统: irq.svc中断入口获得中断源的编号 根据中断号找到irq_desc结构,在irq_desc结构中找到action结构,执行用户注册中断处理函数 驱动程序支持中断应该做什么 驱动程序实现中断处理程序, 注册到中断号所对应irq_desc中 linux中断处理程序设计中断注册,中断处

2016-08-04 00:30:28 698

原创 exynos4412开发板LED驱动程序

本文将介绍在EXYNOS4412平台上实现对LED灯开关的控制首先定义命令在led.h文件中#define LED_MAGIC 'L' #define LED_ON _IO(LED_MAGIC,1) #define LED_OFF _IO(LED_MAGIC,0) LED2对应控制寄存器为GPL2 LED3对应控制寄存器为GPK1

2016-08-03 13:55:13 4154

原创 字符设备控制技术

字符设备控制技术1.设备控制理论1.1作用1.2应用程序接口1.3设备驱动方法2.设备控制实现2.1定义命令2.2实现设备方法3实现字符设备控制1.1.控制理论作用大部分驱动程序除了需要提供读写设备的能力以外,还需要具备控制设备的能力。1.2应用程序接口在用户空间,使用ioctl系统调用来控制设备,原型如下: int ioctl(int fd,unsigned long cmd,…) fd:要控

2016-08-03 12:02:39 396

原创 字符设备驱动代码完整分析

1.编译、安装驱动程序 linux系统中,驱动程序通常采用内核模块的程序结构来进行编码。因此编译、安装驱动程序实质是编译、安装内核模块memdev.c #include <linux/module.h> #include <linux/fs.h> #include <linux/init.h> #include <linux/cdev.h> #include <asm/uaccess.h> int

2016-08-03 11:15:39 2917

原创 字符设备驱动开发流程详解

字符驱动相关概念解析一、驱动初始化1.1分配设备描述结构1.2初始化设备描述结构1.3.注册设备描述结构1.4.硬件初始化二、实现设备操作2.1open2.2read2.3.write2.4.lseek2.5close2.6参数分析三、驱动注销**字符驱动相关概念解析1设备描述结构* 在任何一种驱动模型,字符、网卡驱动等,设备都会用内核的一种结构来描述。我们的字符设备在内核中使用struct cd

2016-08-03 11:08:29 1159

原创 设备驱动开发前奏

1.linux驱动分类字符设备、块设备、网络设备 字符设备是一种按字节来访问的设备,字符驱动负责驱动字符设备。最小访问和写入的数据量为字节,通过文件方式完成对字符设备的访问。 块设备以块(通常是512字节或者512字节的倍数)为最小传输单位的设备,块设备不接受字节处理数据 网络接口设备可以是硬件设备:eth0;也可以是纯粹的软件设备(L0+loop),网络接口负责发送和接收数据。 总线分类法

2016-08-03 10:44:24 409

原创 insmod: can't insert 'xxx.ko': Success

本人在加载按键中断分层驱动时遇到以下问题:insmod key.koinsmod: can’t insert ‘key.ko’: Success从来没有遇到这个问题,网上关于这个问题几乎是没有答案的,有的人怀疑是开发板用的内核,和编译内核模块用的是同一个内核源码包,用file 命令看一下 .ko 文件适用的平台。但不是问题的关键,无法解决。 其实问题很简单: module_init()函数没有加

2016-08-03 10:30:02 3563

原创 linux系统调用

什么是系统调用? 内核空间的实现函数被用户空间的函数调用。 系统调用的工作流程分析 用户空间进入内核空间,arm处理器的软中断swi执行,实现用户空间到内核空间,通过内核函数编号调用内核函数实现新的系统调用。

2016-08-03 10:19:14 319

原创 内核链表

内核链表深度分析 链表是一种常用的数据结构,它通过指针将一系列数据节点连接成一条数据链。相对于数组,链表具有更好的动态性,建立链表时无需知道数据总量,可以随机分配空间,可以高效地在链表中任意位置实时插入或者删除数据。链表的开销主要是访问的顺序和组织链的空间损失。

2016-08-01 15:45:07 289

linux下QT串口编程文件

linux下QT串口编程文件

2017-01-01

vc++6.0.rar

应用于win8C、c++语言编程软件,可以适用于目前大部分win8电脑,对于初学者本软件时很不错的选择,本人亲自使用

2015-04-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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