- 博客(13)
- 收藏
- 关注
转载 Linux平台总线驱动设备模型
platform总线是一种虚拟的总线,相应的设备则为platform_device,而驱动则为platform_driver。Linux 2.6的设备驱动模型中,把I2C、RTC、LCD等都归纳为platform_device。总线将设备和驱动绑定,在系统每注册一个设备的时候,会寻找与之匹配的驱动;相反的,在系统每注册一个驱动的时候,会寻找与之匹配的设备,而匹配由总线完成。Linux2.6系统中定
2017-12-12 15:59:29 625
转载 linux字符驱动之异步通知按键驱动
在上一节里,我们在中断的基础上添加poll机制来实现有数据的时候就去读,没数据的时候,自己规定一个时间,如果还没有数据,就表示超时时间。在此以前,我们都是让应用程序主动去读,那有没有一种情况,当驱动程序有数据时,主动去告诉应用程序,告诉它,有数据了,你赶紧来读吧。答案当然是有的,这种情况在linux里的专业术语就叫异步通知。上一节文章链接:http://blog.csdn.net/xiaoxiao
2017-12-12 13:56:52 562
转载 linux字符驱动之poll机制按键驱动
在上一节中,我们讲解了如何自动创建设备节点,实现一个中断方式的按键驱动。虽然中断式的驱动,效率是蛮高的,但是大家有没有发现,应用程序的死循环里的读函数是一直在读的;在实际的应用场所里,有没有那么一种情况,偶尔有数据、偶尔没有数据,答案当然是有的。我们理想当然的就会想到,当有数据的时候,我们才去读它,没数据的时候我们读它干啥?岂不浪费劳动力? 上一节文章链接:http://blog.csdn.net
2017-12-12 13:42:53 586
转载 linux字符驱动之中断按键
在上一节中,我们讲解了如何自动创建设备节点,实现一个查询方式的按键驱动。测试的时候,大家都看到了,使用查询式的方法,占用CPU的利用率高达99%,那么有没有好的办法来取代这惨不忍睹的方法呢?答案当然是有的。上一节文章链接:http://blog.csdn.net/xiaoxiaopengbo/article/details/78779974这一节里,我们使用中断的方法来实现按键驱动。问:内核的中断
2017-12-12 11:18:42 637
转载 linux字符驱动之查询按键
在上一节中,我们讲解了如何自动创建设备节点,并用“最笨”的方法实现点亮LED。上一节文章链接:http://blog.csdn.net/xiaoxiaopengbo/article/details/78779897这一节里,我们基于上一节的基础上,稍微改动一下,来实现一个查询方式的按键驱动。问:既然是基于上一节的基础,只是稍微改动,改动了哪些?答:框架是不变的,还是字符设备框架,硬件操作有稍微变动
2017-12-12 10:58:05 624
转载 linux字符驱动之点亮LED
上一节中,我们讲解了如何自动创建设备节点,这一节我们在上一节的基础上,实现点亮LED。上一节文章链接:http://blog.csdn.net/lwj103862095/article/details/17470573驱动里面能够用很多种方法实现LED驱动,其中有本节的字符驱动(最笨的方法)、混杂设备驱动、使用内核GPIO函数接口、使用通用的平台设备驱动的方法等。但是,不要因为本节是最笨的方法,就
2017-12-12 10:52:42 700
转载 linux字符驱动之自动创建设备节点
上一节中,我们是手工创建设备节点,大家肯定也会觉得这样做太麻烦了。上一节文章链接:http://blog.csdn.net/xiaoxiaopengbo/article/details/78779613问:能不能让系统自动创建设备节点?答:可以,linux有udev、mdev的机制,而我们的ARM开发板上移植的busybox有mdev机制,那么就使用mdev机制来自动创建设备节点。问:文件系统里,
2017-12-12 10:47:44 745
原创 linux字符驱动之初见
学习驱动也有长达一年多的时间了,受益最深的就是看韦东山老师的视频,如今已经几乎将二期三期的视频全部看完,甚至已经将二期视频看过好几遍,为了再次加深印象,我将韦老师的源码自己全部编写一遍。将所有遇到的问题,记录在此。觉得看了韦老师的视频,再看其他视频都是弱爆了。由于是文章记录,不可能写的非常详细,只摘录关键点,想具体详细的深入,还请去看韦老大的视频吧。这篇文章是主要是讲解字符驱动的框架,并没有涉及高
2017-12-12 10:32:23 669 1
原创 linux第一个驱动之helloworld
第一个驱动——helloworld运行环境:JZ2440开发板,内核版本Linux (none) 2.6.22.6 #2 Sat Dec 2 18:58:18 CST 2017 armv4tl unknown开发环境:ubuntu 1204 虚拟机,在虚拟机gedit编辑实验环境前提条件:拥有一个制作好的NFS文件系统/**********************************hello
2017-12-12 09:54:35 763
转载 嵌入式链接脚本(Link Script)介绍
1. 概论每一个链接过程都由链接脚本(linkerscript, 一般以lds作为文件的后缀名)控制. 链接脚本主要用于规定如何把输入文件内的section放入输出文件内, 并控制输出文件内各部分在程序地址空间内的布局. 但你也可以用连接命令做一些其他事情.连接器有个默认的内置连接脚本, 可用ld--verbose查看. 连接选项-r和-N可以影响默认的连接脚本(如何影响).-T选项用以指定自己的
2017-12-07 16:58:04 5815
转载 ARM-CP15寄存器组介绍(开启I/D catch,MMU都需要此寄存器)
访问CP15寄存器指令的编码格式及语法说明如下: 31 28 27 24 23 21 20 19 16 15 12 11 8 7 5 4 3 0 cond 1 1 1 0 opcode_1 L cr n rd 1 1 1 1 opcode_2 1 crm 说明::协处理器行为操作码,对于CP15来说,永远为0b000,否则结果未知。:不
2017-12-07 16:54:07 2777
原创 arm汇编总结---让汇编不再神秘
一.指令格式{}{S} {Rd}, {Rn}, {shifer_operand}: 指令操作符编码,如 LDR、STR 等。{}: 指令执行的条件编码,如 EQ、NE 等。{S}: 决定指令的执行是否影响 CPRS 的值。{Rd}: 目标寄存器编码。{Rn}: 包含第一个源操作数的寄存器编码。{{shifer_operand}: 第二个操作数以三星2440
2017-12-02 11:34:51 3174 1
原创 arm架构寄存器介绍
ARM处理器工作模式一共有 7 种 :USR 模式 正常用户模式,程序正常执行模式FIQ模式(Fast Interrupt Request) 处理快速中断,支持高速数据传送或通道处理IRQ模式 处理普通中断SVC模式(Supervisor) 操作系统保护模式,处理软件中断swi reset ABT 中止(Abort mode){数据、指令} 处理存储器故障
2017-12-02 11:25:51 4862
stm32f1_mrvl88w8801应用笔记_20191220.pdf
2019-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人