### Android驱动移植与WLAN模块详解 在深入探讨Android驱动移植和WLAN模块的具体细节之前,我们先简要概述一下整个过程。驱动移植是将操作系统(在此为Android)与特定硬件平台(例如ARM架构下的SoC)进行适配的过程。这涉及到对底层硬件的深入理解以及操作系统内核和用户空间软件的修改。对于本主题而言,我们将重点放在WLAN(无线局域网)模块的移植上,这是现代移动设备中不可或缺的功能。 #### 关于Android ICS Porting Guide TI(德州仪器)发布的Android ICS Porting Guide是一份详尽的指南,旨在帮助开发者将Android OS移植到基于Sitara系列处理器的硬件平台上,如AM37x和AM335x。该文档覆盖了从系统引导、内核配置到应用层的各个方面,特别强调了WLAN、蓝牙(BT)、摄像头(CAMERA)等关键模块的移植。 #### WLAN模块详解 ##### 引言 WLAN模块的移植涉及到在自定义的Android构建(如Rowboat)中添加新的Wi-Fi驱动,并确保其正常运行。此过程不仅需要对硬件有深入的理解,还要求熟悉Android的网络子系统结构。 ##### 特性概览 WLAN支持802.11b/g/n标准,其核心IP已经过Wi-Fi规范测试,支持站模式(Station Mode)。此外,初步支持SoftAP(软件接入点)/Wi-Fi热点和WiFiDirect功能。 ##### Android WLAN子系统概览 Android的WLAN事件流从应用程序到硬件的路径,可以分为以下几个层次: - **应用程序**:设置/连接管理器位于`<android-src>/packages/apps/Settings/src/com/android/settings/WirelessSettings.java`。 - **应用框架**:Wi-Fi Manager位于`<android-src>/frameworks/base/wifi/java/android/net/wifi`,而其JNI实现则位于`<android-src>/frameworks/base/core/jni/android_net_wifi_Wifi.cpp`。 - **库**:`libhardware_legacy`包含在`<android-src>/hardware/libhardware_legacy/wifi/wifi.c`,而wpa_supplicant守护进程位于`<android-src>/external/hostap/wpa_supplicant`。更高级的网络管理则在`<android-src>/frameworks/base/core/java/android/net`进行。 ##### 驱动配置 在开发套件中,使用的是WL12XXCompat无线SDK,其驱动和固件位于`hardware/ti/wlan`目录下。为了在内核中启用WLAN支持,以下配置必须被激活: - 首先启用Wireless LAN(无线局域网)相关配置。 具体步骤可能包括: 1. **内核配置**:在Linux内核配置中,找到并启用与WLAN相关的选项,这通常涉及选择合适的无线驱动模型(如mac80211或nl80211)。 2. **固件集成**:将供应商提供的固件集成到内核树中,确保固件能正确加载。 3. **用户空间软件**:修改或创建与WLAN相关的用户空间组件,如`wpa_supplicant`,确保它能够识别并使用新添加的驱动。 #### 总结 驱动移植是一个复杂但至关重要的过程,特别是当目标是将Android系统扩展到非标准硬件平台上时。对于WLAN模块的移植,理解其在Android系统中的层次结构和工作流程至关重要。通过遵循TI的Android ICS Porting Guide,开发者可以逐步实现WLAN功能的完整移植,从而增强设备的无线连接能力。在整个过程中,细致的文档记录和持续的测试是确保移植成功的关键因素。
剩余29页未读,继续阅读
- Stroot_Zhang2013-07-26不错!对我来说很有帮助,谢谢分享!
- gardensu5272012-09-19原名TI-Android-ICS-PortingGuide,是AM335x开发板移植Android驱动的简要说明。不过还是支持免费。
- 粉丝: 235
- 资源: 98
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助