上一页 1 ··· 51 52 53 54 55 56 57 58 59 ··· 124 下一页
摘要: 因为经常需要和不同的Calling Convention打交道,前段时间整理了一下它们之间的区别,如下: 清理堆栈 参数压栈顺序 命名规则 (MSVC++) 备注 Cdecl 调用者 (Caller) 从右往左 FuncName 因为是调用者清理Stack,因此允许变参 (如printf) Pasc 阅读全文
posted @ 2018-03-05 19:12 瘋耔 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 不能传递, str还是0; str值为1; 如下例子: -形参 同级别,不能传递; 这样可以; 这其实是一个参数传递的问题.修改变量值需要传递该变量类型的一级指针;修改一级指针指需要传递对应类型的二级指针. 阅读全文
posted @ 2018-03-05 19:10 瘋耔 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 1 input输入子系统整体流程 本节分析input子系统在内核中的实现,包括输入子系统(Input Core),事件处理层(Event Handler)和设备驱动层。由于上节代码讲解了设备驱动层的写法,因此在开头部分会从设备驱动层做为线索,分析输入子系统和事件处理层是如何配合的,最后从用户角度出发 阅读全文
posted @ 2018-03-04 17:41 瘋耔 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 1.之前我们学的都是字符设备驱动,先来回忆一下 字符设备驱动: 当我们的应用层读写(read()/write())字符设备驱动时,是按字节/字符来读写数据的,期间没有任何缓存区,因为数据量小,不能随机读取数据,例如:按键、LED、鼠标、键盘等 2.接下来本节开始学习块设备驱动 块设备: 块设备是i/ 阅读全文
posted @ 2018-03-03 17:35 瘋耔 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 1. 基本概念: linux设备驱动开发详解(宋宝华): 字符设备与块设备 I/O 操作的不同如下。 (1)块设备只能以块为单位接受输入和返回输出,而字符设备则以字节为单位。 大多数设备是字符设备,因为它们不需要缓冲而且不以固定块大小进行操作。 (2)块设备对于 I/O 请求有对应的缓冲区,因此它们 阅读全文
posted @ 2018-03-03 17:05 瘋耔 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 在学习块设备原理的时候,我最关系块设备的数据流程,从应用程序调用Read或者Write开始,数据在内核中到底是如何流通、处理的呢?然后又如何抵达具体的物理设备的呢?下面对一个带Cache功能的块设备数据流程进行分析。 1、 用户态程序通过open()打开指定的块设备,通过systemcall机制陷入 阅读全文
posted @ 2018-03-03 16:23 瘋耔 阅读(2146) 评论(0) 推荐(0) 编辑
摘要: 软中断是利用硬件中断的概念,用软件方式进行模拟,实现宏观上的异步执行效果。很多情况下,软中断和信号有些类似,同时,软中断又是和硬中断相对应的,硬中断是外部设备对CPU的中断,软中断通常是硬中断服务程序对内核的中断,信号则是由内核(或其他进程)对某个进程的中断(《Linux内核源代码情景分析》第三章) 阅读全文
posted @ 2018-03-02 00:13 瘋耔 阅读(557) 评论(0) 推荐(0) 编辑
摘要: 学习Linux系统下驱动程序开发已有大半年时间,心中一直有个疑惑:那就是诸如open、write、read等系统调用是怎么和内核或底层驱动建立起联系的呢?今天将自己的一些粗略的理解总结如下。 学过Linux系统下驱动程序开发的都知道,大部分的基础性的驱动操作都包括3个重要的内核数据结构,称为file 阅读全文
posted @ 2018-02-28 12:09 瘋耔 阅读(1189) 评论(0) 推荐(0) 编辑
摘要: strace命令是一个集诊断、调试、统计与一体的工具,我们可以使用strace对应用的系统调用和信号传递的跟踪结果来对应用进行分析,以达到解决问题或者是了解应用工作过程的目的。当然strace与专业的调试工具比如说gdb之类的是没法相比的,因为它不是一个专业的调试器。 strace的最简单的用法就是 阅读全文
posted @ 2018-02-27 22:50 瘋耔 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 1、特权级 Intel x86架构的cpu一共有0~4四个特权级,0级最高,3级最低,ARM架构也有不同的特权级,硬件上在执行每条指令时都会对指令所具有的特权级做相应的检查。硬件已经提供了一套特权级使用的相关机制,软件自然要好好利用,这属于操作系统要做的事情,对于UNIX/LINUX来说,只使用了0 阅读全文
posted @ 2018-02-27 17:45 瘋耔 阅读(759) 评论(0) 推荐(0) 编辑
摘要: void *memcpy(void *dest, const void *src, size_t n); 从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中. void *memmove( void* dest, const void* src,size_t 阅读全文
posted @ 2018-02-26 18:22 瘋耔 阅读(303) 评论(0) 推荐(0) 编辑
摘要: shall的过去式是should,但是怎么和情态动词的should区分啊,答得好我会提高悬赏!!! 阅读全文
posted @ 2018-01-21 18:57 瘋耔 阅读(3896) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-01-16 16:57 瘋耔 阅读(0) 评论(0) 推荐(0) 编辑
摘要: P ( x | y ):在Y发生的条件下,X发生的概率。P ( x , y )P(x,y)说明该事件与两个因素有关,比如设是因素A,B.P(x,y)=P{因素A处于x状态,因素B处于y状态}确切地说P(x,y)是联合分布概率。设X和Y是两个随机变量,其联合分布就是同时对于X和Y的概率分布.P(x,y 阅读全文
posted @ 2018-01-16 16:27 瘋耔 阅读(1708) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-01-15 11:27 瘋耔 阅读(0) 评论(0) 推荐(0) 编辑
上一页 1 ··· 51 52 53 54 55 56 57 58 59 ··· 124 下一页
跳至侧栏