<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[jidonghui的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jidonghui</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jidonghui]]></copyright><item><title><![CDATA[2416 spi]]></title><link>https://blog.youkuaiyun.com/jidonghui/article/details/8187863</link><guid>https://blog.youkuaiyun.com/jidonghui/article/details/8187863</guid><author>jidonghui</author><pubDate>Thu, 15 Nov 2012 17:18:22 +0800</pubDate><description><![CDATA[参考资料：

6410手册/2416手册 Kernel部分驱动代码
作者：agan
联系邮箱 beswipe@yahoo.com.cn
racer.blog.chinaunix.net
转载须注明出处！
  

  SPI接口简述

  SPI是 Serial Peripheral Interface（串型外部接口）的缩写。SPI接口有4根PIN脚，分别是：]]></description><category></category></item><item><title><![CDATA[三星U-Boot-1.1.6源码分析]]></title><link>https://blog.youkuaiyun.com/jidonghui/article/details/7675270</link><guid>https://blog.youkuaiyun.com/jidonghui/article/details/7675270</guid><author>jidonghui</author><pubDate>Tue, 19 Jun 2012 08:41:36 +0800</pubDate><description><![CDATA[最近在看uboot的源码，做些笔记。

lowlevel_init.S (board\samsung\smdk6410)这个文件主要是与板级配置相关的代码，看他在那个目录就知道了。不多说了，开始看源码。

1、












#include 
#include 

#include 
#include "smdk6410_val.h"

_]]></description><category></category></item><item><title><![CDATA[窥视Linux内核的行为的一些方法]]></title><link>https://blog.youkuaiyun.com/jidonghui/article/details/7675267</link><guid>https://blog.youkuaiyun.com/jidonghui/article/details/7675267</guid><author>jidonghui</author><pubDate>Tue, 19 Jun 2012 08:36:31 +0800</pubDate><description><![CDATA[想了解Linux内核的行为，需要一定的偷窥经验，大致可以分为以下几个：


1.使用printk
直接在内核代码或者模块代码的你想偷窥的地方printk一些信息。这种方式需要你会编译内核代码以及编译内核模块，以及将其正确安装进内核并启动之。虽然需要这么多知识，然而这种方式是比较土的。除非万不得已，一定有比这更加简单的方法。

2.查看dmesg
这种方式取决于内核会输出哪些信息。dm]]></description><category></category></item><item><title><![CDATA[Linux 内核中的 cdev_alloc和cdev_add]]></title><link>https://blog.youkuaiyun.com/jidonghui/article/details/7675265</link><guid>https://blog.youkuaiyun.com/jidonghui/article/details/7675265</guid><author>jidonghui</author><pubDate>Tue, 19 Jun 2012 08:35:05 +0800</pubDate><description><![CDATA[Linux内核中每个字符设备都对应一个
 cdev 结构的变量，下面是它的定义：
linux-2.6.22/include/linux/cdev.h
struct cdev {
struct kobject kobj;          // 每个 cdev 都是一个 kobject










struct module *owner;       // 指]]></description><category></category></item><item><title><![CDATA[Make menuconfig 详解]]></title><link>https://blog.youkuaiyun.com/jidonghui/article/details/7675261</link><guid>https://blog.youkuaiyun.com/jidonghui/article/details/7675261</guid><author>jidonghui</author><pubDate>Tue, 19 Jun 2012 08:33:44 +0800</pubDate><description><![CDATA[make menuconfig 图形化的内核配置make mrproper -----删除不必要的文件和目录.

1  #make config（基于文本的最为传统的配置界面，不推荐使用）

2  #make menuconfig（基于文本选单的配置界面，字符终端下推荐使用）

注意：使用make menuconfig 需要安装ncurses( sudo apt-get install]]></description><category></category></item><item><title><![CDATA[linux内核对S3C2410睡眠模式的支持]]></title><link>https://blog.youkuaiyun.com/jidonghui/article/details/7632993</link><guid>https://blog.youkuaiyun.com/jidonghui/article/details/7632993</guid><author>jidonghui</author><pubDate>Tue, 05 Jun 2012 09:13:44 +0800</pubDate><description><![CDATA[linux内核对S3C2410睡眠模式的支持
作者：刘洪涛，华清远见嵌入式学院高级讲师，ARM ATC授权培训讲师。
一、S3C2410支持4种供电模式
（1）NORMAL MODE
耗电最大、可以通过关闭具体控制器的时钟来节电
（2）SLOW MODE
在此模式下可以没有内部PLL，耗电情况依赖于外部时钟的频率
（3）IDLE MODE
FCLK被关断，主要由于CPU core节]]></description><category></category></item><item><title><![CDATA[bootloader启动图示]]></title><link>https://blog.youkuaiyun.com/jidonghui/article/details/7595515</link><guid>https://blog.youkuaiyun.com/jidonghui/article/details/7595515</guid><author>jidonghui</author><pubDate>Wed, 23 May 2012 17:28:51 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[L﻿inux中mmap系统调用原理分析与实现]]></title><link>https://blog.youkuaiyun.com/jidonghui/article/details/7595436</link><guid>https://blog.youkuaiyun.com/jidonghui/article/details/7595436</guid><author>jidonghui</author><pubDate>Wed, 23 May 2012 17:12:33 +0800</pubDate><description><![CDATA[1、 驱动描述
       驱动程序由struct device_driver 描述 :

struct device_driver {

const char *name; /*驱动程序的名字( 体现在 sysfs 中 )*/
struct bus_type *bus; /*驱动程序所在的总线*/










struct module
*owner]]></description><category></category></item><item><title><![CDATA[Linux设备驱动模型]]></title><link>https://blog.youkuaiyun.com/jidonghui/article/details/7595401</link><guid>https://blog.youkuaiyun.com/jidonghui/article/details/7595401</guid><author>jidonghui</author><pubDate>Wed, 23 May 2012 17:08:35 +0800</pubDate><description><![CDATA[kobject原理与实例分析



1、Sysfs文件系统

"sysfsis a ram-based filesystem initially based on ramfs. It provides ameans to export kernel data structures, their attributes, and thelinkages between them to us]]></description><category></category></item><item><title><![CDATA[linux驱动修炼之道-混杂设备]]></title><link>https://blog.youkuaiyun.com/jidonghui/article/details/7595378</link><guid>https://blog.youkuaiyun.com/jidonghui/article/details/7595378</guid><author>jidonghui</author><pubDate>Wed, 23 May 2012 17:00:42 +0800</pubDate><description><![CDATA[Linux驱动中把无法归类的五花八门的设备定义为混杂设备(用miscdevice结构体表述)。miscdevice共享一个主设备号MISC_MAJOR(即10)，但次设备号不同。 所有的miscdevice设备形成了一个链表，对设备访问时内核根据次设备号查找对应的miscdevice设备，然后调用其file_operations结构中注册的文件操作接口进行操作。 在内核中用struct miscd]]></description><category></category></item><item><title><![CDATA[Linux音频编程1]]></title><link>https://blog.youkuaiyun.com/jidonghui/article/details/7520060</link><guid>https://blog.youkuaiyun.com/jidonghui/article/details/7520060</guid><author>jidonghui</author><pubDate>Sat, 28 Apr 2012 14:26:38 +0800</pubDate><description><![CDATA[Linux音频编程1
虽然目前Linux的优势主要体现在网络服务方面，但事实上同样也有着非常丰富的媒体功能，本文就是以多媒体应用中最基本的声音为对象，介绍如何在Linux平台下开发实际的音频应用程序，同时还给出了一些常用的音频编程框架。
一、数字音频
音频信号是一种连续变化的模拟信号，但计算机只能处理和记录二进制的数字信号，由自然音源得到的音频信号必须经过一定的变换，成为数字音频信号之后，才]]></description><category></category></item><item><title><![CDATA[ubuntu 安装source insight-完美使用]]></title><link>https://blog.youkuaiyun.com/jidonghui/article/details/7488957</link><guid>https://blog.youkuaiyun.com/jidonghui/article/details/7488957</guid><author>jidonghui</author><pubDate>Mon, 23 Apr 2012 11:26:02 +0800</pubDate><description><![CDATA[相信很多朋友在Windows下都 习惯用Source Insight来阅读分析源代码了，对于LINUX下面的工具，确实有比较高效的，配置起来起对比较麻烦，也比较繁琐，相信很多人肯定希望能在Linux下面也能用到Source Insight，今天我就把我Ubuntu10.04上使用Source Insight的方法与大家分享！




      这是我的系统信息：Linux gavin-]]></description><category></category></item><item><title><![CDATA[二维码]]></title><link>https://blog.youkuaiyun.com/jidonghui/article/details/7473603</link><guid>https://blog.youkuaiyun.com/jidonghui/article/details/7473603</guid><author>jidonghui</author><pubDate>Wed, 18 Apr 2012 14:52:24 +0800</pubDate><description><![CDATA[什么是条码技术？
　　条形码，简称“条码”，是由一组黑白相间、宽度不同的条状符号组成。
　　条码技术是研究如何把计算机所需要的数据表示成条码形式，和如何将条码表示的数据和符号转变为计算机可以自动采集、识别的数据。因而，条码技术就包括从编码到制作、识读、处理等一系列技术。
　　根据不同的编码规则，提出的编码方案已经有多达四十余种，目前应用最为广泛的有：交叉二五码、三九码、UPC码、EAN码、1]]></description><category></category></item><item><title><![CDATA[C指针和内存泄漏]]></title><link>https://blog.youkuaiyun.com/jidonghui/article/details/7458720</link><guid>https://blog.youkuaiyun.com/jidonghui/article/details/7458720</guid><author>jidonghui</author><pubDate>Fri, 13 Apr 2012 17:19:48 +0800</pubDate><description><![CDATA[引言

对于任何使用 C 语言的人，如果问他们 C 语言的最大烦恼是什么，其中许多人可能会回答说是指针和内存泄漏。这些的确是消耗了开发人员大多数调试时间的事项。指针和内存泄漏对某些开发人员来说似乎令人畏惧，但是一旦您了解了指针及其关联内存操作的基础，它们就是您在 C 语言中拥有的最强大工具。

本文将与您分享开发人员在开始使用指针来编程前应该知道的秘密。本文内容包括：


导致内存破]]></description><category></category></item><item><title><![CDATA[内核定时器的使用(好几个例子add_timer)]]></title><link>https://blog.youkuaiyun.com/jidonghui/article/details/7449546</link><guid>https://blog.youkuaiyun.com/jidonghui/article/details/7449546</guid><author>jidonghui</author><pubDate>Wed, 11 Apr 2012 14:43:26 +0800</pubDate><description><![CDATA[LINUX内核定时器是内核用来控制在未来某个时间点（基于jiffies）调度执行某个函数的一种机制，其实现位于  和 kernel/timer.c 文件中。被调度的函数肯定是异步执行的，它类似于一种“软件中断”，而且是处于非进程的上下文中，所以调度函数必须遵守以下规则：

1) 没有 current 指针、不允许访问用户空间。因为没有进程上下文，相关代码和被中断的进程没有任何联系。

2)]]></description><category></category></item><item><title><![CDATA[Linux驱动程序开发009 - 使用内核内存]]></title><link>https://blog.youkuaiyun.com/jidonghui/article/details/7449540</link><guid>https://blog.youkuaiyun.com/jidonghui/article/details/7449540</guid><author>jidonghui</author><pubDate>Wed, 11 Apr 2012 14:36:14 +0800</pubDate><description><![CDATA[序言
我们在编写用户空间程序的时候经常需要动态或静态（如静态数组）的使用系统内存资源，同样在内核空间也有类似的操作，但内核空间的操作要远比用户空间复杂的多，这一章就对如何在驱动程序中使用内存做个系统的介绍。

对于一个32位的系统来说，可访问的内存地址空间是4G。Linux系统将这4G的地址空间划分为两部分，以x86为例，0-3G （0 - PAGE_OFFSET, 0xC0000000）是]]></description><category></category></item><item><title><![CDATA[Linux驱动程序开发007 - 设备驱动模型初探]]></title><link>https://blog.youkuaiyun.com/jidonghui/article/details/7444077</link><guid>https://blog.youkuaiyun.com/jidonghui/article/details/7444077</guid><author>jidonghui</author><pubDate>Tue, 10 Apr 2012 10:06:17 +0800</pubDate><description><![CDATA[序言

从这一章开始，我们将详细的介绍Linux的设备驱动模型。Linux设备驱动模型是一个相当复杂的系统，对于初学者来说真有些无从入手。而且更加困难的是，随着新的Linux Kernel的release，Linux的设备驱动模型总会有或大或小的变化，我们将尽量展现
 Linux Kernel 的这种变化。

早期的Linux内核（版本2.4之前）并没有实现一个统一的设备模型，设备节点的]]></description><category></category></item><item><title><![CDATA[Linux驱动程序开发 006- 内核同步技术]]></title><link>https://blog.youkuaiyun.com/jidonghui/article/details/7443905</link><guid>https://blog.youkuaiyun.com/jidonghui/article/details/7443905</guid><author>jidonghui</author><pubDate>Tue, 10 Apr 2012 09:35:11 +0800</pubDate><description><![CDATA[序言
在前面，我们介绍了常用两种内核同步技术：自旋锁和信号量。这里我们接着介绍其他的内核同步技术。


内核同步技术
前面我们提到，信号量是基于原子操作的，它的信号初始值count是一个原子类型，下面我们就对它做详细的介绍，同时我们还会讲解其他的内核同步技术。
原子操作
原子操作是内核中比较低级的同步操作接口，它保证指令以“原子”的方式执行而不能被打断。内核中提供了两种原子操作接口，]]></description><category></category></item><item><title><![CDATA[Linux驱动程序开发 005- 内核同步技术]]></title><link>https://blog.youkuaiyun.com/jidonghui/article/details/7443898</link><guid>https://blog.youkuaiyun.com/jidonghui/article/details/7443898</guid><author>jidonghui</author><pubDate>Tue, 10 Apr 2012 09:34:17 +0800</pubDate><description><![CDATA[序言
就像我们在操作系统里学习的那样，如果多个程序（进程或线程）同时访问临界区数据就会发生竞争。存在竞争条件的程序会产生不可预料的结果。消除竞争的方法一般就是同步的访问临界区数据（原子访问）。Linux内核提供了多种技术用来实现内核同步操作。下面我们就分别介绍。


内核同步技术
Linux内核是多进程、多线程的操作系统，它提供了相当完整的内核同步方法。作为一个总结，我们先列出内核同步方]]></description><category></category></item><item><title><![CDATA[Linux驱动程序开发005 - 内核同步技术]]></title><link>https://blog.youkuaiyun.com/jidonghui/article/details/7443854</link><guid>https://blog.youkuaiyun.com/jidonghui/article/details/7443854</guid><author>jidonghui</author><pubDate>Tue, 10 Apr 2012 09:27:11 +0800</pubDate><description><![CDATA[序言
就像我们在操作系统里学习的那样，如果多个程序（进程或线程）同时访问临界区数据就会发生竞争。存在竞争条件的程序会产生不可预料的结果。消除竞争的方法一般就是同步的访问临界区数据（原子访问）。Linux内核提供了多种技术用来实现内核同步操作。下面我们就分别介绍。

内核同步技术
Linux内核是多进程、多线程的操作系统，它提供了相当完整的内核同步方法。作为一个总结，我们先列出内核同步方法列]]></description><category></category></item></channel></rss>