王建峰
王建峰
全部文章
分类
C++(1)
C语言练习题(1)
flag(1)
Flask_web开发(2)
get(1)
Git(1)
Linux使用技巧(1)
Linux系统知识(1)
lnmp(1)
Lunix C编程及应用(2)
mysql(1)
nginx学习(1)
nginx配置(1)
python3(1)
RHEL7(1)
typedef(1)
互联网基础知识(10)
好文章应当分享(1)
学习笔记(3)
小结(1)
心情(1)
数组(1)
日志(1)
未归档(219)
笔记(8)
算法(1)
练习(1)
职业规划(1)
进程间通信机制(1)
问题解决(1)
阅读(1)
归档
标签
去牛客网
登录
/
注册
王建峰的博客
苦是咖啡的原味
全部文章
(共269篇)
嵌入式内核及驱动开发之学习笔记(十二) 设备驱动模型
按照之前的实现驱动的方法。对于同一类设备,驱动层实现的操作方法是相似的,而设备信息总是不同的,一个产品上有很多这样的同类设备,我们为每一个设备都定制一套驱动程序,代价似乎太“高昂点”;对于一个设别,如果硬件有所改动,也必然要修改取代代码。 为了提高代码的通用性,我们将驱动和设备进行分离,设备对象专...
2018-11-20
0
579
嵌入式内核及驱动开发之学习笔记(十一) 中断优化处理
ARM cortex-A系列的内核不支持中断嵌套。在内核中断函数中,如果中断处理时间过长,产生中断嵌套,重者系统崩溃,轻者也会影响其他事件处理。这也是中断中不能使用延时函数的原因。 但是有些高实时性设备(比如网卡),就是需要处理大量的业务。为了满足中断处理时间尽量短的原则,我们将一些简单的处理放在...
学习笔记
中断
驱动
2018-11-18
0
493
嵌入式内核及驱动开发之学习笔记(十) 异步通信+中断实现读取数据
对于linux一切都是文件,驱动设备在应用层也是以文件的形式进行读写。之前学了阻塞、非阻塞、多路复用的方式读设备,它们都需要应用主动读取。那么应用层有没有一种方式,当底层将数据准备好了,应用程序自动处理这些数据?通过异步通信可以实现,这有写类似硬件层的中断概念 驱动层(准备好了数据) -->...
2018-11-18
0
626
嵌入式内核及驱动开发之学习笔记(九) 多路复用+中断实现读取数据
使用阻塞模型虽然可以避免等待数据过程中,CPU对进程的消耗,但是仅仅是为了等待这一个结果,就让进程进入休眠,对于还要进行其他IO操作的进程而言太“奢侈”。所以引入多路复用的概念,解决这个问题。 非阻塞:立即返回结果,如果想得到期望的结果,要不停的调用这个方***询),非常耗费资源 阻塞:没有得到...
学习笔记
驱动
2018-11-17
0
558
嵌入式内核及驱动开发之学习笔记(八) 阻塞模式+中断实现读取数据
目前已经学习两种应用层IO模型的使用 非阻塞:立即返回结果,如果想得到期望的结果,要不停的调用这个方***询),非常耗费资源 阻塞:没有得到真正的数据前,不返回结果。此时,进程进入阻塞(休眠)态,直到有数据唤醒进程,这个过程不耗资源。 PS:linux应用中,大部分的函数接口都是阻塞 ...
2018-11-17
0
497
嵌入式内核及驱动开发之学习笔记(七) 非阻塞模式+中断实现读取数据
当中断发生时,驱动程序会跳转到中断处理的函数入口,实现了中断的捕获和处理,但这样还不够。要让用户能够获取到中断分析的结果,我们将创建一个描述中断事件的结构体对象。硬件产生中断后,驱动代码将对中断事件的分析结果保存在结构体变量中,用户需要的时候,直接通过接口函数获取这个结构体的数据。 内核层: 硬...
2018-11-16
0
477
嵌入式内核及驱动开发之学习笔记(六) 驱动层中断实现
由于中断信号的突发性,CPU要捕获中断信号,有两种方式。一是不断轮询是否有中断发生,这样有点傻;二是通过中断机制,过程如下: 中断源 ---> 中断信号 ---> 中断控制器 ---> CPU 中断源有很多,CPU拿到中断信号,如何区分是哪一个中断源产生?那么一定有一个...
2018-11-16
0
513
2018/11/15小结
发现自己在最近,遇到程序不愿意动手。以前总是以为看懂意思 知道其中内部的原理就行了,到了真正做程序的时候也不会让你去实现其中的细节。 就在今天,我调一个简单的程序‘折腾’一个多小时无果之后。。现在忽然觉得以前的想法是不对的,至少是片面的。。 平时不重视实践,关键时刻就从外部找解决,现在已经养成的...
日志
2018-11-15
0
417
嵌入式内核及驱动开发之学习笔记(五) 编写字符驱动步骤总结
1,实现模块加载和卸载入口函数 module_init(chr_dev_init); module_exit(chr_dev_exit); 2,在模块加载入口函数中 a, 申请主设备号 (内核中用于区分和管理不同字符设备) reg...
2018-11-14
0
437
嵌入式内核及驱动开发之学习笔记(四) 规范化代码
前面笔者已实现了用户程序控制led灯闪烁的驱动代码,但是由于代码不规范,显得乱七八糟的,因此需要规范化。如果比较大一点的工程没有规范的话,也不利于后期的跟新与维护。分析先前的程序不规范点有二: 定义的变量多而且散乱 程序没有错误处理机制 C语言虽然是面向过程的语言,但是可以利用结构体来...
2018-11-14
0
461
首页
上一页
5
6
7
8
9
10
11
12
13
14
下一页
末页