![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c
文章平均质量分 84
long123bin
这个作者很懒,什么都没留下…
展开
-
printf cout 参数计算顺序
1.printf()的参数执行顺序是从右往左的! 为什么呢?我觉得printf()用到了数据结构栈,栈先进先出,那样的话就按我们想要的顺序输出了,那么printf的实现可能就是先将参数计算好了,然后入栈。在输出的时候弹栈,就得到了我们想要的结果!(但具体是如何,我也不清楚,但这跟cout的输出原理很像)。 验证:[cpp] view plaincopy转载 2013-09-25 20:43:09 · 675 阅读 · 0 评论 -
Linux驱动开发五:中断方式获取按键值
序: 当按下中断后,发生中断,发生以下事情1.CPU进入异常模式,并跳转到vector_irq + stubs_offset处2.因为在用户模式发生中断,所以跳转到__irq_usr指示的地址处3.最终跳转到函数asm_do_IRQ处4.在asm_do_IRQ按中断号查找到对应中断的irq_desc描述符,然后进入中断处理入口handle_irq5.接着调用generi原创 2014-10-24 22:56:45 · 707 阅读 · 0 评论 -
Linux驱动开发四:查询方式获取按键值
韦东山驱动之第12课3节查询的方式获取按键值驱动程序 目的按键驱动,查询方式获取按键值平台QT6410开发板驱动程序框架File_operations结构的open(配置)、read(返回引脚状态)、write函数入口函数注册设备,地址映射原创 2014-10-18 18:02:07 · 889 阅读 · 0 评论 -
Linux驱动开发六:按键中断+poll机制
基于韦东山视频用于QT6410原创 2014-10-29 10:33:18 · 1309 阅读 · 0 评论 -
Linux驱动开发八:按键中断+poll机制+异步通知机制+信号量及阻塞标志
目的: 同一时刻只能有一个应用程序打开设备 解决方案:1.原子操作原子操作指的是在执行过程中不会被别的代码路径所中断的操作。常用原子操作函数举例:atomic_t v = ATOMIC_INIT(0); //定义原子变量v并初始化为0atomic_read(atomic_t *v);原创 2014-10-29 15:43:58 · 1486 阅读 · 0 评论 -
Linux驱动开发九:按键中断+定时去抖
由于按键是金属弹片,很容易原创 2014-10-29 18:05:11 · 2262 阅读 · 0 评论 -
Linux驱动开发七:按键中断+poll机制+异步通知机制
分析:前面几个驱动都是获得按键值:.查询:应用程序很耗资源.中断:使用read()函数获取.poll: 指定超时时间 他们的共同点是: 都是应用程序主动去读或者查询 疑问: 是否有驱动主动告诉应用程序 答案: 有,使用异步通知机制signal发原创 2014-10-29 12:42:43 · 2043 阅读 · 0 评论 -
Linux驱动开发二:自动获得设备节点在/dev/目录下
first_drv.c原创 2014-10-13 23:11:43 · 1767 阅读 · 0 评论 -
Linux驱动开发三:点亮LED
韦东山驱动之第12课 2.3节字符设备驱动程序及LED驱动程序 目的写一个点灯LED驱动平台QT6410开发板驱动程序框架static intfirst_led_open(struct inode *inode,struct file *file)原创 2014-10-18 14:27:17 · 650 阅读 · 0 评论 -
Linux驱动开发十一:分层分离LED子系统
本例根据韦东山视频第二期的原创 2014-11-06 10:09:26 · 700 阅读 · 0 评论 -
Linux驱动开发一:简单的驱动
first_drv.c#include #include #include #include #include #include #include #include //#include //#include /* open函数 */static int first_drv_open(struct inode *inode,struct file *file){原创 2014-09-14 23:21:18 · 646 阅读 · 0 评论 -
c语言之————内核链表
出处:http://www.cnblogs.com/Anker/archive/2013/12/15/3475643.html转载 2014-07-31 12:27:45 · 641 阅读 · 0 评论 -
c语言之————有头循环单链表
list.h#pragma oncetypedef size_t elem_t;struct node_info { elem_t data; struct node_info *next;};原创 2014-07-15 14:56:42 · 488 阅读 · 0 评论 -
c语言之————无头非循环单链表
实现流程:1.无头链表需要传原创 2014-07-16 15:56:02 · 474 阅读 · 0 评论 -
c语言之————无头循环双链表
本例是用双链表实现的统计学生信息程序dlist.h原创 2014-07-21 11:30:55 · 609 阅读 · 0 评论 -
c语言之————有头循环双链表实现栈存储
1、链表的实现dlist.h原创 2014-07-22 15:42:57 · 634 阅读 · 0 评论 -
c语言之————有头循环双链表实现队列存储
1、链表dlist.h/* *dlist.h *描述: * 有头循环双表 *Data: * 2014-07-21 */#pragma once#include #include #include struct node_info{ struct node_info *prev; struct node_info *next; char par[];原创 2014-07-23 13:57:54 · 585 阅读 · 0 评论 -
c语言之————有头循环双链表(公用par)
本例为公用的有头循环双链b原创 2014-07-22 10:11:00 · 544 阅读 · 0 评论 -
c语言之————有头循环单链表改进版
1、slist_head_loop.h/* * slist_head_loop.h * 描述: * 有头循环单链表 */#pragma once#include #include typedef struct _student_info{ char name[10]; int num; int age;}student_info;struct node_in原创 2014-07-28 16:02:53 · 473 阅读 · 0 评论 -
linux内核链表分析
此文转载自http://www.cnblogs.com/Daniel-G/archive/2013/09/06/3305834.html转载 2014-07-31 10:30:24 · 381 阅读 · 0 评论 -
c语言之————内核链表使用实例
kernel_list.h/* * kernel_list.h * 描述: * 此为内核链表结构(循环链表) */#pragma once#include struct list_head{ struct list_head *prev; struct list_head *next;};#define LIST_HEAD(name) struct list原创 2014-07-31 13:17:26 · 1057 阅读 · 0 评论 -
Linux驱动开发十:按键中断之输入子系统
Input子系统概述Input子系统是对不同类型的输入设备进行统一处理的驱动程序。一个输入事件,如按键,是通过驱动层到系统核心层到事件处理层到用户空间的顺序到达用户空间并传给应用程序使用。Input子系统由驱动层、输入子系统核心层和事件处理层三部分组成。此子系统主要包括两类驱动程序:事件驱动程序和设备驱动程序。事件驱动程序负责和应用程序的接口,而设备驱动程序负责和底层输入设备的通原创 2014-11-05 21:38:18 · 784 阅读 · 0 评论