![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux驱动开发
文章平均质量分 67
大城市的小蜗牛
这个作者很懒,什么都没留下…
展开
-
内核调试方法
内核调试方法原创 2022-04-27 07:25:26 · 107 阅读 · 0 评论 -
Linux 进程调度【1】- Linux 里进程阻塞是如何实现的(等待&工作队列)
文章目录前言一、Linux编程中的阻塞是怎么回事二、误区一: 进程阻塞消耗CPU资源三、CPU 的时间片轮转机制四、工作队列和等待队列4.1 工作队列4.2 等待队列五、误区二:阻塞进程不消耗系统资源六、调度会用到中断吗?pendSV的特性?总结前言以下文章要解决的问题:Linux编程中的阻塞是怎么回事?Linux编程中的阻塞是怎么实现的?进程的阻塞和线程的阻塞的区别?阻塞之后是如何被唤醒的?内核是如何识别被阻塞的线程的,保存了什么?一、Linux编程中的阻塞是怎么回事阻塞就是将应原创 2022-05-09 17:07:50 · 2752 阅读 · 3 评论 -
CLOCK【1】-单片机使用内部时钟,串口受热输出错误数据
单片机使用内部时钟,串口受热输出错误数据原创 2022-07-07 10:02:23 · 527 阅读 · 0 评论 -
I2C【2】-IIC为什么需要用开漏输出和上拉电阻bug
IIC为什么需要用开漏输出和上拉电阻原创 2022-06-20 11:03:15 · 4083 阅读 · 3 评论 -
I2C【1】-I2C驱动调试读操作异常的bug
i2C bug原创 2022-06-20 10:20:06 · 764 阅读 · 0 评论 -
线程【3】- 多线程中PTHREAD_MUTEX_RECURSIVE的理解
线程同步技术原创 2022-06-13 20:49:24 · 1100 阅读 · 0 评论 -
BUGLIST【1】- 串口编程不读数据
串口驱动调试遇到的问题原创 2020-09-15 08:14:10 · 918 阅读 · 0 评论 -
SQLITE3【1】-SQLite向arm-imx6ull板子的移植
文章目录前言一、如何向arm-imx6ull 开发板移植sqlite31.1 下载sqlite3源码1.2. 源文件编译步骤1.3. SQLite 数据库的移植1.4. SQLite 数据库的测试前言提示:这里解决以下问题:如何向arm-imx6ull 开发板移植sqlite3一、如何向arm-imx6ull 开发板移植sqlite31.1 下载sqlite3源码请访问 SQLite 下载页面,从源代码区下载 sqlite-autoconf-*.tar.gz。1.2. 源文件编译原创 2022-05-24 09:41:57 · 638 阅读 · 1 评论 -
进程【6】-理解进程的终止:exit,_exit,return
文章目录前言一、进程是如何退出的,具体过程是什么?二. exit,_exit,return,有什么区别?三. 块缓冲和行缓冲的区别总结前言提示:这里要解决以下问题进程是如何退出的,具体过程是什么?exit,_exit,return,有什么区别?块缓冲和行缓冲的区别?一、进程是如何退出的,具体过程是什么?看看return和exit的差别在linux上分别跑一下这个代码int main(){ return 0; //exit(0);}return 0exit 0原创 2022-05-22 11:19:40 · 536 阅读 · 0 评论 -
进程【2】-理解进程fork的使用
文章目录前言一、使用fork创建的子程序,真的一模一样吗?二、父子进程间文件共享总结前言提示:要解决以下问题:使用fork创建的子程序,真的一模一样吗?一、使用fork创建的子程序,真的一模一样吗?要理解fork()的诀窍是,但调用完毕fork()将存在两个进程,都会从fork()的返回处继续执行。而子进程是对父进程栈段,数据段,堆段内存相应各部分的完全复制。二、父子进程间文件共享由1可知,子进程会继承父进程各个内存段的数据,那么同时也会继承父进程的文件描述符,同时也指向了同一个文件原创 2022-05-16 10:51:58 · 266 阅读 · 0 评论 -
信号【5】-理解sigsuspend
文章目录前言一、sigsuspend的应用场景二、sigsuspend的实质总结前言提示:要解决以下问题:sigsuspend使用的场景sigsuspend的实质一、sigsuspend的应用场景临时阻塞一个信号,以防止其中断正在执行的关键代码解除对该信号的阻塞,然后暂停执行,直至有信号的传递二、sigsuspend的实质int sigsuspend(const sigset_t *mask);调用sigsuspend()相当于以不可中段的方式执行以下操作:sigproc原创 2022-05-15 12:54:47 · 228 阅读 · 0 评论 -
信号【4】-理解实时信号
文章目录前言一. 实时信号和可靠信号是一个概念吗?二、实时信号解决了标准信号的什么问题三、 实时信号的处理总结前言提示:要解决以下疑问:实时信号和可靠信号是一个概念吗?. 实时信号解决了标准信号的什么问题?实时信号的处理一. 实时信号和可靠信号是一个概念吗?Linux中信号分两种:不可靠信号: [1~31]均为不可靠信号可靠信号:[32~63]为可靠信号或者叫实时信号二、实时信号解决了标准信号的什么问题实时信号比标准信号的优势是:实时信号的范围有所扩大,可以应用于应用原创 2022-05-15 10:42:30 · 320 阅读 · 0 评论 -
信号【3】- 理解sleep函数
文章目录前言一、sleep函数到底做了什么二、sleep 针对线程还是进程三 、如何使用sleep函数总结前言提示:这里要解决一下问题:sleep函数到底做了什么sleep 针对线程还是进程如何使用sleep函数一、sleep函数到底做了什么linux系统中sleep函数原型unsigned int sleep (unsigned int seconds);参数:线程挂起秒数返回值:进程/线程挂起到参数所指定的时间则返回0,若有信号中断则返回剩余秒数sleep 过程描述线程原创 2022-05-14 15:23:40 · 349 阅读 · 0 评论 -
信号【N】-linux信号编程的buglist
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代.原创 2022-05-14 11:37:49 · 379 阅读 · 0 评论 -
信号【2】-理解signal和sigaction
文章目录前言一、signal对信号的处理1.1 **如果进程正在执行信号处理函数,这时又接收到一个相同的信号会怎样**?1.2 如果进程正在执行信号处理函数,这时又接收到一个不同的信号会怎样?1.3 针对可靠信号和不可靠信号signal又有如何表现?二、sigaction对信号的处理2.1 如果进程正在执行信号处理函数,这时又接收到一个相同的信号会怎样?2.2 如果进程正在执行信号处理函数,这时又接收到一个不同的信号会怎样?2.3 1.3 针对可靠信号和不可靠信号signal又有如何表现?2.4 一个细节总原创 2022-05-14 11:15:58 · 756 阅读 · 0 评论 -
如何理解守护进程
文章目录前言一、什么是守护进程二、如何创建一个守护进程2.1 守护进程的编程步骤二、使用步骤1.引入库2.读入数据总结前言主要解决以下问题:什么是守护进程守护进程的特点如何将进程变为一个守护进程一、什么是守护进程守护进程是具备以下特点的进程:生命周期很长,通常一个daemon程序从系统启动被创建到系统关闭而终结。它在后台运行不拥有任何控制终端,因为控制终端的缺失,内核不会再为dammon任何任务控制的信号以及终端相关的信号(SIGTOP,SIGINT,SIGHUP)守护进程就是原创 2022-05-12 12:01:04 · 1102 阅读 · 0 评论 -
信号【1】-linux内核信号的处理过程(信号安全,可重入函数)
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用文章目录系列文章目录前言21.1 设计信号处理器函数22.3 可中断和不可中断的进程睡眠状态5. 信号从产生到死亡经历了什么?22.5 信号的同步生成和异步生成22.6 信号传递的时机与顺序22.6.1 进程如何发现和接受信号22.6.2 信号检测和响应时机22.6.3 进入信号处理函数22.6.4 为什么要设置frme,为什么执行完信号函数之后还要回到内核态?2原创 2022-05-10 11:31:15 · 997 阅读 · 0 评论 -
对同步与异步的理解
定义:进程同步:这是进程间的一种运行关系。“同”是协同,按照一定的顺序协同进行(有序进行),而不是同时。即一组进程为了协调其推进速度,在某些地方需要相互等待或者唤醒,这种进程间的相互制约就被称作是进程同步。这种合作现象在操作系统和并发式编程中属于经常性事件。具有同步关系的一组并发进程称为合作进程。异步性是指进程以不可预知的速度向前推进。内存中的每个进程何时执行,何时暂停,以怎样的速度向前推进,每道程序总共需要多少时间才能完成等,都是不可预知的。理解:同步是指两个进程的运行是相关的,其中一个进程要阻塞转载 2022-05-07 09:28:27 · 461 阅读 · 0 评论 -
linux设备驱动模型一字符设备open系统调用流程
文章目录前言一、open概述二、字符设备的注册二、创建inode四、打开文件流程4.1 数据结构4.2 处理流程4.2.1 open系统调用前言要解决的问题:struct inode 和 struct file,cdev 和 inode的关系open系统调用是如何通过设备号来找到一、open概述使用open函数打开设备文件,到底做了些什么工作?下图中列出了open函数执行的大致过程。二、字符设备的注册 linux内核cdev_init系列函数。 内核中每个字符设备都对应一个原创 2022-05-05 15:00:22 · 2736 阅读 · 0 评论