<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[随风]]></title><description><![CDATA[无声又无息，留在回忆里！]]></description><link>https://blog.youkuaiyun.com/dyron</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; dyron]]></copyright><item><title><![CDATA[深入linux设备驱动程序内核机制(第十章) 读书笔记]]></title><link>https://blog.youkuaiyun.com/dyron/article/details/9133905</link><guid>https://blog.youkuaiyun.com/dyron/article/details/9133905</guid><author>dyron</author><pubDate>Thu, 20 Jun 2013 09:22:14 +0800</pubDate><description><![CDATA[第十章 内存映射与DMA
      本文欢迎转载, 请标明出处

      本文出处http://blog.youkuaiyun.com/dyron


    本章讨论驱动如何实现内存映射和进行DMA操作, 内存映射的任务是将设备的地址空间映射到用户空间或直接
    使用用户空间的地址, 这样做的目的显然是从提升系统性能的角度出发. 

10.1 设备缓存与设备内存

    设]]></description><category></category></item><item><title><![CDATA[深入linux设备驱动程序内核机制(第九章) 读书笔记]]></title><link>https://blog.youkuaiyun.com/dyron/article/details/9125897</link><guid>https://blog.youkuaiyun.com/dyron/article/details/9125897</guid><author>dyron</author><pubDate>Wed, 19 Jun 2013 09:48:35 +0800</pubDate><description><![CDATA[第9章 linux设备驱动模型

       本文欢迎转载, 请标明出处
       本文出处: http://blog.youkuaiyun.com/dyron


9.1 sysfs文件系统
    
    sysfs文件系统可以取代ioctl的功能. 
    sysfs文件系统的初始化发生在linux系统的启动阶段:
    int __init sysfs_init(voi]]></description><category></category></item><item><title><![CDATA[深入linux设备驱动程序内核机制(第八章) 读书笔记]]></title><link>https://blog.youkuaiyun.com/dyron/article/details/9117223</link><guid>https://blog.youkuaiyun.com/dyron/article/details/9117223</guid><author>dyron</author><pubDate>Tue, 18 Jun 2013 09:07:08 +0800</pubDate><description><![CDATA[第八章 时间管理

    驱动对时间进行操作, 典型的可以分为两大类:延时与定时. 前者是两个连续的动作A与B之间插入一段时间空
    白, 即在A执行后需要等待若干时间才能执行B, 这段时间空白内, 处理哭也许是进入忙等待, 也许是切换到一
    个新进程上. 后者是在一个指定的时间点到后执行某此动作, 轮询是最典型的应用.
     欢迎转载本文, 请标明出处
     本文]]></description><category></category></item><item><title><![CDATA[深入linux设备驱动程序内核机制(第七章) 读书笔记]]></title><link>https://blog.youkuaiyun.com/dyron/article/details/9109389</link><guid>https://blog.youkuaiyun.com/dyron/article/details/9109389</guid><author>dyron</author><pubDate>Mon, 17 Jun 2013 09:10:46 +0800</pubDate><description><![CDATA[第七章 设备文件的高级操作



      本文欢迎转载, 请标明出处.
       本文出处:http://blog.youkuaiyun.com/dyron


7.1 ioctl文件操作

    7.1.1 ioctl的系统调用

    用户空间ioctl的原型为: int ioctl(int fd, int request, ...);
    驱动空间ioctl的原]]></description><category></category></item><item><title><![CDATA[深入linux设备驱动程序内核机制(第六章) 读书笔记]]></title><link>https://blog.youkuaiyun.com/dyron/article/details/9091779</link><guid>https://blog.youkuaiyun.com/dyron/article/details/9091779</guid><author>dyron</author><pubDate>Fri, 14 Jun 2013 09:31:27 +0800</pubDate><description><![CDATA[第六章 延迟操作

    tasklet需要在中断上下文中执行, 所以有些延尽操作无法用它来完成, 为此内核又提供了一个期于进程的延
    迟操作实现机制, 工作队列workqueue.


本文欢迎转载
本文出处:http://blog.youkuaiyun.com/dyron


6.1 tasklet

    tasklet是内核定义的几种softirq之一, 中断处理例程]]></description><category></category></item><item><title><![CDATA[深入linux设备驱动程序内核机制(第五章) 读书笔记]]></title><link>https://blog.youkuaiyun.com/dyron/article/details/9082365</link><guid>https://blog.youkuaiyun.com/dyron/article/details/9082365</guid><author>dyron</author><pubDate>Thu, 13 Jun 2013 09:36:48 +0800</pubDate><description><![CDATA[第5章 中断处理

    外设与处理器交互的手段分为两种:轮询和中断. 对于轮询, 处理器不停的查询外设状态. 而中断, 在外设满
    足处处理器要求时, 主动发送信号给处理器.
本文欢迎转载
出处:http://blog.youkuaiyun.com/dyron



5.1 中断的硬件框架

    处理器一般只有两根左右的中断pin, 而外设很多, 为解决这个问题, 设备的中]]></description><category></category></item><item><title><![CDATA[深入linux设备驱动程序内核机制(第四章) 读书笔记]]></title><link>https://blog.youkuaiyun.com/dyron/article/details/9060831</link><guid>https://blog.youkuaiyun.com/dyron/article/details/9060831</guid><author>dyron</author><pubDate>Sun, 09 Jun 2013 08:56:04 +0800</pubDate><description><![CDATA[第四章 互斥与同步

    本文欢迎大家转载
    原文出自: http://blog.youkuaiyun.com/dyron



4.1 并发的来源
    并发, 是指可能导致对共享资源的访问出现竞争状态的若干执行路径, 不一定是指严格的时间意义上的并发执行
    linux系统下并发的来源主要有:
    . 中断处理路径
    当系统正在执行当前进程时, 发生中断,]]></description><category></category></item><item><title><![CDATA[深入linux设备驱动程序内核机制(第三章) 读书笔记]]></title><link>https://blog.youkuaiyun.com/dyron/article/details/9044407</link><guid>https://blog.youkuaiyun.com/dyron/article/details/9044407</guid><author>dyron</author><pubDate>Fri, 07 Jun 2013 09:32:16 +0800</pubDate><description><![CDATA[第三章 分配内存
    内存的管理总体上可以分为两大类:一是对物理内存的管理, 二是对虚拟内存的管理. 前者是用于特定的平台
    构架上实际物理内存空间管理, 后者用于特定处理器体系架构上虚拟地址空间的管理.



本文欢迎转载
本文出处:blog.youkuaiyun.com/dyron


3.1 物理内存的管理
    物理内存定义方面, 内存节点, 内存区域和内存页. 对物]]></description><category></category></item><item><title><![CDATA[深入linux设备驱动程序内核机制(第二章) 读书笔记]]></title><link>https://blog.youkuaiyun.com/dyron/article/details/9036061</link><guid>https://blog.youkuaiyun.com/dyron/article/details/9036061</guid><author>dyron</author><pubDate>Thu, 06 Jun 2013 09:33:43 +0800</pubDate><description><![CDATA[第二章    字符设备驱动程序

本文 欢迎转载, 

原文地址: blog.youkuaiyun.com/dyron
    内核为了简化设备驱动程序员的工作， 从各异的设备中提取出了共性的特征， 将其化分为三大类: 字符设备
    ，块设备，网络设备。内核针对每一类设备都提供了驱动模型框架。

2.1 应用程序与设备驱动程序互动实例
    书上实现了一个调用设备驱动程序的实例， 包括]]></description><category></category></item><item><title><![CDATA[深入linux设备驱动程序内核机制(第一章) 读书笔记]]></title><link>https://blog.youkuaiyun.com/dyron/article/details/9022629</link><guid>https://blog.youkuaiyun.com/dyron/article/details/9022629</guid><author>dyron</author><pubDate>Tue, 04 Jun 2013 15:24:04 +0800</pubDate><description><![CDATA[第一章  内核模块
1.1 内核模块的文件模式
   本文 欢迎转载, 
原文地址: blog.youkuaiyun.com/dyron


    . 内核模块都是ko形式存在的， 类似于动态库的so， 数据组织形式上是elf(Executable and
      Linkable Format)格式， 是一种普通的可重定位的目标文件。

    . elf模式中，我们关心头部的elf]]></description><category></category></item><item><title><![CDATA[C程序员转JAVA要点]]></title><link>https://blog.youkuaiyun.com/dyron/article/details/8684961</link><guid>https://blog.youkuaiyun.com/dyron/article/details/8684961</guid><author>dyron</author><pubDate>Sun, 17 Mar 2013 21:49:42 +0800</pubDate><description><![CDATA[1. char c 可以存一个中文字符
2. 如果你已经增加了一个有参的构造函数， 编译器将不会再增加无参的构造函数。需要注意此时new 时要加参数。
3. this 代表调用函数的这个对象。 一般情况可以被省略，如果方法的参数与成员变量同名，则this不可以被省略。
4. this 可以在一个构造函数中调用另外一个构造函数， this等于调用本类当中的另一个构造函数。 this(addr,]]></description><category></category></item><item><title><![CDATA[嵌入式程序员应知道的0x10个基本问题]]></title><link>https://blog.youkuaiyun.com/dyron/article/details/8627167</link><guid>https://blog.youkuaiyun.com/dyron/article/details/8627167</guid><author>dyron</author><pubDate>Fri, 01 Mar 2013 17:40:43 +0800</pubDate><description><![CDATA[嵌入式程序员应知道的0x10个基本问题
1 . 用预处理指令#define 声明一个常数，用以表明1年中有多少秒（忽略闰年问题）
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL
我在这想看到几件事情：
1) #define 语法的基本知识（例如：不能以分号结束，括号的使用，等等）
2)懂得预处理器将为你计算常数表达式的值，因此，直接写出你是]]></description><category></category></item><item><title><![CDATA[C指针声明解读之左右法则]]></title><link>https://blog.youkuaiyun.com/dyron/article/details/8627161</link><guid>https://blog.youkuaiyun.com/dyron/article/details/8627161</guid><author>dyron</author><pubDate>Fri, 01 Mar 2013 17:39:16 +0800</pubDate><description><![CDATA[C指针声明解读之左右法则
        C语言所有复杂的指针声明，都是由各种声明嵌套构成的。如何解读复杂指针声明呢？右左法则是一个既著名又常用的方法。不过，右左法则其实并不是C标准里面的内容，它是从C标准的声明规定中归纳出来的方法。C标准的声明规则，是用来解决如何创建声明的，而右左法则是用来解决如何辩识一个声明的，两者可以说是相反的。右左法则的英文原文是这样说的：
 
        Th]]></description><category></category></item><item><title><![CDATA[vim配置＋cscope +ctags + taglist]]></title><link>https://blog.youkuaiyun.com/dyron/article/details/8627023</link><guid>https://blog.youkuaiyun.com/dyron/article/details/8627023</guid><author>dyron</author><pubDate>Fri, 01 Mar 2013 17:07:53 +0800</pubDate><description><![CDATA[set softtabstop=4                                                                                                       
set shiftwidth=4]]></description><category></category></item><item><title><![CDATA[ubuntu12.04 下android编译环境自动安装脚本及资源]]></title><link>https://blog.youkuaiyun.com/dyron/article/details/8471444</link><guid>https://blog.youkuaiyun.com/dyron/article/details/8471444</guid><author>dyron</author><pubDate>Sun, 06 Jan 2013 09:03:31 +0800</pubDate><description><![CDATA[ubuntu12.04 下android编译环境自动安装脚本及资源]]></description><category></category></item><item><title><![CDATA[搭建distcc 分布式编译脚本]]></title><link>https://blog.youkuaiyun.com/dyron/article/details/8425941</link><guid>https://blog.youkuaiyun.com/dyron/article/details/8425941</guid><author>dyron</author><pubDate>Mon, 24 Dec 2012 17:31:57 +0800</pubDate><description><![CDATA[sudo apt-get install distcc
apt-get install distccmon-gnome
vi ~/.profile =>
       add "/usr/local/arm-linux-androideabi-4.4.x/bin" to PATH
sudo vi /etc/default/distcc =>
       STARTDISTCC="tru]]></description><category></category></item><item><title><![CDATA[杂音 & pop 音的解决方法]]></title><link>https://blog.youkuaiyun.com/dyron/article/details/8161875</link><guid>https://blog.youkuaiyun.com/dyron/article/details/8161875</guid><author>dyron</author><pubDate>Thu, 08 Nov 2012 13:53:53 +0800</pubDate><description><![CDATA[杂音 & pop 音的解决方法

1. 喇叭有严重的“吱吱”破音，绝大多数的原因有可能在于V(out)电压不稳定，所以最好测一下无负载时的输出电压。同时也可以测量 VCC –即boost 的输出/输入电压。正常的VCC   可以通过客户的 反馈电阻和 VCC负载电阻求得。

2、客户有杂音：估计是信号的干扰，一般是电源的干扰因素占最大的比重，建议测量静态电流 IQ  。

3、POP]]></description><category></category></item><item><title><![CDATA[linux 3.0.8 alsa数据流程分析]]></title><link>https://blog.youkuaiyun.com/dyron/article/details/8154725</link><guid>https://blog.youkuaiyun.com/dyron/article/details/8154725</guid><author>dyron</author><pubDate>Tue, 06 Nov 2012 19:44:38 +0800</pubDate><description><![CDATA[ALSA打开数据流程 
    soc_pcm_open => cpu_dai->driver->ops->startup => platform->driver->ops->open => codec_dai->driver->ops->startup \
    => rtd->dai_link->ops->startup  
 
    ALSA的HW_param流程 
    s]]></description><category></category></item><item><title><![CDATA[linux 3.0.8 camera 驱动分析]]></title><link>https://blog.youkuaiyun.com/dyron/article/details/8111700</link><guid>https://blog.youkuaiyun.com/dyron/article/details/8111700</guid><author>dyron</author><pubDate>Thu, 25 Oct 2012 16:32:41 +0800</pubDate><description><![CDATA[留用:  注册v4l2_device, 初始化isp， 注册i2c, 注册video_device, 初始化video_subdevices.


镜头=>传感器=>AMP放大=>ADC=>ISP=> MIPI||DVP =>DDR =>MMAP =>user space]]></description><category></category></item><item><title><![CDATA[手动从动态库中加载函数接口]]></title><link>https://blog.youkuaiyun.com/dyron/article/details/7699735</link><guid>https://blog.youkuaiyun.com/dyron/article/details/7699735</guid><author>dyron</author><pubDate>Thu, 28 Jun 2012 16:00:18 +0800</pubDate><description><![CDATA[#include 
#include 
#include 

int main(int argc, char *argv[])
{
	int ret = 0;
	void *function;
	char *pzerror;
	char name[20] = {0};
	char soname[20] = {0};
	
	void (*test)(int, int);

	while ((ret]]></description><category></category></item></channel></rss>