S5PV210 GPIO驱动及其在android2.3.1下jni调用
1、編寫(xiě)GPIO驅(qū)動(dòng)并編譯為模塊
完全按照l(shuí)inux驅(qū)動(dòng)的編寫(xiě)方式,封裝為標(biāo)準(zhǔn)的linux字符驅(qū)動(dòng)
2、使用C語(yǔ)言編寫(xiě)測(cè)試程序
編寫(xiě)、編譯一個(gè)操作led的程序進(jìn)行驅(qū)動(dòng)測(cè)試
以上兩步可參考《s5pv210-gpio》:
s5pv210-gpio.c
s5pv210-gpio.h
s5pv210-gpio_test.c
其編譯必須在linux環(huán)境下完成,交叉編譯測(cè)試程序時(shí)使用靜態(tài)編譯
3、在eclipose中設(shè)計(jì)java接口
在eclipose中新建一個(gè)android工程用于設(shè)計(jì)底層jni的操作接口(windows、linux均可)
可參考《s5pv210-gpio》:
s5pv210-gpio\src\com\edu\gpio\s5pv210_gpio_options.java
4、由javah 生成.h文件
我們最終的目的是要實(shí)現(xiàn)s5pv210_gpio_options.java中設(shè)計(jì)的接口
由jdk自帶的javah組件生成s5pv210_gpio_options.h文件
打開(kāi)終端,進(jìn)入剛才編譯的Java程序的目標(biāo)文件夾(如果是在Eclipse中,則進(jìn)入工程的bins\classes目錄),執(zhí)行下面的命令:
javah com.edu.gpio.s5pv210_gpio_options
其中,com.edu.gpio.是package的名字,s5pv210_gpio_options是聲明了native接口的Java類(lèi)。
之后,將會(huì)生成一個(gè)形如com_edu_gpio_s5pv210_gpio_options.h的頭文件。
此頭文件中便聲明了可以被Java調(diào)用的C/C++的函數(shù)形式。
5、由.h文件設(shè)計(jì).c文件接口
自己根據(jù)s5pv210_gpio_options.h構(gòu)建相應(yīng)的.c文件
復(fù)制一個(gè)跟s5pv210_gpio_options.h同名的.c文件,將里面的聲明全部改為對(duì)應(yīng)的實(shí)現(xiàn)
可參考:s5pv210_gpio_options.c
注意java中數(shù)據(jù)類(lèi)型與c語(yǔ)言數(shù)據(jù)類(lèi)型之間的轉(zhuǎn)換規(guī)則
設(shè)計(jì).c文件的實(shí)現(xiàn)時(shí)可參考第2步的測(cè)試程序設(shè)計(jì)
7、編寫(xiě)makefile文件
C程序編寫(xiě)完畢后,在文件夾中創(chuàng)建一個(gè)名為Android.mk的文件,文件名不能修改,內(nèi)容如下:
其中,LOCAL_SRC_FILES后面的文件是我們的C語(yǔ)言的源程序文件名
LOCAL_MODULE后面的名字是我們將來(lái)生成的目標(biāo)文件名
include $(BUILD_SHARED_LIBRARY)表示將來(lái)要生成動(dòng)態(tài)鏈接庫(kù)。
OK,寫(xiě)好之后,回到Android源碼的根目錄,執(zhí)行:
在android源碼目錄的external下建立libs5pv210-gpio文件夾
將com_edu_gpio_s5pv210_gpio_options.c
com_edu_gpio_s5pv210_gpio_options.h
Android.mk
libs5pv210-gpio.so
拷到此目錄下
回到android源碼根目錄,執(zhí)行以下命令make libgpio
其中,libgpio是我們的Android.mk文件中LOCAL_MODULE的名字。
等待編譯結(jié)束,在out/target/product/generic/system/lib/libgpio.so目錄下即可找到編譯好的文件。
8、將動(dòng)態(tài)庫(kù)拷入根文件系統(tǒng)/system/lib文件
9、編寫(xiě)測(cè)試程序,下載到開(kāi)發(fā)板中使用
相關(guān)代碼可在此處下載:http://download.csdn.net/detail/xdw1985829/4390129
?
轉(zhuǎn)載自:http://blog.csdn.net/xdw1985829/article/details/7687917
?
總結(jié)
以上是生活随笔為你收集整理的S5PV210 GPIO驱动及其在android2.3.1下jni调用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 两段奇怪的JS
- 下一篇: 电脑打开播放器提示服务器运行失败,电脑中