linux设备驱动
文章平均质量分 93
悟空胆好小
可以收藏并关注我获取最新分享,嵌入式软件专家,专注分享嵌入式软硬件、AIoT(物联网+人工智能)、通信技术、半导体等相关内容。
展开
-
linux内核调试之魔术键sysrq
sysrq是内核提供的一组魔数组合键,通过该组合键可以直接触发内核的特定功能,如重启系统,设置loglevel等。它是一个你可以输入的具有魔法般的组合键。无论内核在做什么,内核都会响应 SysRq 键的输入,除非内核完全卡死。在内核发生故障时,只要键盘还有响应就可以使用它们触发相应操作。除了通过键盘触发以外,内核还支持通过proc文件系统触发sysrq操作。该方式为每种操作定义了一个唯一的字符,当需要触发操作时,只需将对应的字符写到/proc/sysrq-trigger文件即可。原创 2024-01-12 09:35:24 · 802 阅读 · 0 评论 -
linux设备驱动归纳总结(三):4.ioctl的实现
linux设备驱动归纳总结(三):4.ioctl的实现一、ioctl的简介:虽然在文件操作结构体"struct file_operations"中有很多对应的设备操作函数,但是有些命令是实在找不到对应的操作函数。如CD-ROM的驱动,想要一个弹出光驱的操作,这种操作并不是所有的字符设备都需要的,所以文件操作结构体也不会有对应的函数操作。出于这样的原因转载 2015-11-21 11:09:23 · 678 阅读 · 0 评论 -
linux设备驱动归纳总结(三):1字符型设备之设备申请
分类: 嵌入式linux设备驱动归纳总结(三):1.字符型设备之设备申请操作系统:Ubunru 10.04实验平台:S3C2440 + linux2.6.29内核注:在今后驱动程序的学习中经常需要查看内核源代码,建议大家新加一个内核目录,去掉一些与S3C2440平台无关的代码,打包成ctags,方便查看代码。一、驱动的分类:转载 2015-11-21 09:47:18 · 489 阅读 · 0 评论 -
linux设备驱动归纳总结(二):模块的相关基础概念
linux设备驱动归纳总结(二):模块的相关基础概念系统平台:Ubuntu 10.04开发平台:S3C2440开发板xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx一。初探linux内核模块内核模块:转载 2015-11-20 17:27:14 · 343 阅读 · 0 评论 -
udev -动态创建设备 进程查看 amba s2l11m
/dav/test # cat /etc/init.d/rcS #!/bin/sh/bin/mount -t ramfs ramfs /home/etc/S_mdev/etc/app/dav/test # cat /etc/S_mdev#!/bin/sh## This is a rcS file for udev startup,dev node原创 2015-11-23 20:02:21 · 802 阅读 · 0 评论 -
linux设备驱动归纳总结(十):1.udev&misc 2
linux设备驱动归纳总结(十):1.udev&miscxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx不知不觉我的总结已经写得七七八八了,这一章节只是补充一下两个知识点:动态创建设备节点和杂设备类的注册。xxxxxxxxxxxxxxxxx转载 2015-11-23 20:00:57 · 537 阅读 · 0 评论 -
linux设备驱动归纳总结(六):3.中断下半部之tasklet
linux设备驱动归纳总结(六):3.中断的上半部和下半部——taskletxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx一、什么是下半部中断是一个很霸道的东西,处理器一旦接收到中断,就会打断正在执行的代码,调用中转载 2015-11-23 16:36:43 · 428 阅读 · 0 评论 -
linux设备驱动归纳总结(六):3.中断下半部之工作队列
linux设备驱动归纳总结(六):3.中断的上半部和下半部——工作队列xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx这节介绍另外一种的下半部实现——工作队列。相对于软中断/tasklet,工作对列运行在进程上下文,允许睡眠,接下来慢慢介绍。转载 2015-11-23 16:52:51 · 532 阅读 · 0 评论 -
linux设备驱动归纳总结(六):2.分享中断号
linux设备驱动归纳总结(六):2.分享中断号xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx上一节介绍的内容是,调用接口request_irq(),使中断号与中断处理函数对应。但是,有时候会有这样的情况,如果开发板上按键的中断已经被另外的驱动程转载 2015-11-23 16:17:24 · 579 阅读 · 0 评论 -
ambarella s2l11m linux device_initcall
main.c asmlinkage void __init start_kernel(void)-- rest_init();--kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND);--static int __ref kernel_init(void *unused)原创 2015-11-23 19:44:23 · 1063 阅读 · 0 评论 -
linux设备驱动归纳总结(七):2.内核定时器
linux设备驱动归纳总结(七):2.内核定时器xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx这节将介绍内核定时器的使用。xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx转载 2015-11-23 16:58:41 · 419 阅读 · 0 评论 -
linux设备驱动归纳总结(五):4.写个简单的LED驱动
linux设备驱动归纳总结(五):4.写个简单的LED驱动xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx在上面的章节的知识,已经能够实现个简单的LED驱动。居于前面操作LED的函数(5th_mm_2/3rd/test.c),我一步一步来修改。转载 2015-11-23 15:36:14 · 603 阅读 · 0 评论 -
linux设备驱动归纳总结(四):5.SMP下的竞态和并发
linux设备驱动归纳总结(四):5.多处理器下的竞态和并发xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx这节将在上一节的基础上介绍支持多处理器和内核抢占的内核如何避免并发。除了内核抢占和中断外,由于多处理起的缘故,它可以做到多个程序同时执行。所转载 2015-11-23 14:45:08 · 513 阅读 · 0 评论 -
linux设备驱动归纳总结(三):3面向对象思想和lseek
linux设备驱动归纳总结(三):3.设备驱动面向对象思想和lseek的实现一、结构体struct file和struct inode在之前写的函数,全部是定义了一些零散的全局变量。有没有办法整合成到一个结构体当中?这样的话,看起来和用起来都比较方便。接下来就要说这方面的问题。不过先要介绍一下除了fops以外的两个比较重要的结构体转载 2015-11-21 10:51:42 · 430 阅读 · 0 评论 -
linux设备驱动归纳总结(三):2open.close.read.write
linux设备驱动归纳总结(三):2.字符型设备的操作open、close、read、write一、文件操作结构体file_operations继续上次没讲完的问题,文件操作结构体到底是什么东西,为什么我注册了设备之后什么现象都没有?可以验证文件操作结构体的内容。file_operations是一个函数指针的集合,用于存放我们定义的用于操转载 2015-11-21 10:06:48 · 522 阅读 · 0 评论 -
linux设备驱动归纳总结(一):内核的相关基础概念
linux设备驱动归纳总结(一):内核的相关基础概念xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx一.linux设备驱动的作用内核:用于管理软硬件资源,并提供运行环境。如分配4G虚拟空间等。linux设备驱动:是连接硬件和转载 2015-11-20 17:00:42 · 636 阅读 · 0 评论