自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 收藏
  • 关注

转载 Linux内核bridge浅析

原文地址:http://blog.chinaunix.net/uid-20662820-id-3413865.htmlLinux网桥模型:       Linux内核通过一个虚拟的网桥设备来实现桥接的,这个设备可以绑定若干个以太网接口设备,从而将它们桥接起来。如下图所示: 网桥设备br0绑定了eth0和eth1。对于网络协议栈的上层来说,只看得到br0,因为桥接是在数据

2013-10-15 10:47:52 948

转载 sdio架构初解

原文地址:http://blog.csdn.net/zoe6553/article/details/6588306一.前言SD卡的大名是耳熟能详,但是SDIO总线确是不为人解,不过说起他的近亲SPI就知道了。我们这里主要是理解SDIO总线,并不去理解SPI总线。也许大家会畏惧其庞大的代码,其实我们并不需要详细理解其具体的实现,我们需要理解其架构。二.主机(host)

2013-07-02 08:08:49 966

转载 wifi详解(三)

1        WLAN驱动结构介绍1.1      SDIO驱动在drivers/mmc下面是mmc卡,SD卡和SDIO卡驱动部分,其中包括host驱动,card驱动和core部分,由于网络接口卡挂接在SDIO总线上,所以在此之前我们先看一下SDIO的驱动结构。其驱动在drivers/mmc目录下的结构为: |-- mmc|   |-- card

2013-06-17 19:53:23 1965

转载 wifi详解(二)

1        Wifi模块解析和启动流程1.1      框架分析WIFI整体框架如图所示:首先,用户程序使用WifiManager类来管理Wifi模块,它能够获得Wifi模块的状态,配置和控制Wifi模块,而所有这些操作都要依赖 Wifiservice类来实现。 WifiService和WifiMonitor类是Wifi框架的核心,如图所示。下面先来看

2013-06-17 19:51:44 886

转载 wifi详解(一)

1        WLAN技术WLAN是英文WirelessLAN的缩写,就是无线局域网的意思。无线以太网技术是一种基于无线传输的局域网技术,与有线网络技术相比,具有灵活、建网迅速、个人化等特点。将这一技术应用于电信网的接入网领域,能够方便、灵活地为用户提供网络接入,适合于用户流动性较大、有数据业务需求的公共场所、高端的企业及家庭用户、需要临时建网的场合以及难以采用有线接入方式的环境等。

2013-06-17 19:32:36 798

转载 浅析wlan驱动和sd卡硬件绑定的简单流程

struct mmc_card *mmc_alloc_card(struct mmc_host *host){    struct mmc_card *card;    card = kzalloc(sizeof(struct mmc_card), GFP_KERNEL);    if (!card)        return ERR_PTR(-ENOMEM);

2013-04-17 22:24:09 746

转载 SD卡分析三

4: CARD层分析:因为这些记 忆卡都是块设备,当然需要提供块设备的驱动程序,这部分就是实现了将你的SD卡如何实现为块设备的。先看block.C中的probe函数MMC 块设备用如下结构表示:struct mmc_blk_data {    spinlock_t    lock;    struct gendisk    *disk;    struct mmc_queu

2013-04-17 22:13:26 845

转载 SD卡分析二

4、CORE层分析:CORE层完成了不同协议和规范的实现,并为HOST层的驱动提供了接口函数,在HOST层我们曾经调用的两个函数:mmc_alloc_host(sizeof(struct s3cmci_host), &pdev->dev);mmc_add_host(mmc );我 们就从这两个函数入手,来分析CORE层与HOST层是如何交互的。先看mmc_alloc_host函

2013-04-17 22:12:41 777

转载 SD卡分析一

本文先介绍了一下MMC 的基本框架结构,然后采用自底向上的方法来分析整个MMC 层是如何共同作用的。阅读时请结合参考资料1和2.参考资料:1.SD Memory Card Specifications / Part 1. Physical Layer Specification; Version 1.0  2.LDD3 CHAPTER-16 BLOCK DEVICE3. http:

2013-04-17 22:11:40 695

转载 wpa_supplicant 笔记

原文地址:http://hi.baidu.com/leran0222/item/a4b33b77923ecd44ef1e53fc来自于wpa_supplicant-devel文档2、代码结构核心功能、通用辅助功能、加密功能、TLS库、配置、控制接口、WPA提供者、EAP点、EAPOL提供、窗口端口和测试程序。wpa_supplicant的实现被分成几个独立的模块。核心代码功能包

2013-04-16 13:23:50 1573

转载 基于linux-2.6.38.8内核的wifi驱动分析

原文地址:http://blog.csdn.net/wh_19910525/article/details/7392518//参考给一些前辈们的文章1、sdio接口层解析SDIO总线     SDIO总线和USB总线类似,SDIO也有两端,其中一端是HOST端,另一端是device端。所有的通信都是由HOST端发送命令开始的,Device端只要能解析命令,就可以相互

2013-04-15 21:02:38 649

转载 Linux tasklet 分析笔记

原文地址:http://blog.csdn.net/chengqianyun2002/article/details/1607005Chapter 1:驱动程序在初始化时,通过函数task_init建立一个tasklet,然后调用函数tasklet_schedule将这个tasklet放在 tasklet_vec链表的头部,并唤醒后台线程ksoftirqd。当后台线程ksoftir

2013-04-09 23:22:09 532

转载 iwpriv 解析

原文地址:http://blog.csdn.net/wanggongzhen1983/article/details/5330211iwpriv是处理下面的wlan_private_args的所有扩展命令,iwpriv的实现上,是这样的,=>main=>set_private=>iw_get_priv_info获取wireless网卡所能处理的所有wlan_priv

2013-04-02 10:53:58 2053

转载 wpa_supplicant软件架构分析

原文地址:http://blog.csdn.net/fxfzz/article/details/61764141. 启动命令wpa supplicant 在启动时,启动命令可以带有很多参数,目前我们的启动命令如下:wpa_supplicant /system/bin/wpa_supplicant -Dwext -ieth0 -c/data/wifi/wpa_supplicant

2013-03-25 20:45:15 741

转载 跟一下wpa_supplicant(3-2) connect AP

原文地址:http://blog.chinaunix.net/uid-20514606-id-3260320.html接前面(3-1)继续: 5. 接分支4.authenticate response 来了和前面一样:wpa_driver_nl80211_event_receive到=> process_event   收到 NL80211_CMD_AUTHEN

2013-03-25 20:42:34 1444

转载 跟一下wpa_supplicant(3-1) connect AP

原文地址:http://blog.chinaunix.net/uid-20514606-id-3260316.htmlWPA-PSK连接从packages\apps\Settings\src\com\android\settings\wifi\WifiSettings.java  和 WifiDialog.java 开始1.如果你点中某个AP=> onClick执行 (Wi

2013-03-25 20:39:44 1184

转载 跟一下wpa_supplicant(2) wifi enable

原文地址:http://blog.chinaunix.net/uid-20514606-id-3259410.html在wifi setting 中 check enanble 开始继续1.  收到MESSAGE_ENABLE_WIFIsetWifiEnabledBlocking(wifiService.java)  => mWifiStateTracker.loadDrive

2013-03-25 20:36:32 1138

转载 跟一下wpa_supplicant(1) 初始化

原文地址: http://blog.chinaunix.net/uid-20514606-id-3259402.html一切从 main.c 开始: (=>表示第1级, 那么==>表示下一级,类推)os_program_init => 参数解析& 获取=> wpa_supplicant_init(&params)   ==> eap_register_methods /* 注册

2013-03-25 20:27:05 1271

转载 Linux设备驱动之I2C架构分析

一:前言I2c是philips提出的外设总线.I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL.正因为这样,它方便了工程人员 的布线.另外,I2C是一种多主机控制总线.它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须由主机发起才可以.而 I2C 是基于multi master机制.一同总线上可允许多个master.关于I2C协议的知识,这里不

2012-06-28 15:27:14 568

转载 为Android应用程序读取/dev下设备而提权(一)

倘若应用程序需要对/dev/xxx进行读写操作,就需要提升其权限。提权方法不唯一,需要根据具体需求情况而选择。归根结底,终究都落到chmod 777 /dev/xxx 上,不同的是,chmod操作被执行在何时何地,在此做个分析总结。        内核启动后会执行/system/init,传说中的系统1号进程,init程序起初的任务是初始化,包括各种mkdir来构建文件系统,得到硬件信息建立设

2012-02-23 14:18:01 785

转载 Linux ARP协议源码解析

arp_tbl是一个类型为struct neigh_table的全局变量,它是一个ARP的缓存表,也称为邻居表。协议栈通过ARP协议获取到的网络上邻居主机的IP地址与MAC地址的对应关系都会保存在这个表中,以备下次与邻居通讯时使用,同时,ARP模块自身也会提供一套相应的机制来更新和维护这个邻居表。下面逐个分析arp_tbl中的重要成员数据与函数。   entry_size,key_le

2012-02-08 21:25:01 3258

转载 android的tone音源代码DTMF双音频何快速计算正弦波

android的tone音正弦波快速产生算法源代码DTMF双音频和如何快速计算正弦波假如我们需要产生取样频率为8KHz的440Hz的正弦波,那么a1=2*cos(2*pi*440/8000)=1.8817615,而y[1]=sin(2*pi*440/8000)=0.33873792。来拆开解读一下:[luther.gliethttp-20110419]{{{1. 其中2*p

2012-01-30 12:31:35 3002 1

转载 Linux内核网络源码分析——发送数据

原文地址: http://www.penna.cn/blog/?p=218UDP发送:|       sys_write               fs/read_write.c|       sock_writev             net/socket.c                    |       sock_sendmsg            net/

2011-12-24 11:00:15 1031

转载 Linux内核中的等待队列--init_waitqueue_head等

Linux内核的等待队列是以双循环链表为基础数据结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制。在Linux2.4.21中,等待队列在源代码树include/linux/wait.h中,这是一个通过list_head连接的典型双循环链表,如下图所示。在这个链表中,有两种数据结构:等待队列头(wait_queue_head_t)和等待队列项(wait_queue

2011-11-25 17:05:57 9353

转载 Linux 2.6.34 内核启动详细分析

内核编译完成后会生成zImage内核镜像文件。关于bootloader加载zImage到内核,并且跳转到zImage开始地址运行zImage的过程,相信大家都很容易理解。但对于zImage是如何解压的过程,就不是那么好理解了。本文将结合部分关键代码,讲解zImage的

2011-08-13 22:38:09 918

转载 Linux-Android启动之Init进程前传

原文地址:http://blog.csdn.net/guopeixin/article/details/5694749对Linux-Android系统的启动做了一些分析,下面的一篇文章侧重讲述Linux启动过程中函数Start_kernel()被调用之前的一些分析,同

2011-08-13 22:34:00 700

转载 zImage内核镜像解压过程详解

本文以linux-2.6.14内核在S3C2410平台上运行为例,讲解内核的解压过程。内核编译完成后会生成zImage内核镜像文件。关于bootloader加载zImage到内核,并且跳转到zImage开始地址运行zImage的过程,相信大家都很容易理解。但对于zImage是

2011-08-13 22:24:36 467

转载 head.s 分析

linux/arch/arm/boot/compressed/head.S这是ARM-Linux运行的第一个文件,这些代码是一个比较独立的代码包裹器。其作用就是解压Linux内核,并将PC指针跳到内核(vmlinux)的第一条指令。Bootloader中传入到Linux中

2011-08-13 22:22:06 689

转载 Linux 2.6.11 MTD驱动情景分析

最近几天为了熟悉linux的驱动开发,我选择了其MTD驱动做了一些研究。我能找到的文章中我觉得有些部分不够细致,所以我还是自己写了一部分分析,希望对别人也能有所帮助,也做为自己的一个备忘,。蓝色文字的部分是从网络上摘录的。一个嵌入式系统经常会使用NOR flash 或NA

2011-08-07 17:06:29 788

转载 adb devices获得的设备标识

在命令行执行adb devices,你会得到连接上的设备,结果里面有每个设备的标识(serial number)。在adb的其他命令中,你可以用adb –s 来指定用某一个设备来执行命令,但是每个设备的serial number都不一样,adb是如何得到的呢?查看adb的源码后,

2011-07-28 13:25:37 8122 3

转载 gpio分析

原文地址:http://blog.csdn.net/ffilman/archive/2009/05/24/4212307.aspx 针对该gpio.c的硬件手册是SPRUE25.pdf,可到TI的网站(www.ti.com)上下载,或直接在谷歌里搜索。以下是两个文件gpio.c和gpio.h的浅析。gpio.c/* * TI DaVinc

2011-06-20 09:08:00 743

转载 Linux 的 Virtual Memory Areas(VMA):基本概念介紹

由 user process 角度來說明的話,VMA 是 user process 裡一段 virtual address space 區塊;virtual address space 是連續的記憶體空間,當然 VMA 也會是連續的空間。VMA 對 Linux 的主要好處是,可以記憶體的使用更有效率,並且更容易管理 user pr

2011-06-19 20:40:00 1099

转载 Linux kernel printk的分析

这是网上找到的别人的文章,写的不错,对printk的原理以及与之相关的console driver描述的还是很清楚的,转贴过来收藏记得在编译linux内核make menuconfig的时候设定输出信息到console,要修改CONFIG_CMDLINE的内容,但是自始至终也没搞懂为何这样设置就可以把打印信息从串口输出呢? 带着这个疑问,我查看了linux的pr

2011-06-04 09:27:00 1352

转载 device_register()和platform_device_register()的区别

<br />platform_device_register向系统注册设备 <br />platform_driver_register向系统注册驱动,过程中在系统寻找注册的设备(根据.name),找到后运行.probe进行初始化。<br />***************************************************************<br />device_register()和platform_device_register()的区别(转载)  <br /><br />

2011-05-20 16:16:00 3652

转载 转一篇讲解网络子系统的帖子

<br />Linux强大的网络功能是如何实现的,让我们一起进入Linux内核的网络系统了解一下吧。<br /><br />7.1. sk_buff结构<br />在Linux内核的网络实现中,使用了一个缓存结构(struct sk_buff)来管理网络报文,这个缓存区也叫套接字缓存。sk_buff是内核网络子系统中最重要的一种数据结构,它贯穿网络报文收发的整个周期。该结构在内核源码的include/linux/skbuff.h文件中定义。我们有必要了解结构中每个字段的意义。<b

2011-05-17 19:39:00 673

转载 netdev_priv()详解

<br />原文地址:http://blog.sina.com.cn/s/blog_559f6ffc0100doyw.html<br /> <br />netdev_priv()详解<br />1. include/linux/netdevice.h<br />#defineNETDEV_ALIGN       32<br />#define NETDEV_ALIGN_CONST  (NETDEV_ALIGN -1)<br />static inline void *netdev

2011-05-17 19:12:00 2606

转载 深入分析 Linux 内核链表

<br />原文地址:http://www.ibm.com/developerworks/cn/linux/kernel/l-chain/index.html<br /> <br />一、 链表数据结构简介<br />链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删除数据。链表的开销主要是访问的顺序性和组织链的空间

2011-05-15 11:46:00 481

转载 内核启动时,设备及驱动初始化的实现

<br />Uboot完成系统的引导并将Linux内核拷贝到内存之后,bootm -> do_bootm_linux()跳转到kernel的起始位置;<br />       压缩过的kernel入口在arch/arm/boot/compressed/head.S,它将调用函数decompress_kernel()<./arch/arm/boot/compressed/misc.c>解压,打印“Uncompressing Linux...”,调用gunzip(),打印"done, boo

2011-05-12 17:29:00 560

转载 字符设备驱动 架构分析

原文地址:http://bbs.chinaunix.net/thread-2033910-1-1.html好长时间没怎么看书了,最近把字符设备驱动部分又复习了一下,写个笔记.Char Device Driver相关数据结构:struct cdev {struct kobject kobj;struct module *owner;const struct file_operations *ops;struct list_head list;dev_t dev;unsigned int count;};str

2011-05-07 00:40:00 478

转载 从用户态的open到内核驱动实现流程

<br />原文地址:http://www.embedu.org/Column/Column249.htm<br /> <br />作者:李强,华清远见嵌入式学院讲师。<br />问题来源:<br />在讲授Linux初级驱动的时候,我发现困惑很多同学的是不真正理解从应用层到我们自己所写的驱动层的调用过程,所以写此文章来大概描述。<br />首先我们知道,在我们目前的Linux系统中,我们大概共约300左右个系统调用,其中syscall_table.S列出了所有的系统调用表。<br />在本文件中记录了所有

2011-05-07 00:30:00 843

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除