<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[long123bin的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/long123bin</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; long123bin]]></copyright><item><title><![CDATA[bitbake ERROR  Nothing PROVIDES  pseudo-native]]></title><link>https://blog.youkuaiyun.com/long123bin/article/details/78684065</link><guid>https://blog.youkuaiyun.com/long123bin/article/details/78684065</guid><author>long123bin</author><pubDate>Fri, 01 Dec 2017 10:38:07 +0800</pubDate><description><![CDATA[Pseudo is not present but is required, building this first before the main build
Loading cache: 100% |#################################################################################################]]></description><category></category></item><item><title><![CDATA[Android SDK Android NDK Android Studio 官方下载地址]]></title><link>https://blog.youkuaiyun.com/long123bin/article/details/43306469</link><guid>https://blog.youkuaiyun.com/long123bin/article/details/43306469</guid><author>long123bin</author><pubDate>Fri, 30 Jan 2015 14:04:33 +0800</pubDate><description><![CDATA[转载地址：
http://www.cnblogs.com/yaotong/archive/2011/01/25/1943615.html





内容：


Android SDK Android NDK Android Studio 官方下载地址




 如果下载速度很慢或者无法下载,有三种解决方法
1.忍耐.
2.使用P2SP下载工具,比如迅雷,百度云离线]]></description><category></category></item><item><title><![CDATA[Linux驱动开发十一：分层分离LED子系统]]></title><link>https://blog.youkuaiyun.com/long123bin/article/details/40856621</link><guid>https://blog.youkuaiyun.com/long123bin/article/details/40856621</guid><author>long123bin</author><pubDate>Thu, 06 Nov 2014 10:09:26 +0800</pubDate><description><![CDATA[本例根据韦东山视频第二期的]]></description><category></category></item><item><title><![CDATA[Linux驱动开发十：按键中断之输入子系统]]></title><link>https://blog.youkuaiyun.com/long123bin/article/details/40833585</link><guid>https://blog.youkuaiyun.com/long123bin/article/details/40833585</guid><author>long123bin</author><pubDate>Wed, 05 Nov 2014 21:38:18 +0800</pubDate><description><![CDATA[﻿﻿
 Input子系统概述
Input子系统是对不同类型的输入设备进行统一处理的驱动程序。一个输入事件，如按键，是通过驱动层到系统核心层到事件处理层到用户空间的顺序到达用户空间并传给应用程序使用。
Input子系统由驱动层、输入子系统核心层和事件处理层三部分组成。此子系统主要包括两类驱动程序：事件驱动程序和设备驱动程序。事件驱动程序负责和应用程序的接口，而设备驱动程序负责和底层输入设备的通]]></description><category></category></item><item><title><![CDATA[Linux驱动开发九：按键中断+定时去抖]]></title><link>https://blog.youkuaiyun.com/long123bin/article/details/40589975</link><guid>https://blog.youkuaiyun.com/long123bin/article/details/40589975</guid><author>long123bin</author><pubDate>Wed, 29 Oct 2014 18:05:11 +0800</pubDate><description><![CDATA[由于按键是金属弹片，很容易]]></description><category></category></item><item><title><![CDATA[Linux驱动开发八：按键中断+poll机制+异步通知机制+信号量及阻塞标志]]></title><link>https://blog.youkuaiyun.com/long123bin/article/details/40587255</link><guid>https://blog.youkuaiyun.com/long123bin/article/details/40587255</guid><author>long123bin</author><pubDate>Wed, 29 Oct 2014 15:43:58 +0800</pubDate><description><![CDATA[﻿﻿

目的:

        
同一时刻只能有一个应用程序打开设备

 

解决方案：

1.
原子操作

原子操作指的是在执行过程中不会被别的代码路径所中断的操作。

常用原子操作函数举例：

atomic_t v = ATOMIC_INIT(0);    
//定义原子变量v并初始化为0

atomic_read(atomic_t *v);    ]]></description><category></category></item><item><title><![CDATA[Linux驱动开发七：按键中断+poll机制+异步通知机制]]></title><link>https://blog.youkuaiyun.com/long123bin/article/details/40584579</link><guid>https://blog.youkuaiyun.com/long123bin/article/details/40584579</guid><author>long123bin</author><pubDate>Wed, 29 Oct 2014 12:42:43 +0800</pubDate><description><![CDATA[﻿﻿

分析：

前面几个驱动都是获得按键值：




.查询：应用程序很耗资源


.中断：使用read()函数获取


.poll： 
指定超时时间


 

他们的共同点是：

 
都是应用程序主动去读或者查询

 

疑问：

 
是否有驱动主动告诉应用程序

 

答案：

 
有，使用异步通知机制signal发]]></description><category></category></item><item><title><![CDATA[Linux驱动开发六：按键中断+poll机制]]></title><link>https://blog.youkuaiyun.com/long123bin/article/details/40582585</link><guid>https://blog.youkuaiyun.com/long123bin/article/details/40582585</guid><author>long123bin</author><pubDate>Wed, 29 Oct 2014 10:33:18 +0800</pubDate><description><![CDATA[基于韦东山视频用于QT6410]]></description><category></category></item><item><title><![CDATA[Linux驱动开发五：中断方式获取按键值]]></title><link>https://blog.youkuaiyun.com/long123bin/article/details/40436133</link><guid>https://blog.youkuaiyun.com/long123bin/article/details/40436133</guid><author>long123bin</author><pubDate>Fri, 24 Oct 2014 22:56:45 +0800</pubDate><description><![CDATA[序：   
当按下中断后，发生中断，发生以下事情
1.CPU进入异常模式，并跳转到vector_irq + stubs_offset处
2.因为在用户模式发生中断，所以跳转到__irq_usr指示的地址处
3.最终跳转到函数asm_do_IRQ处
4.在asm_do_IRQ按中断号查找到对应中断的irq_desc描述符，然后进入中断处理入口handle_irq
5.接着调用generi]]></description><category></category></item><item><title><![CDATA[Linux驱动开发四：查询方式获取按键值]]></title><link>https://blog.youkuaiyun.com/long123bin/article/details/40213285</link><guid>https://blog.youkuaiyun.com/long123bin/article/details/40213285</guid><author>long123bin</author><pubDate>Sat, 18 Oct 2014 18:02:07 +0800</pubDate><description><![CDATA[﻿﻿

韦东山驱动之第12课
3节

查询的方式获取按键值驱动程序

 




目的

按键驱动,查询方式获取按键值


平台

QT6410开发板


驱动程序





框架





File_operations结构的open（配置）、read（返回引脚状态）、write函数


入口函数注册设备，地址映射

]]></description><category></category></item><item><title><![CDATA[Linux驱动开发三：点亮LED]]></title><link>https://blog.youkuaiyun.com/long123bin/article/details/40211201</link><guid>https://blog.youkuaiyun.com/long123bin/article/details/40211201</guid><author>long123bin</author><pubDate>Sat, 18 Oct 2014 14:27:17 +0800</pubDate><description><![CDATA[﻿﻿

韦东山驱动之第12课      
2.3节

字符设备驱动程序及LED驱动程序

 




目的

写一个点灯LED驱动


平台

QT6410开发板


驱动程序





框架





static intfirst_led_open(struct inode *inode,struct file *file)]]></description><category></category></item><item><title><![CDATA[Linux驱动开发二：自动获得设备节点在/dev/目录下]]></title><link>https://blog.youkuaiyun.com/long123bin/article/details/40055763</link><guid>https://blog.youkuaiyun.com/long123bin/article/details/40055763</guid><author>long123bin</author><pubDate>Mon, 13 Oct 2014 23:11:43 +0800</pubDate><description><![CDATA[first_drv.c]]></description><category></category></item><item><title><![CDATA[Linux驱动开发一：简单的驱动]]></title><link>https://blog.youkuaiyun.com/long123bin/article/details/39276179</link><guid>https://blog.youkuaiyun.com/long123bin/article/details/39276179</guid><author>long123bin</author><pubDate>Sun, 14 Sep 2014 23:21:18 +0800</pubDate><description><![CDATA[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)
{
	]]></description><category></category></item><item><title><![CDATA[c语言之————内核链表使用实例]]></title><link>https://blog.youkuaiyun.com/long123bin/article/details/38315631</link><guid>https://blog.youkuaiyun.com/long123bin/article/details/38315631</guid><author>long123bin</author><pubDate>Thu, 31 Jul 2014 13:17:26 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[c语言之————内核链表]]></title><link>https://blog.youkuaiyun.com/long123bin/article/details/38315257</link><guid>https://blog.youkuaiyun.com/long123bin/article/details/38315257</guid><author>long123bin</author><pubDate>Thu, 31 Jul 2014 12:27:45 +0800</pubDate><description><![CDATA[出处：
http://www.cnblogs.com/Anker/archive/2013/12/15/3475643.html]]></description><category></category></item><item><title><![CDATA[linux内核链表分析]]></title><link>https://blog.youkuaiyun.com/long123bin/article/details/38313137</link><guid>https://blog.youkuaiyun.com/long123bin/article/details/38313137</guid><author>long123bin</author><pubDate>Thu, 31 Jul 2014 10:30:24 +0800</pubDate><description><![CDATA[此文转载自
http://www.cnblogs.com/Daniel-G/archive/2013/09/06/3305834.html]]></description><category></category></item><item><title><![CDATA[c语言之————有头循环单链表改进版]]></title><link>https://blog.youkuaiyun.com/long123bin/article/details/38231817</link><guid>https://blog.youkuaiyun.com/long123bin/article/details/38231817</guid><author>long123bin</author><pubDate>Mon, 28 Jul 2014 16:02:53 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[c语言之————有头循环双链表实现队列存储]]></title><link>https://blog.youkuaiyun.com/long123bin/article/details/38062921</link><guid>https://blog.youkuaiyun.com/long123bin/article/details/38062921</guid><author>long123bin</author><pubDate>Wed, 23 Jul 2014 13:57:54 +0800</pubDate><description><![CDATA[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[];  ]]></description><category></category></item><item><title><![CDATA[c语言之————有头循环双链表实现栈存储]]></title><link>https://blog.youkuaiyun.com/long123bin/article/details/38043261</link><guid>https://blog.youkuaiyun.com/long123bin/article/details/38043261</guid><author>long123bin</author><pubDate>Tue, 22 Jul 2014 15:42:57 +0800</pubDate><description><![CDATA[1、链表的实现
dlist.h]]></description><category></category></item><item><title><![CDATA[c语言之————有头循环双链表（公用par）]]></title><link>https://blog.youkuaiyun.com/long123bin/article/details/38035683</link><guid>https://blog.youkuaiyun.com/long123bin/article/details/38035683</guid><author>long123bin</author><pubDate>Tue, 22 Jul 2014 10:11:00 +0800</pubDate><description><![CDATA[本例为公用的有头循环双链b]]></description><category></category></item></channel></rss>