도와주세요!!
글 수 15,339
2005.01.10 22:50:09 (*.68.84.200)
6694
안녕하세요?
첨부된 GPIO 테스트 소스에서 다음 부분을 잘 모르겠습니다.
[ test.c ]
ioctl( dev, IOCTL_GPIO_LED_ON_OFF, &pData );
[ gpio.h ]
typedef struct
{
int Cmd; // 명령어
unsigned long Data; // 입출력 데이타
} GPIO_CmdData;
// 제어 명령 리스트
#define IOCTL_GPIO_LED_ON_OFF _IOW(GPIO_IOC_MAGIC, 0,
GPIO_CmdData *)
[ gpio.c ]
int gpio_ioctl(struct inode *inode, struct file *filp, unsigned
int cmd,
unsigned long arg)
{
switch (cmd)
{
case IOCTL_GPIO_LED_ON_OFF:
return gpio_led_on_off ( (GPIO_CmdData *)
arg );
}
}
==> test.c에서 ioctl함수를 호출하면 gpio.h의 정의된 명령을 통하여 디바이
스 드라이브의 gpio.c로 명령과 데이타를 넘겨 주게 된다고 되어 있습니다.
다시 한번 써보면 다음과 같습니다.
ioctl( dev, _IOW(GPIO_IOC_MAGIC, 0, GPIO_CmdData *), &pData );
->
int gpio_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
unsigned long arg)
여기서 데이터가 어떻게 전달되는지 모르겠습니다. dev->inode,
GPIO_IOC_MAGIC->filp, 0->cmd 이런 식으로 전달 되는것인지요?
그리고 염치 없지만 한가지 더 질문하겠습니다.
GPIO_IOC_MAGIC = 'g'라고 되어 있는데.. 이게 뭘하는 것인지 잘 모르겠습니
다.
혹시 설명하시기 어렵다면 이런것을 알려면 뭘 보면 되는지라고 가르쳐주시면
고맙겠습니다. 책을 보고 싶어도 무슨 책을 봐야 하는지 감을 못 잡겠습니다.
그럼 읽어주셔서 감사합니다.
첨부된 GPIO 테스트 소스에서 다음 부분을 잘 모르겠습니다.
[ test.c ]
ioctl( dev, IOCTL_GPIO_LED_ON_OFF, &pData );
[ gpio.h ]
typedef struct
{
int Cmd; // 명령어
unsigned long Data; // 입출력 데이타
} GPIO_CmdData;
// 제어 명령 리스트
#define IOCTL_GPIO_LED_ON_OFF _IOW(GPIO_IOC_MAGIC, 0,
GPIO_CmdData *)
[ gpio.c ]
int gpio_ioctl(struct inode *inode, struct file *filp, unsigned
int cmd,
unsigned long arg)
{
switch (cmd)
{
case IOCTL_GPIO_LED_ON_OFF:
return gpio_led_on_off ( (GPIO_CmdData *)
arg );
}
}
==> test.c에서 ioctl함수를 호출하면 gpio.h의 정의된 명령을 통하여 디바이
스 드라이브의 gpio.c로 명령과 데이타를 넘겨 주게 된다고 되어 있습니다.
다시 한번 써보면 다음과 같습니다.
ioctl( dev, _IOW(GPIO_IOC_MAGIC, 0, GPIO_CmdData *), &pData );
->
int gpio_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
unsigned long arg)
여기서 데이터가 어떻게 전달되는지 모르겠습니다. dev->inode,
GPIO_IOC_MAGIC->filp, 0->cmd 이런 식으로 전달 되는것인지요?
그리고 염치 없지만 한가지 더 질문하겠습니다.
GPIO_IOC_MAGIC = 'g'라고 되어 있는데.. 이게 뭘하는 것인지 잘 모르겠습니
다.
혹시 설명하시기 어렵다면 이런것을 알려면 뭘 보면 되는지라고 가르쳐주시면
고맙겠습니다. 책을 보고 싶어도 무슨 책을 봐야 하는지 감을 못 잡겠습니다.
그럼 읽어주셔서 감사합니다.