디바이스 드라이버
글 수 70
2012.03.25 23:32:03 (*.40.163.61)
27061
커널 소스는 다음의 위치에 있습니다.
arch/arm/plat-s3c64xx/adc.c
int s3c_adc_get(struct s3c_adc_request *req)
함수를 통해서 AD값을 읽을 수 있습니다.
커널 옵션에서는 다음과 같이 설정합니다.
System Type --->
[*] S3C64XX ADC D/D support
디바이스 드라이버에서는 다음과 같이 호출하여 사용하면 됩니다.
ADC 두 채널을 읽는 디바이스 드라이버입니다.
#include <plat/adc.h>
extern int s3c_adc_get(struct s3c_adc_requeset *req );
static ssize_t adc_read (struct file *filp, __user char *ubuf, size_t count, loff_t *ppos)
{
unsigned int adval_0, adval_1;
struct s3c_adc_request req;
req.channel = 0;
adval_0 = s3c_adc_get( &req );
req.channel = 1;
adval_1 = s3c_adc_get( &req );
return 0;
}
----------------------------
디바이스 드라이버를 사용하지 않고 어플리케이션에서 바로 사용할 경우에는
static ssize_t s3c_adc_read(struct file *file, char __user * buffer,size_t size, loff_t * pos)
static int s3c_adc_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg)
함수를 통하여 사용하시면 됩니다.