linux内核驱动编程
cft56200_ln
格拉德韦尔在《异数》:并非天资超人一等,而是付出了持续不断的努力。只要经过1万小时的锤炼,任何人都能从平凡变成超凡”。要成为某个领域的专家,需要10000小时:如果每天工作八个小时,一周工作五天,那么成为一个领域的专家至少需要五年。
展开
-
linux 设置settimeofday 失效
settimeofday原创 2022-06-16 14:54:34 · 1079 阅读 · 0 评论 -
linux IIC 驱动
I2C驱动https://www.jianshu.com/p/40a178ff48f5Linux IIC 驱动分析(1) — 框架分析https://blog.csdn.net/zhoutaopower/article/details/100113002Linux驱动开发(十八):I2C驱动https://blog.csdn.net/a568713197/article/details/103280647...原创 2021-05-25 10:21:24 · 83 阅读 · 0 评论 -
linux内核同步机制 (1) 信号量和自旋锁 的特点
semaphore 信号量信号量的特点:1.用于进程和进程之间的同步2.允许有多个进程进入临界区代码执行3.进程获取不到信号量锁会陷入休眠,并让出CPU4.被信号量锁保护的临界区代码允许睡眠5.本质是基于进程调度器,UP和SMP下的实现无差异6.不支持进程和中断之间的同步spinlock自旋锁自旋锁的特点:1.spinlock是一种死等的锁机制。2.semaphore可以允许多个执行单元进入,spinlock不行,一次只能有一个执行单元获取锁并进入临界区,其他的执原创 2021-05-21 09:46:41 · 160 阅读 · 0 评论 -
linux copy from user 分析
copy_from_user分析https://www.cnblogs.com/rongpmcu/p/7662749.html主要分析了copy_from_user接口的内部实现,copy_to_user实现类似,不再重复分析。总的来说,copy_from_user完成了数据的拷贝的同时,处理了可能发生了地址访问异常。理论上,内核空间可以直接使用用户空间传过来的指针,即使要做数据拷贝的动作,也可以直接使用memcpy,事实上,在没有MMU的体系架构上,copy_form_user最终的实现就是.原创 2021-05-19 10:35:55 · 526 阅读 · 1 评论 -
linux SPI驱动
linux驱动基础系列--linux spi驱动框架分析https://www.cnblogs.com/rongpmcu/p/7662706.htmllinux驱动基础系列--linux spi驱动框架分析(续)https://www.cnblogs.com/rongpmcu/p/7662804.html原创 2021-05-19 10:32:22 · 86 阅读 · 0 评论 -
应用层的write() 如何调用到驱动中的write()?
在linux操作系统中,一切皆是文件:文件是文件,目录是文件,设备是文件,socket套接字是文件,管道也是文件。linux操作系统用文件抽象出了这一切,文件成为了以上这些实体的编程接口。正由于此,基于linux的编程变成了面向文件的编程,对于linux应用程序开发者而言,简直是爽的不要不要的。但是,对于内核开发者而言,却是未必。虽然应用层可以用open, write,read操纵一切,但是在内核里面,却需要不同的部分(或者说驱动)来真正实现这一切。本文接着linux驱动开发第1讲:带你编写一个转载 2021-05-19 09:31:16 · 336 阅读 · 0 评论 -
linux内核源码的编译过程
linux内核的编译过程其实有点像堆积木,它会把整个编译过程呢派发到各个子目录里边的Makefile里边去执行,等到各个子目录里边编译完成以后呢会生成一个buit-in.o文件,然后内核的编译系统会把这些所有的buit-in.o文件再把它组合成我们的这个内核镜像文件如何将自己的写的驱动编译到内核中https://jingyan.baidu.com/article/363872ec341d216e4ba16ff9.html...原创 2021-05-19 09:03:40 · 136 阅读 · 0 评论 -
linux字符设备驱动 Makefile分析obj-m := helloDev.o
## Makefile for kernel helloworld drivers## If KERNELRELEASE is defined, we've been invoked from the# kernel build system and can use its language.ifneq ($(KERNELRELEASE),)obj-m := helloDev.o# Otherwise we were called directly from the command# li.原创 2021-05-18 09:17:02 · 2535 阅读 · 0 评论 -
中断上下文笔记
一、中断是一个很霸道的角色,可以打断进程的运行,如果中断长时间处理会导致正常运行的进程无法正常运行,因此中断要尽量快速运行,时间尽量短二、linux内核将中断分成两个部分,中断上半部就是驱动代码中的中断处理函数运行处理速度快的程序,中断下半部运行处理时间慢,负责的程序。当然如果中断处理时间快,可以只实现中断上半部。三、中断下半部的三种实现方式: ①softirq 软中断:处理比较快,是内核级别的机制,需要修改整个内核源码,不推荐也不常用 ...原创 2020-05-21 16:54:59 · 126 阅读 · 0 评论