Now i want to share something about android wifi framework and top-down routine,and what we should we concentrate.
wifi application(Settings/Wifi widget)
------> WifiManager (AIDL/Binder)
---->WifiService
---->WifiStateMachine
--->WifiStateMachine hold a stack design to manage wifi status,we need to read code carefully
-->WifiNative
-->Wifi HAL
--->Wpa_supplicant(ctrl_interface,socket,we need to learn Linux IPC socket design)
--->Linux kernel cfg80211 or wext or other driver method(wext/ioctl, now mostly use cfg80211/nl80211 to support STA/SoftAP/P2P/WD
---->Linux kernel wifi driver
---->Linux wifi bus driver (USB Or SDIO or other bus)
----->Firmware (If wifi driver is full mac,mlme is in firmware,if softmac,usually in linux mac80211 framework)
---->Firmware interface with Linux Host CPU,communicate with Host CPU by SDIO or USB,firmware has its share memory management and protocol stack
--->Wifi Chip CPU (Such as cortex-M3)/RF and other unit
1)If you are customer which use wifi chip,need to read wpa_supplicant and android wifi statemachine and android network relative code (connectivity service and others),most people met issue about wifi chip always WIFI hal or some issue with driver
2)If you are wifi chip vendor,you need to good understand linux kernel wifi stack and wpa_supplicant,because need to bring up quickly and stable,good understand wifi firmware stack and linux kernel wifi stack,because software need to understand from system side,to make all wifi chip work stable
阅读(1069) | 评论(0) | 转发(0) |