为Android / arm设备制作数字显微镜驱动程序

时间:2012-01-09 17:04:27

标签: android gcc video usb arm

我有平板电脑,它使用Android。

这是配置:

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

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

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

我已经看过usblib(OpenUSB)项目,但似乎不是这样明确的手臂拱项目,会造成很多问题。

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

我的思维方式是否正确以及我将以这种方式遇到的麻烦?

Thanaks,
最诚挚的问候

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

Android在Linux内核上运行。因此,您所追求的是用于显微镜的Linux内核驱动程序,或用于与其连接的用户模式程序(某些USB设备可以完全从用户区域驱动)。在任何一种情况下,您都需要root设备。如果需要编写本机模式程序,请使用Android NDK。如果需要编写内核模块,请获取适用于您的平台的内核源代码(来自https://android.googlesource.com/kernel/common.git,或者,如果适用,则来自特定于制造商的存储库)。在您开始编写驱动程序之前,请检查是否已经有一个用于Linux的驱动程序;如果在Android上完全没有适应性的话可能会有所改进(任何Linux GUI应用都无法发挥作用)。