前言 本应用笔记为将意法半导体环境传感器 (气压、湿度、紫外线传感器)成功集成到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 服务。 完整版请查看:附件 |