【问题标题】:Make driver for digital microscope for Android / arm device为Android / arm设备制作数码显微镜驱动程序
【发布时间】:2012-01-09 17:04:26
【问题描述】:

我有使用 Android 的平板电脑。

这是配置:

marvell mohawk rev 0 v51
bogoMIPS: 797.00
特点:swp、half、thumb、fastmult、edsp、java、iwmmxt
cpu 实现者:0x56
cpu 拱门:5te
cpu 部分:0x840
CPU 修订:0
硬件:pxa168 边缘开发平台

我的目标是开发自己的驱动程序,它将从 USB(从显微镜)获取流,然后在我的平板电脑的 Android 应用程序中渲染它。

据我所知,我不仅必须学习 arm v5 arch,还需要获得 arm-gnu C 编译器,并且必须知道处理来自 USB 的字节流。

我看过 usblib (OpenUSB) 项目,但似乎它对于 arm arch 的项目不是那么清晰,会导致很多问题。

那么,我怎样才能从我的平板电脑 (armv5/android) 的 USB 本地获取流,然后在本机部分 (ndk) 中获取,而不是通过 JNI 将数据发送到 Java 并在我的平板电脑中呈现。

我认为的方式是否正确,我会遇到什么麻烦?

谢谢,
最好的问候

【问题讨论】:

    标签: android gcc video usb arm


    【解决方案1】:

    Android 在 Linux 内核上运行。因此,您所追求的要么是显微镜的 Linux 内核驱动程序,要么是与之交互的用户模式程序(某些 USB 设备可以完全从用户空间驱动)。在任何一种情况下,您都需要根设备。如果您需要编写原生模式程序,请使用 Android NDK。如果您需要编写内核模块,请获取适用于您平台的内核源代码(从https://android.googlesource.com/kernel/common.git 获取,或者,如果适用,从制造商特定的存储库获取)。在开始编写驱动程序之前,请检查是否还没有适用于 Linux 的驱动程序;如果在 Android 上,它可能会在稍作修改后工作(绝对不能工作的是任何 Linux GUI 应用程序)。

    【讨论】:

      【解决方案2】:

      Android 目前不支持 USB 设备的第三方驱动程序。但是,从 Android 3.1 (Honeycomb) 开始,有一个 Java API 可以直接与 USB 设备通信。您可以编写一个 Android 应用程序,它完全用 Java 检测显微镜并直接与您的显微镜通信。如果对来自显微镜的数据的处理需要更高的性能,您可以编写原生代码(通过 NDK/JNI)来进行处理。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-18
        • 1970-01-01
        • 2018-05-07
        • 2021-06-07
        • 1970-01-01
        • 2014-03-07
        • 1970-01-01
        • 2015-12-18
        相关资源
        最近更新 更多