
前言 本应用笔记为将意法半导体环境传感器 (气压、湿度、紫外线传感器)成功集成到Linux/Android 操作系统提供指南 1文档概述 本文档描述如何将意法半导体环境传感器集成到 Linux/Android 系统。 它提供关于如何管理此任务的详细信息和流程。 您可以通过当地销售代表获取文档中提及的 ST 代码。 为了成功集成不同类型的传感器,除了问题和可能的解决方案,还将讨论传感器 HAL (硬件抽象层)的配置文件。 最后,还将描述该库的编译和安装。 1.1 Android 传感器 HAL 概述 Android 传感器 HAL 是提供从内核空间驱动程序到 Android 传感器服务和 Android 传感器管理器的链路的库。 Android 传感器框架的架构如下图所示。 ![]() 1.1.1 Kernel 该层包含使用输入子系统 (所有输入设备的通用 Linux 框架)创建的 Linux 设备驱动。数据通过 Sysfs 虚拟文件系统导出到用户空间 (/sys/class/input/)。驱动通过稳定的 Linux 子系统 I²C 从 / 向传感器接收 / 发送数据。 1.1.2传感器库 这些库用于为上层创建复杂接口。通过 SensorManager 类、传感器服务类和传感器 HAL 完成此任务。 1.1.3应用框架 apk 应用使用该层从传感器获取数据。通信从创建传感器服务实例的 SensorManager 类开始,通过传感器 JNI (Java 本地接口)到达下层。 2测试环境 / 生态环境 本文档适用于下列测试环境: • Panda board: – 处理器:Omap4430 – 测试板:PandaBoard ES Rev B2. • 主机: – HP EliteBook 8470p • Linux: – Ubuntu 13.04 • Android: – KitKat-4.4 • 编译环境: – androidearm-eabi7 2.1将传感器连接到 PandaBoard 我们的意法半导体 DIL24 适配器 STEVAL-MKI141V2、 STEVAL-MKI142V1 和 STEVALMKI165V1 分别使用 “HTS221 湿度传感器 ”、“LPS25H 气压传感器 ” 和 “LPS25HB 气压传感器 ” 进行测试。 将适配器连接到 PandaBoard 的 J3 扩展连接器;使用 I²C 总线执行测试。 举例来说,对于下图中的 STEVAL-MK141V2 (可以对另外两块适配器重复相同步骤),假设适配器的脚位如下: ![]() 引脚 1:Vdd ;引脚 2:Vdd_IO ;引脚 19:CS ;引脚 20:SCL ;引脚 21:SDA ;引脚22:SDO 其中引脚 1 在左上,引脚 12 在左下,引脚 13 在右下,引脚 24 在右上。 这些引脚必须连接到 PandaBoard 的 “ 扩展连接器 A, J3” 的下列引脚: ![]() 2.2 Ubuntu 13.04 环境的特定设置 在完成 Ubuntu-13.04 的标准安装后,应用一些特定设置。 使用的软件包版本: • Java:JDK1.6.0_45 和 JRE1.6.0_45 • GNU Make 3.82 • Python 2.7.4 注: 在编写时, 1304 软件包的特有副标题不存在。 • sudo apt-get install git gnupg flex bison gperf build-essential \zip curl libc6-dev libncurses5-dev:amd64 x11proto-core-dev \libx11-dev:amd64 libreadline6-dev:amd64 libgl1-mesa-glx:amd64 \libgl1-mesa-dev g++-multilib mingw32 tofrodos \ python-markdown libxml2-utils xsltproc zlib1g-dev: amd64 • sudo ln -s /usr/lib/amd64-linux-gnu/mesa/libGL.so.1 /usr/lib/ amd64-linux-gnu/libGL.so 用相应的 32 位 libz 替代 64 位 libz.so.1。 • sudo apt-get install lib32z1. 在使用代理时,为了使用上述及其他设置所需的 “apt-get”,使用下列单行代码创建文件/etc/apt/apt.conf.d/01proxy: 使用下列单行代码在文件夹 “/home/user” 中创建文件 bashrc: • export USE_CACHE=1 从 Android Root 源码应用下列指令: [RAS]: /prebuilts/misc/linux-x86/ccache/ccache -M 50G 为了下载和编译内核源码,将 ‘git’ 进行如下配置: • $ git config --global user.email "e-mailing_address" • $ git config --global user.name "user" 为了使用 fastboot 指令和 adb 指令连接到测试板,将下列代码行添加到文件/etc/udev/rules.d/51-android.rules。 • # adb protocol on panda (PandaBoard) • SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101",MODE="0666", owner=”username” • # fastboot protocol on panda (PandaBoard) • SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022",MODE="0666", owner=”username” • # usbboot protocol on panda (PandaBoard) • SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010",MODE="0666", owner=”username” 还必须修改该文件的权限: "chmod a+x /etc/udev/rules.d/51-android.rules. 然后,使用指令 “sudo service udev restart” 重启 udev 服务。 完整版请查看:附件 ![]() |