1、编写GPIO驱动并编译为模块
完全按照linux驱动的编写方式,封装为标准的linux字符驱动

2、使用C语言编写测试程序
编写、编译一个操作led的程序进行驱动测试
以上两步可参考《s5pv210-gpio》:
s5pv210-gpio.c
s5pv210-gpio.h
s5pv210-gpio_test.c
其编译必须在linux环境下完成,交叉编译测试程序时使用静态编译

3、在eclipose中设计java接口
在eclipose中新建一个android工程用于设计底层jni的操作接口(windows、linux均可)
可参考《s5pv210-gpio》:
s5pv210-gpio\src\com\edu\gpio\s5pv210_gpio_options.java

4、由javah 生成.h文件
我们最终的目的是要实现s5pv210_gpio_options.java中设计的接口

由jdk自带的javah组件生成s5pv210_gpio_options.h文件
打开终端,进入刚才编译的Java程序的目标文件夹(如果是在Eclipse中,则进入工程的bins\classes目录),执行下面的命令:
javah com.edu.gpio.s5pv210_gpio_options
其中,com.edu.gpio.是package的名字,s5pv210_gpio_options是声明了native接口的Java类。
之后,将会生成一个形如com_edu_gpio_s5pv210_gpio_options.h的头文件。
此头文件中便声明了可以被Java调用的C/C++的函数形式。

5、由.h文件设计.c文件接口
自己根据s5pv210_gpio_options.h构建相应的.c文件
复制一个跟s5pv210_gpio_options.h同名的.c文件,将里面的声明全部改为对应的实现
可参考:s5pv210_gpio_options.c
注意java中数据类型与c语言数据类型之间的转换规则
设计.c文件的实现时可参考第2步的测试程序设计

7、编写makefile文件

C程序编写完毕后,在文件夹中创建一个名为Android.mk的文件,文件名不能修改,内容如下:

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:=com_sapp_gpio.c
LOCAL_C_INCLUDES := $(JNI_H_INCLUDE)
LOCAL_MODULE := libgpio
LOCAL_SHARED_LIBRARIES := libutils
LOCAL_MODULE_TAGS := eng
LOCAL_PRELINK_MODULE := false
include $(BUILD_SHARED_LIBRARY) 

其中,LOCAL_SRC_FILES后面的文件是我们的C语言的源程序文件名
LOCAL_MODULE后面的名字是我们将来生成的目标文件名
include $(BUILD_SHARED_LIBRARY)表示将来要生成动态链接库。

OK,写好之后,回到Android源码的根目录,执行:
在android源码目录的external下建立libs5pv210-gpio文件夹
将com_edu_gpio_s5pv210_gpio_options.c
com_edu_gpio_s5pv210_gpio_options.h
Android.mk
libs5pv210-gpio.so
拷到此目录下

回到android源码根目录,执行以下命令make libgpio
其中,libgpio是我们的Android.mk文件中LOCAL_MODULE的名字。
等待编译结束,在out/target/product/generic/system/lib/libgpio.so目录下即可找到编译好的文件。

8、将动态库拷入根文件系统/system/lib文件

9、编写测试程序,下载到开发板中使用

相关代码可在此处下载:http://download.csdn.net/detail/xdw1985829/4390129

转载自:http://blog.csdn.net/xdw1985829/article/details/7687917

S5PV210 GPIO驱动及其在android2.3.1下jni调用相关推荐

  1. s5pv210_gpio驱动及其在android2.3.1下jni调用~~

    1.编写GPIO驱动并编译为模块 完全按照linux驱动的编写方式,封装为标准的linux字符驱动 2.使用C语言编写测试程序 编写.编译一个操作led的程序进行驱动测试 以上两步可参考<s5p ...

  2. s5pv210_gpio驱动及其在android2.3.1下jni调用

    1.编写GPIO驱动并编译为模块 完全按照linux驱动的编写方式,封装为标准的linux字符驱动 2.使用C语言编写测试程序 编写.编译一个操作led的程序进行驱动测试 以上两步可参考<s5p ...

  3. openharmony GPIO 驱动开发

    openharmony GPIO 驱动开发 GPIO 基础知识 GPIO 基础知识--概念 GPIO 基础知识--IO 复用 GPIO 基础知识--GPIO 分组和编号 GPIO 基础知识--用户态测 ...

  4. 【嵌入式】GPIO驱动LED设计

    [嵌入式]GPIO驱动LED设计 1. 操作内容 2. 操作步骤 2.1 编译Linux内核 2.2 编译LED驱动 2.3 运行文件 3. 操作结果 1. 操作内容 掌握嵌入式 GPIO 驱动程序的 ...

  5. 通用GPIO驱动和apk(含jni),支持所有GPIO,支持LED控制,支持友善6410/210开发板,支持安卓2.3/4.0,内核2.6/3.0

    转自:http://www.arm9home.net/read.php?tid-27259.html GPIO Driver and apk(include jni) support All GPIO ...

  6. 树莓派GPIO驱动原理

    1.前言 最近认真学习了树莓派,从浅到深认真分析了wiringPi实现代码,借助树莓派学习linux收获颇丰.深入学习linux一段时间后发现它非常有魅力,一个简单的IO口输出操作尽有那么多的&quo ...

  7. gpio驱动广播Android,[RK3288][Android6.0] 调试笔记 --- 通用GPIO驱动控制LED【转】

    Platform: ROCKCHIP OS: Android 6.0 Kernel: 3.10.92 由于板子没有lcd无法得知sd卡升级是否完成,因此使用LED显示. Recovery中升级完成后控 ...

  8. 【WinCE】流设备驱动简介及GPIO驱动的实现

    流设备驱动实际上就是导出标准的流接口函数的驱动,这是文档上面的定义.在WinCE中,所有的流设备都导出流设备接口,这样WinCE中的Device Manager可以加载和管理这些流设备驱动.  流设备 ...

  9. 自己动手写TCC7901的GPIO驱动

    //===================================================================== //TITLE: //    自己动手写TCC7901的 ...

最新文章

  1. SQL2K数据库开发二之查看和修改Sample数据库
  2. 罗田用好“大数据”力促扶贫更精准
  3. 笔记本电脑打开后不显示桌面_宝骏630打开空调开关后压缩机不工作 - 汽车空调...
  4. 真实HDFS集群启动后master的jps没有DataNode
  5. Java技术:Optional 相关用法介绍笔记
  6. 【转载】define与typedef区别与联系
  7. 脚本安装Rocky版OpenStack 1控制节点+1计算节点环境部署
  8. DllMain 参数解释
  9. Bada学习-(二十九)bada测试服务器
  10. java筆試題,Java筆試題附答案 | 學步園
  11. 限流器(一):guava应用级限流器RateLimiter之SmoothBursty
  12. 微信账单怎么查?微信流水账单怎么打印
  13. 破解XP系统密码的常用的几种方法
  14. 发布网站ASP.NET(ASPX)
  15. intel RDT (Resource Director Technology) 管理LLC和内存带宽
  16. 物联网平台搭建教程01
  17. 有关PHP文档生成工具---PHPDocumentor
  18. ERP仓库管理系统需求
  19. outlook 2016 邮件怎么显示图片
  20. 代码保护(二) 通过Java反编译工具测试加密效果

热门文章

  1. AndroidManifest.xml详解(上)
  2. 搭建PC网校的4大优势
  3. ubuntu中查找文件后高亮_vim的高亮查找操作
  4. execl筛选去重_Excel去除重复项的三种常用技巧
  5. 营销学习思维导图模板
  6. 老罗斯柴尔德的第一桶金
  7. Find X3系列能实现OPPO的高端破局之梦吗?
  8. dw实现html实时更新,DW在HTML5 响应式代码实现完成
  9. vue实现标签云效果
  10. python日历下拉框_c#教程之C#日历样式的下拉式计算器实例讲解