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

안드로이드를 막 시작한 초보입니다. 안드로이드에서 간단한 GPIO 제어용 드라이브를 만들어 커널과 같이 컴파일 한 후 JNI를 이용하여 open을 하니 open fail이 납니다.  드라이브 파일은 "kernel/driver/" 폴더에 "gpioCtrl"이라는 폴더를 만들고 gpioCtrl.c와 makefile, kconfig 파일을 만들었습니다. 물론 "kernel/driver/" 폴더의 makefile과 kconfig 파일에 자작한 드라이브 관련 내용은 추가를 했습니다. make menuconfig를 하면 추가한 드라이브 내용이 보입니다. 부팅시 초기화 메시지가 출력되고, 부팅 완료 후 /dev/에 자작한 드라이브가 보이고요... /dev/에 있는 기존에 제작되어 있는 드라이브를 open하면 success합니다. 


다음은 제작 제작한 드라이브 내용과 makefile내용입니다.

고수님들의 조언 부탁드립니다.


makefile ::

obj-y := gpioCtrl.o


kconfig ::

menuconfig GPIOCTRL

config CONFIG_GPIO_CONTROL

bool "Gpio control Driver"

default y


driver c code :: open과 init code만 올렸습니다.

static int gpioCtrl_open(struct inode *minode, struct file *mfile)

{

    printk("Gpio Ctrl Open\n");

    if(gpioCtrl_usage != 0)return -EBUSY;

    return 0;

}


int __init gpioCtrl_init(void)  

{

    int result;

    struct class *gpioCtrl_dev_class=NULL;

    struct device *gpioCtrl_dev=NULL;


    printk("Gpio Ctrl Init\n");

    result = register_chrdev(GPIOCTRL_MAJOR, GPIOCTRL_NAME, &gpioCtrl_fops);

    gpioCtrl_dev_class = class_create(THIS_MODULE, GPIOCTRL_NAME);

    gpioCtrl_dev = device_create(gpioCtrl_dev_class, NULL, MKDEV(GPIOCTRL_MAJOR, 0), NULL, GPIOCTRL_NAME);

    if(result <0)

    {

        printk(KERN_WARNING"Can't get any major!\n");

        return result;

    }

    return 0;

}





고도리

2014.02.14 04:28:52
*.200.239.210

난독증인지.....어떤 질문인지 잘 이해가...ㅠ.ㅠ


된다는 얘기인지 안된다는 얘기인지....

추락천사

2014.02.15 01:23:40
*.117.45.2

/dev 내에 생성되는 노드의 권한을 확인해보세요. 권한땜에 open 이 안되는 경우도 있었던것 같아요.

file operations 가 open과 잘 연결되어 있는지도 확인해 보시구요.

그리고, 첨부터 커널에 built-in 해서 작업하시기 보다는, 첨에는 module 로 해보시는게 좋습니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
6028 디바이스 노드파일을 동적으로 생성하려면 어찌해야하나요? USB관련,... [2] ice179 2014-02-28 4818
6027 Exynos 4412 Sd Card or USB booting 후 바이너리 다운로드 [9] 마빡 2014-02-28 4810
6026 프로젝트 부품을 구하려하는데 조언부탁드립니다. [1] 시그인트 2014-02-27 1654
6025 v4l2 는 camera register 관련된 포트에만 쓰일수 있는건가요? [1] biokk 2014-02-25 1755
6024 프레임버퍼 디스플레이가 잘 안되는데요 [1] timul1 2014-02-24 3251
6023 USB bluetooth dongle on jellybean [4] 신현호 2014-02-21 50320
6022 Exynos 4412 S3C RTC 및 MAX77686 RTC 문의 [2] 마빡 2014-02-21 2413
6021 프로젝트 계획 조언부탁드립니다. [5] 시그인트 2014-02-19 2734
6020 probe함수 호출시 디바이스파일 등록할려고 하는데 /dev 폴더외에 다... [1] ice179 2014-02-19 2115
6019 mknod 메이저 마이너 번호에 대해서 궁금한게 있는데요 [1] biokk 2014-02-17 2881
6018 [질문] s5pv210을 사용하고 있습니다. 메모리 용량은 같지만 4개에... [2] 문종섭 2014-02-15 2018
6017 안드로이드에 하드웨어 추가하는 방법 질문 file [2] 가림토 2014-02-14 2202
6016 일반터미널 상에서는 emmc에 uboot를 올리지못하나요?? [10] xoduddk123 2014-02-14 3517
» 자작 드라이브를 커널과 같이 컴파일 후 Open이 않됩니다... [2] 응애 2014-02-13 1797
6014 mdev -s 로 장치파일이 생성이 되지 않는 상태인데요 [1] ice179 2014-02-13 1818
6013 android에 libusb porting 해보신 분?? [2] 꿈의사람 2014-02-13 29616
6012 codesourcery sys/socket.h?? [3] Supsupi 2014-02-12 1705
6011 터치 Release시 ABS_PRESSURE 가 항상 1이됩니다. 오리엔스 2014-02-11 1701
6010 usb 인식문제가 전류문제일수도 있나요? [6] pedor11 2014-02-07 1675
6009 usb host api 가 리눅스단에서도 사용가능한가요? [1] biokk 2014-02-07 11392

사용자 로그인