marvel wifi 驱动分析
WIFI驱动分析
Revision History
Date |
Issue |
Description |
Author |
<25/02/2009> |
<0.5> |
First draft |
Wangfei |
目录
1. Abstract.. 3
2. Introduction.. 3
3. 用户使用流程.... 3
4. WIFI驱动的初始化.... 5
5. 数据的发送.... 7
6. ioctl的调用逻辑.... 11
7. 电源管理相关的调用逻辑.... 14
8. 剩下的问题.... 15
1. Abstract
2. Introduction
因为将要负责WIFI驱动,所以就开始了WIFI驱动的学习,主要分析了WIFI驱动的初始化,数据的发送流程以及和电源管理相关的部分。
3. 用户使用流程
通常用户的做法就是打开一个socket,调用一个ioctl,等待消息返回,收到消息后继续做下面的事情,然后又等待内核消息的返回,如此循环。
4. WIFI驱动的初始化
这里主要的工作就是注册mmc driver,注册回调函数,包括电源管理的,包括设备添加的,当然还有一些硬件初始化;
这里最重要的是wlan_add_card这个函数做了很多事情,我把我没有分析的代码都略过了:
5. 数据的发送
数据的发送请求从tcp/ip层传到了这里,于是通过唤醒WIFI的主线程的处理函数来发送具体的数据请求;
可见最后数据是通过mmc总线发送到了wifi模组了,而且开始调度下一次的数据发送,至此,数据的发送过程已经分析完了,下面是ioctl的调用逻辑
6. ioctl的调用逻辑
之所以要分析这个,是因为上层和WIFI驱动打交道的方式,多半是通过ioctl的方式进行的,所以…
可以看到WIFI模块对ioctl的处理非常复杂,主要是要处理许多标准的调用,也要处理一些私有的调用;后面还要通过rtnl_notify给上层用户发送消息,这里也是一套机制,我也就不细说了。
7. 电源管理相关的调用逻辑
在系统要求睡眠的时候会调用到sbi_suspend_card,由此开始给WIFI模块发送相关信息,并且detatch网络设备,停止收发队列的处理,停止mmc总线等等,唤醒过程没有分析;
8. 剩下的问题
1,逻辑似乎不复杂,但是细节实现不清楚,这个可能需要具体问题具体分析了;
marvel wifi 驱动分析相关推荐
- wifi驱动分析文档
WLAN驱动分析文档 目 录 1引言 3 1.1目的 3 1.2项目背景 3 1.3参考资料 3 2预备知识 3 2.1WLAN技术 3 2.2802.11协议简述 3 2.2.1概述 3 2.2.2 ...
- broadcm_40181 wifi 驱动分析
1.先注册 dhd_mudule_init dhd_linux.c dhd_bus_register dhd_sdio.c ...
- linux wifi驱动分析,REL8192EU wifi linux驱动安装详解
从网上买了个TPLINK的usb无线网卡,具体型号我就不说了以免做广告的嫌疑,反正很小巧.插在win10 系统上可以直接使用,但是我在win10 的虚拟机里却不能使用.去了官方网站下载Linux驱动, ...
- RK3399教程:wifi驱动调试技巧
公众号 欢迎扫码关注本人微信公众号:公众号上分享更多嵌入式知识和资料,分享个人学习嵌入式的心得体会.欢迎大家一起来玩呀. 疑问点? Android hal层需要配置那些东西? rk3399的wifi模 ...
- I.MX6 AW-NB177NF WIFI 驱动移植问题
/********************************************************************************* I.MX6 AW-NB177NF ...
- wifi linux 驱动分析,Linux 下wifi 驱动开发(二)—— WiFi模块浅析
一.什么是wifi 模块百度百科上这样定义: Wi-Fi模块又名串口Wi-Fi模块,属于物联网传输层,功能是将串口或TTL电平转为符合Wi-Fi无线网络通信标准的嵌入式模块,内置无线网络协议IEEE8 ...
- RK WiFi驱动层初始化分析
RK3368 默认支持的WiFi芯片为AP6XXX系列,此芯片还默认支持BT. 可以先看看原理图里面的的情况,方便我们理解其在代码里面的配置情况 WiFi 设备配置: ./rockchip/rk336 ...
- RLT USB WiFi驱动源码分析(Type A)
USB WiFi驱动属于USB设备驱动,底层是USB主机控制器驱动.USB主机控制器驱动根据USB协议向USB设备驱动提供读写接口.USB WiFi驱动根据USB主机控制器驱动提供的读写接口对USB ...
- cmd52命令发送 mmc_Linux SD/MMC/SDIO驱动分析(新)
一.SD/MMC/SDIO概念区分 SD(SecureDigital)与 MMC(MultimediaCard) SD 是一种 flash memory card 的标准,也就是一般常见的 SD 记忆 ...
最新文章
- asp.net mysql 读写分离_MySQL读写分离
- ajax传向前台的html代码里又有事件的时候,绑定事件失败解决方法
- 秒杀 mysql 事务_秒杀怎么样才可以防止超卖?基于mysql的事务和锁实现
- 使用cmake重写live555工程-附源码和视频教程
- 怎么汇报一周开发工作情况_如何在没有经验的情况下获得第一份开发人员工作
- python list存储对象_《python解释器源码剖析》第4章--python中的list对象
- Opencv级联分类器实现人脸识别
- spring源码分析第五天------springAOP核心原理及源码分析
- SybaseASE系统表的应用
- NoSQL数据库全方位比较
- 每日一题(开开森森学前端之Object系列)
- Mysql里有2000w数据,redis中只存20w数据,如何保证redis中的数据都是热点数据
- win7安装JDK并配置
- SAP ABAP ALV 的一些总结:Custom container 和 Splitter container
- Python-懒人必备-语音小助手
- 背景与字体的搭配经验
- #pragma用法详解
- 项目:机器学习+FLD分类+python图像处理mnist数据集
- APP - APP监控软件,美团 24 小时不间断定位上热搜
- 微信小程序nodejs+vue课程推荐报名学习分享平台uniapp
热门文章
- 2021电赛A题:信号失真度测量装置
- 通过PyTorch用DCGAN生成动漫头像
- 基于HTTP浏览器缓存机制全面解析看Table表格的css样式代码详解
- CentOS6.x升级到7
- multinorm r语言_MLAPP机器学习的概率知识总结_MLAPP pdf_MLAPP下载
- 使应用中的字体不受系统设置影响的两种方法
- 神经网络基础01-从神经元到深度学习
- 【QT】添加图片资源并使用QImage加载图片显示
- 全面分析竞争对手网站的步骤
- java stdin 和stdout_stdin,stdout,stderr