이솝 임베디드 포럼 WiKi 페이지는 이솝 임베디드 포럼 공동제작 보드를 사용하시는 회원님들이 자유롭게 업데이트 하실 수 있습니다.

edit이솝 보드를 위한 Android Key Driver 수정 방법

이솝 보드에 장착된 6개의 키에 대해 구글 안드로이드에서 Key를 할당하는 방법에 대해 기술 합니다.

 

1. 키드라이버 수정

 

리눅스 커널 소스에서 drivers/input/keyboard/nt-key.h 파일을 엽니다. 보시면 코드 초반에 다음과 같은 항목이 있을 것 입니다.

 

/*
 *     
 * Aesop key-pad header file (charles.park)
 *
 */

#ifndef _AESOP_KEYPAD_H_
#define _AESOP_KEYPAD_H_

#define TRUE                            1
#define FALSE                           0

#define KEY_PRESS                  1
#define KEY_RELEASE            0

#define MAX_MAIN_KEYPAD_CNT             8
#define MAIN_KEYPAD_MASK                0xFF

// For Joy-Key

#define MAX_JOYKEY_CNT                     5
#define JOY_KEYPAD_MASK_1               0xf0
#define JOY_KEYPAD_MASK_2               0x10

//#define       DEBUG_MSG          

            

int AesopMainKeyPad_KeycodeMAX_MAIN_KEYPAD_CNT = {
        KEY_VOLUMEUP, KEY_END, KEY_HOME, KEY_BACK, KEY_VOLUMEDOWN, KEY_SEND,  KEY_POWER, KEY_MENU,
        };


char AesopMainKeyPad_KeycodeStrMAX_MAIN_KEYPAD_CNT20 = {
        "KEY_VOLUMEUP\n", "KEY_END\n", "KEY_HOME\n", "KEY_BACK\n", "KEY_VOLUMEDOWN\n", "KEY_SEND\n",  "KEY_POWER\n", "KEY_MENU\n",

};

 

int AesopJoyKeyPad_KeycodeMAX_JOYKEY_CNT = {
        KEY_RIGHT, KEY_LEFT, KEY_ENTER, KEY_DOWN, KEY_UP,
        };


char AesopJoyKeyPad_KeycodeStrMAX_JOYKEY_CNT20 = {
        "KEY_RIGHT\n", "KEY_LEFT\n", "KEY_ENTER\n", "KEY_DOWN\n", "KEY_UP\n",
};

 

2. 키 코드 수정 방법 

 

위의 붉은 색 항목은 이솝 보드에서 각 키에 대한 키 코드를 할당해 놓은 것 입니다.

안드로이드에서 어플리케이션 종료를 담당하는 BACK 키를 할당하기 위해, 기존의 SEND 키를 다음과 같이 대체하도록 해봅니다.

 

원본 소스

 

int AesopMainKeyPad_KeycodeMAX_MAIN_KEYPAD_CNT = {
        KEY_VOLUMEUP, KEY_END, KEY_HOME, KEY_BACK, KEY_VOLUMEDOWN, KEY_SEND,  KEY_POWER, KEY_MENU,
        };


char AesopMainKeyPad_KeycodeStrMAX_MAIN_KEYPAD_CNT20 = {
        "KEY_VOLUMEUP\n", "KEY_END\n", "KEY_HOME\n", "KEY_BACK\n", "KEY_VOLUMEDOWN\n", "KEY_SEND\n",  "KEY_POWER\n", "KEY_MENU\n",

};

 

수정 소스

 

int AesopMainKeyPad_KeycodeMAX_MAIN_KEYPAD_CNT = {
        KEY_VOLUMEUP, KEY_END, KEY_HOME, KEY_BACK, KEY_VOLUMEDOWN, KEY_BACK,  KEY_POWER, KEY_MENU,
        };


char AesopMainKeyPad_KeycodeStrMAX_MAIN_KEYPAD_CNT20 = {
        "KEY_VOLUMEUP\n", "KEY_END\n", "KEY_HOME\n", "KEY_BACK\n", "KEY_VOLUMEDOWN\n", "KEY_BACK\n",  "KEY_POWER\n", "KEY_MENU\n",

};

 

이제, 커널을 다시 컴파일 하셔서 안드로이드를 올려보시면, 기존의 KEY_SEND가 KEY_BACK으로 대치되어 있는 것을 확인 할 수 있습니다.

 

사용자 로그인