会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
QIY
Quest It Yourself
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
51
52
53
54
55
56
57
58
59
···
124
下一页
2018年3月8日
linux中断的下半部机制
摘要: 一、中断处理为什么要下半部?Linux在中断处理中间中断处理分了上半部和下半部,目的就是提高系统的响应能力和并发能力。通俗一点来讲:当一个中断产生,调用该中断对应的处理程序(上半部)然后告诉系统,对应的后半部可以执行了。然后中断处理程序就返回,下半部会在合适的时机有系统调用。这样一来就大大的减少了中
阅读全文
posted @ 2018-03-08 10:03 qiynet
阅读(453)
评论(0)
推荐(0)
2018年3月5日
unsigned short A = 10; printf("~A = %u\n", ~A); char c=128; printf("c=%d\n",c); 输出多少?
摘要: 这是题目给出的答案:第一题,~A =0xfffffff5,int值 为-11,但输出的是uint。所以输出4294967285 第二题,c=0x10,输出的是int,最高位为1,是负数,所以它的值就是0x00的补码就是128,所以输出-128。这两道题都是在考察二进制向int或uint转换时的最高位
阅读全文
posted @ 2018-03-05 22:58 qiynet
阅读(493)
评论(0)
推荐(0)
Calling Convention的总结
摘要: 因为经常需要和不同的Calling Convention打交道,前段时间整理了一下它们之间的区别,如下: 清理堆栈 参数压栈顺序 命名规则 (MSVC++) 备注 Cdecl 调用者 (Caller) 从右往左 FuncName 因为是调用者清理Stack,因此允许变参 (如printf) Pasc
阅读全文
posted @ 2018-03-05 19:12 qiynet
阅读(251)
评论(0)
推荐(0)
形参传递关键点
摘要: 不能传递, str还是0; str值为1; 如下例子: -形参 同级别,不能传递; 这样可以; 这其实是一个参数传递的问题.修改变量值需要传递该变量类型的一级指针;修改一级指针指需要传递对应类型的二级指针.
阅读全文
posted @ 2018-03-05 19:10 qiynet
阅读(159)
评论(0)
推荐(0)
2018年3月4日
linux input输入子系统分析《四》:input子系统整体流程全面分析
摘要: 1 input输入子系统整体流程 本节分析input子系统在内核中的实现,包括输入子系统(Input Core),事件处理层(Event Handler)和设备驱动层。由于上节代码讲解了设备驱动层的写法,因此在开头部分会从设备驱动层做为线索,分析输入子系统和事件处理层是如何配合的,最后从用户角度出发
阅读全文
posted @ 2018-03-04 17:41 qiynet
阅读(450)
评论(0)
推荐(0)
2018年3月3日
22.Linux-块设备驱动之框架详细分析(详解)
摘要: 1.之前我们学的都是字符设备驱动,先来回忆一下 字符设备驱动: 当我们的应用层读写(read()/write())字符设备驱动时,是按字节/字符来读写数据的,期间没有任何缓存区,因为数据量小,不能随机读取数据,例如:按键、LED、鼠标、键盘等 2.接下来本节开始学习块设备驱动 块设备: 块设备是i/
阅读全文
posted @ 2018-03-03 17:35 qiynet
阅读(459)
评论(0)
推荐(0)
linux 块设备-整理(一)
摘要: 1. 基本概念: linux设备驱动开发详解(宋宝华): 字符设备与块设备 I/O 操作的不同如下。 (1)块设备只能以块为单位接受输入和返回输出,而字符设备则以字节为单位。 大多数设备是字符设备,因为它们不需要缓冲而且不以固定块大小进行操作。 (2)块设备对于 I/O 请求有对应的缓冲区,因此它们
阅读全文
posted @ 2018-03-03 17:05 qiynet
阅读(319)
评论(0)
推荐(0)
linux块设备读写流程
摘要: 在学习块设备原理的时候,我最关系块设备的数据流程,从应用程序调用Read或者Write开始,数据在内核中到底是如何流通、处理的呢?然后又如何抵达具体的物理设备的呢?下面对一个带Cache功能的块设备数据流程进行分析。 1、 用户态程序通过open()打开指定的块设备,通过systemcall机制陷入
阅读全文
posted @ 2018-03-03 16:23 qiynet
阅读(2208)
评论(0)
推荐(0)
2018年3月2日
linux系统调用是通过软中断实现的吗
摘要: 软中断是利用硬件中断的概念,用软件方式进行模拟,实现宏观上的异步执行效果。很多情况下,软中断和信号有些类似,同时,软中断又是和硬中断相对应的,硬中断是外部设备对CPU的中断,软中断通常是硬中断服务程序对内核的中断,信号则是由内核(或其他进程)对某个进程的中断(《Linux内核源代码情景分析》第三章)
阅读全文
posted @ 2018-03-02 00:13 qiynet
阅读(581)
评论(0)
推荐(0)
2018年2月28日
Linux系统调用怎么和内核或底层驱动交互的
摘要: 学习Linux系统下驱动程序开发已有大半年时间,心中一直有个疑惑:那就是诸如open、write、read等系统调用是怎么和内核或底层驱动建立起联系的呢?今天将自己的一些粗略的理解总结如下。 学过Linux系统下驱动程序开发的都知道,大部分的基础性的驱动操作都包括3个重要的内核数据结构,称为file
阅读全文
posted @ 2018-02-28 12:09 qiynet
阅读(1261)
评论(0)
推荐(0)
2018年2月27日
strace命令
摘要: strace命令是一个集诊断、调试、统计与一体的工具,我们可以使用strace对应用的系统调用和信号传递的跟踪结果来对应用进行分析,以达到解决问题或者是了解应用工作过程的目的。当然strace与专业的调试工具比如说gdb之类的是没法相比的,因为它不是一个专业的调试器。 strace的最简单的用法就是
阅读全文
posted @ 2018-02-27 22:50 qiynet
阅读(415)
评论(0)
推荐(0)
linux 用户态和内核态以及进程上下文、中断上下文 内核空间用户空间理解
摘要: 1、特权级 Intel x86架构的cpu一共有0~4四个特权级,0级最高,3级最低,ARM架构也有不同的特权级,硬件上在执行每条指令时都会对指令所具有的特权级做相应的检查。硬件已经提供了一套特权级使用的相关机制,软件自然要好好利用,这属于操作系统要做的事情,对于UNIX/LINUX来说,只使用了0
阅读全文
posted @ 2018-02-27 17:45 qiynet
阅读(777)
评论(0)
推荐(0)
2018年2月26日
C语言string.h常用函数总结
摘要: 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 qiynet
阅读(324)
评论(0)
推荐(0)
2018年1月21日
shall的过去式和should怎么区分
摘要: shall的过去式是should,但是怎么和情态动词的should区分啊,答得好我会提高悬赏!!!
阅读全文
posted @ 2018-01-21 18:57 qiynet
阅读(3952)
评论(0)
推荐(0)
2018年1月16日
2018年1月16
该文被密码保护。
阅读全文
posted @ 2018-01-16 16:57 qiynet
阅读(0)
评论(0)
推荐(0)
上一页
1
···
51
52
53
54
55
56
57
58
59
···
124
下一页
跳至侧栏