我现在遇到的问题:
驱动上检测一个中断,如何让AP知道,并由AP开始做相应的动作?驱动 -- mylib.so -- JNI -- servic -- AP我看sensor、按键等驱动,都是向input系统报告一个事件。我的驱动就是初始化外挂的一个IC,然后检测这个IC是否有中断产生,如果有中断产生,就由AP来读取数据,并显示到LCD上。我这个驱动如何来跟上层通信呢?

解决方案 »

  1.   

    Input 驱动程序是Linux 输入设备的驱动程序
    你可以参考下Framebuffer 
    Framebuffer 驱动主要头文件位于include/linux/fb.h 文件中
    驱动核心实现位于drivers/video/fb.mem.c 文件中
    Android 对Framebuffer 驱动的使用方式是标准的,在/dev/graphie/中的Framebuffer 设备
    节点由init 进程自动创建,被libui 库调用。Android 的GUI 系统中,通过调用Framebuffer 驱
    动的标准接口,实现显示设备的抽象。
      

  2.   

    大致流程是这样:
    编写HAL 层代码
    JNI 层文件 一些JNINativeMethod 是JNI 层注册的方法给Framework 层使用
    在Framework 层写个service
    Android 的app 可以直接通过service 调用.so 格式的jni,也可以经过Manager 调用service。
      

  3.   


    谢谢yiyaaixuexi的回复。
    大致的流程和结构我是知道的,只是具体到驱动如何通知lib.so这层,我不知道如何做,用消息?事件?因为我以前是做wince的,对linux还不了解。
    wince上,驱动跟AP用一个同名的消息即可通信。
    我不知道linux改如何做。
      

  4.   

    在Framework 层写个service
    如果我们只做上层的APP,想让驱动根据我们的需求做事,而我们又没有framework的代码(有也不行,因为我们不能修改AP之下的任何东西,而驱动里面怎么实现厂商对我们也是封闭的,那怎么办?