기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

현재 BMA150센서를 사용중이고, 드라이버에서 데이터가 나오는것을 확인했습니다.


그런데, Android App을 돌려보니, sensors.default.so 라이브러리를 로드하다가 실패가 되더군요. 그래서 관련 소스를 뒤져보니, 라이브러리를 로드 할때 HMI라는 심볼이 없으면 실패가 되는 구조입니다. 그래서 objdump를 통해서 관련 심볼을 찾아보니, 몇몇은 HMI가 존재하는데, BMA150을 사용하는 센서 라이브러리는 HMI가 없이 컴파일이 되네요.


그래서, 전 소스를 find-grep 해보고, 구글링 해봤는데, 내용이 별로 없어서 질문 남겨 봅니다. 혹시, HMI라는 심볼을 만드는 방법을 아시는분 계신가요?


고도리

2011.05.16 09:06:08
*.200.239.234

질문? module을 만들어보신 경험이 있으신지? 아니면 분석한 경험이 있으신지?

 

간단하게 답을 말씀드리면...overlay module을 기본으로요

 

1. hardware/libhardware/modules/overlay/overlay.cpp 를 오픈 하시고요.

2. hardware/libhardware/include/hardware/hardware.h 를 오픈하시고

 

3. overlay.cpp를 보시면

struct overlay_module_t HAL_MODULE_INFO_SYM = {
    common: {
        tag: HARDWARE_MODULE_TAG,
        version_major: 1,
        version_minor: 0,
        id: OVERLAY_HARDWARE_MODULE_ID,
        name: "Sample Overlay module",
        author: "The Android Open Source Project",
        methods: &overlay_module_methods,
    }
};

이렇게 되어 있습니다. 여기서 보셔야 할 부분은 HAL_MODULE_INFO_SYM 입니다.

 

4. hardware.h를 보시면

#define HAL_MODULE_INFO_SYM         HMI

 

이렇게 되어 있습니다.

 

간단하게 말씀 드리면 overlay라는 모듈을 만들면

 

HMI라는 스트럭쳐가 만들어지는 겁니다. 동적으로 안드로이드가 모듈을 로딩할 때 HMI라는 symbol을 찾을 수 있도록요.

List of Articles
번호 제목 글쓴이 날짜 조회 수
» framework hardware 라이브러리 load시 HMI 를 찾네요?? [1] 휘오른 2011-05-16 797

사용자 로그인