随笔分类 -  Linux驱动相关

Linux内核中的机制学习总结
摘要:一、驱动中的poll机制 1.简介:select()和poll()系统调用的本质一样,前者在 BSD UNIX 中引入的,后者在 System V 中引入的。 应用程序使用 select() 或 poll() 调用设备驱动程序的 file_operations 的 poll() 函数。 2.实现(1 阅读全文

posted @ 2019-01-13 11:43 Hello-World3 阅读(196) 评论(0) 推荐(0)

Linux DMA学习笔记
只有注册用户登录后才能阅读该文。

posted @ 2019-01-12 18:58 Hello-World3 阅读(33) 评论(0) 推荐(0)

USB设备驱动_WDS
摘要:1. usb_alloc_dev中的 bus_type 中指定了匹配函数,和uevent中的环境参数。 >不同的bus_type的匹配函数可能是不同的,uevent的环境变量参数也可能是不同的。 2. 推荐《LINUX内核源代码情景分析》,里面讲USB控制器源代码讲解的非常清晰。 3.当USB设备插 阅读全文

posted @ 2018-12-31 21:59 Hello-World3 阅读(557) 评论(0) 推荐(0)

Linux块设备驱动_WDS
摘要:推荐书:《Linux内核源代码情景分析》 1.字符设备驱动和使用中等待某一事件的方法①查询方式②休眠唤醒,但是这种没有超时时间③poll机制,在休眠唤醒基础上加一个超时时间④异步通知,异步通知实际上就是发信号⑤输入子系统,这样比较通用 2.块设备相对于字符设备驱动逻辑的变化①对于硬盘对读写的优化假如 阅读全文

posted @ 2018-12-22 20:30 Hello-World3 阅读(356) 评论(0) 推荐(0)

固件firmware_Linux内核
摘要:1.相关函数 1.相关函数 int request_firmware_nowait( struct module *module, bool uevent, const char *name, struct device *device, gfp_t gfp, void *context, /*驱动 阅读全文

posted @ 2018-11-15 22:40 Hello-World3 阅读(1298) 评论(0) 推荐(0)

Linux内核配置---menuconfig
摘要:1. 示例 2. 关键字解释 Kconfig按照一定的格式来书写,menuconfig程序可以识别这种格式,然后从中提取出有效信息组成menuconfig中的菜单项。将来在做驱动移植等工作时,有时需要自己添加Kconfig中的一个配置项来将某个设备驱动添加到内核的配置项目中,这时候就需要对Kconf 阅读全文

posted @ 2018-10-30 20:16 Hello-World3 阅读(4987) 评论(0) 推荐(0)

驱动调试笔记
摘要:#include <linux/module.h> #include <linux/init.h> #include <linux/slab.h> #include <linux/miscdevice.h> #include <linux/gpio/consumer.h> #include <asm 阅读全文

posted @ 2018-10-25 16:29 Hello-World3 阅读(164) 评论(0) 推荐(0)

驱动模块(3)——Linux交叉编译工具链
摘要:一、工具链介绍 1. GNU Binutils是GNU的二进制工具集,包括: (1) ld:GNU链接器,将目标文件链接成可执行文件。(2) as:GNU汇编器,将汇编代码编译成目标文件。(3) gold:一种新的、更快的ELF链接器。(4) addr2line:把程序地址转换为文件名和行号。(5) 阅读全文

posted @ 2018-10-05 21:30 Hello-World3 阅读(1533) 评论(0) 推荐(0)

驱动模块(1)——杂项汇总
摘要:一、之前原文 kconfig kbuild makefile 模块,头文件导出请见 Documentation/kbuild/ 1.modutils中提供了相关的insmod,rmmod,modinfo工具2.modprobe在识别出目标模块所依赖模块后也是调用insmod.3.从外部看模块只是普通 阅读全文

posted @ 2018-10-03 00:57 Hello-World3 阅读(1413) 评论(1) 推荐(1)

Linux驱动调试学习笔记
摘要:1. struct task_struct current->comm[16]; /*此进程可执行文件的名字!!可只对此进程执行打印*/ 阅读全文

posted @ 2018-09-25 20:38 Hello-World3 阅读(189) 评论(0) 推荐(0)

Linux中断处理-1-基础简介
摘要:一、中断线程化 1. Linux中中断除了中断分层之外,还有一种就是中断线程化 存在意义:在Linux中,中断具有最高的优先级。不论在任何时刻,只要产生中断事件,内核将立即执行相应的中断处理程序,等到所有挂起的中断和软中断处理完毕后才能执行正常的任务,因此有可能造成实时任务得不到及时的处理。中断线程 阅读全文

posted @ 2018-08-25 20:52 Hello-World3 阅读(609) 评论(0) 推荐(0)

Linux内核调试汇总
摘要:1.控制台优先级配置cat /proc/sys/kernel/printk6 4 1 76是控制台的优先级,打印信息的优先级要比它高才能打印出。4是默认的优先级cat /var/log/messages 不管你的打印信息有没有打印,这个文件中都有记录 修改日志方法:https://blog.csdn 阅读全文

posted @ 2018-08-06 21:30 Hello-World3 阅读(379) 评论(0) 推荐(0)

驱动模块(2)——模块信息与调试
摘要:一、查看内核模块信息 相关命令:modprobe、insmod、rmmod、modinfo、lsmod 1.查看内核所有内置模块# cat /lib/modules/$(uname -r)/modules.builtin kernel/arch/arm64/crypto/sha1-ce.ko ker 阅读全文

posted @ 2018-08-06 17:43 Hello-World3 阅读(985) 评论(0) 推荐(0)

驱动模块(4)——模块编译-Makefile编写
摘要:1.Kernel中的Makefile将多个文件编译成一个模块 Example1: drivers/usb/core/Makefile:usbcore-y := usb.o hub.o hcd.o urb.o message.o driver.o usbcore-y += config.o file. 阅读全文

posted @ 2018-07-21 14:56 Hello-World3 阅读(522) 评论(0) 推荐(0)

v4l2框架函数调用关系
摘要:所有的设备节点和子设备节点都是通过__video_register_device()注册的 1.对于video设备节点: 用户空间ioctl(VIDIOC_S_FMT) > v4l2_fops.unlocked_ioctl [v4l2_ioctl] 字符设备函数集合,此函数主要是使用&vin->lo 阅读全文

posted @ 2018-07-01 16:14 Hello-World3 阅读(688) 评论(0) 推荐(0)

驱动模块(5)_autoconf.h
摘要:1. autoconf.h文件 老版本的Linux内核中,执行 make menuconfig 后,编译系统会去 defconfig 文件中读取默认配置,然后把所有的配置信息保存到源码顶层目录下的 .config 文件中,然后将 .config 中的内容转换为C语言能识别的宏定义更新到编译目录下的 阅读全文

posted @ 2018-05-28 18:56 Hello-World3 阅读(730) 评论(0) 推荐(0)

一个驱动匹配多个器件
摘要:1. 一个驱动中要匹配多个器件 阅读全文

posted @ 2018-05-28 15:53 Hello-World3 阅读(260) 评论(0) 推荐(0)

驱动对应用的异步通知机制
摘要:驱动对应用的异步通知机制 1.应用程序需要完成如下三个步骤: (1)signal(SIGIO, sig_handler); 调用signal函数,让指定的信号SIGIO与处理函数sig_handler对应。 (2)fcntl(fd, F_SET_OWNER, getpid()); 指定一个进程作为文 阅读全文

posted @ 2018-05-22 22:53 Hello-World3 阅读(588) 评论(0) 推荐(0)

BKL 大内核锁
摘要:BKL 大内核锁 BKL是一种递归锁。一个进程可以多次请求一个锁,并不会像自旋锁那么产生死锁。 BKL可以在进程上下文中。 BKL是有害的。 在内核中不鼓励使用BKL。一个执行线程可以递归的请求锁lock_kernel(),但是释放锁时也必须调用同样次数的unlock_kernel()操作,在最后一 阅读全文

posted @ 2018-05-19 23:08 Hello-World3 阅读(257) 评论(0) 推荐(0)

YUV和RGB之间的转换方法
摘要:参考: https://blog.csdn.net/qq_29350001/article/details/52032540 阅读全文

posted @ 2018-03-29 18:38 Hello-World3 阅读(202) 评论(0) 推荐(0)

导航