AndroidドライバによるLED-NDKプログラムの作成
2109 ワード
1.まずLINUXカーネルモジュールLEDを作成する
2. ヘッダファイルを生成する必要があります.
ヘッダファイルを生成するにはアプリケーションが必要です.そのため、国で提供されたappソフトウェアを埋め込む.解凍後にlocalを変更します.propertiesファイルに対応するアドレス.
studioを開きます.sh,再コンパイル工事.
プロジェクトをコンパイルした後、appのプロジェクトファイルのフォルダでコマンドを実行します.
javah -d jni -classpath/opt/android-sdk-linux/platforms/android-23/android.jar:/home/my_Android/led\/NDK/NDK_APP/app/build/intermediates/classes/debug/com.android.jack.ndk.happy.MainActivity
そのうち/opt/android-sdk-linux/platforms/android-23/android.jarはアンドロイドsdkのアドレスです.
/home/my_Android/led/NDK/NDK_APP/app/build/intermediates/classes/debug/は、対応するアンドロイドappソースファイルエンジニアリングのアドレスです.
com.android.jack.ndk.happy.MainActivityはアンドロイドのプロジェクト名です.
コマンドを実行すると、ディレクトリにjniフォルダが生成されます.そのうちcom_android_jack_ndk_happy_MainActivity.hは私たちに必要なヘッダファイルです.
ファイルは、実装する必要がある関数として宣言されます.
jniファイルにndk_を作成するled.cソースファイルとmakefileファイルAndroid.mk
静的ライブラリを生成するにはSHAREDをSTATICに変更すればよい.
次に、前のレベルのディレクトリ実行コマンドndk-buildに戻ります.libs/armeabi/libndk_が生成されます.test_myled.soライブラリファイル.
以上、AndroidドライバによるLED-NDKプログラムの作成に関する資料を整理しました.
#include
#include
#include
#include
#include
#include
#include
#include
MODULE_LICENSE("GPL");
#define GPM4CON 0X110002E0
#define GPM4DAT 0X110002E4
#define LED_ON _IOW(‘G‘,0,int)
#define LED_OFF _IOW(‘G‘,1,int)
static struct cdev dev;//1.1 cdev
static dev_t dev_no;
struct class *led_class;
static unsigned int *led_con;
static unsigned int *led_dat;
long led_ioctl( struct file *file, unsigned int cmd, unsigned long arg )
{
switch( cmd )
{
case LED_ON:
writel((readl(led_dat)&(~(0x1<
2. ヘッダファイルを生成する必要があります.
ヘッダファイルを生成するにはアプリケーションが必要です.そのため、国で提供されたappソフトウェアを埋め込む.解凍後にlocalを変更します.propertiesファイルに対応するアドレス.
studioを開きます.sh,再コンパイル工事.
プロジェクトをコンパイルした後、appのプロジェクトファイルのフォルダでコマンドを実行します.
javah -d jni -classpath/opt/android-sdk-linux/platforms/android-23/android.jar:/home/my_Android/led\/NDK/NDK_APP/app/build/intermediates/classes/debug/com.android.jack.ndk.happy.MainActivity
そのうち/opt/android-sdk-linux/platforms/android-23/android.jarはアンドロイドsdkのアドレスです.
/home/my_Android/led/NDK/NDK_APP/app/build/intermediates/classes/debug/は、対応するアンドロイドappソースファイルエンジニアリングのアドレスです.
com.android.jack.ndk.happy.MainActivityはアンドロイドのプロジェクト名です.
コマンドを実行すると、ディレクトリにjniフォルダが生成されます.そのうちcom_android_jack_ndk_happy_MainActivity.hは私たちに必要なヘッダファイルです.
ファイルは、実装する必要がある関数として宣言されます.
jniファイルにndk_を作成するled.cソースファイルとmakefileファイルAndroid.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := ndk_test_myled
LOCAL_SRC_FILES := ndk_led.c
include $(BUILD_SHARED_LIBRARY)
静的ライブラリを生成するにはSHAREDをSTATICに変更すればよい.
次に、前のレベルのディレクトリ実行コマンドndk-buildに戻ります.libs/armeabi/libndk_が生成されます.test_myled.soライブラリファイル.
以上、AndroidドライバによるLED-NDKプログラムの作成に関する資料を整理しました.