snifer

【原创】嵌入式ADC驱动编写及测试

0
阅读(1983)

每一次做项目都会遇到ADC驱动编写,今天我写个小程序来讲讲这个问题。

内容:

编写一个字符驱动程序获取ADC通道0的电压值。

掌握ADC设备驱动的编写及平台设备驱动的编写

平台:

主机:Ubuntu 10.10

目标机:FS_S5PC100

目标机内核版本:2.6.35

交叉编译器版本:arm-none-linux-gnueabi-gcc-4.5.1

步骤

注意:在实验过程中"$"后的操作在主机上,"//www.ninimall.com/blog/snifer/p/#"后的操作在开发板上

1、修改内核重新编译内核

修改arch/arm/mach-s5pc100/mach-smdkc100.c

添加如下内容:

struct platform_device s3c_device_adc_convert = {

.name = "adc_convert",

.id = -1,

.dev.parent = &s3c_device_adc.dev,

};

smdkc100_devices结构体数组中添加如下内容

&s3c_device_adc,

&s3c_device_adc_convert,

$ make zImage

2、拷贝模块到linux

将实验代码中的s5pc100_adc拷贝到/home/linux目录下并进入s5pc100_adc目录。

3、编译模块

$ make

4、编译应用程序

$ arm-none-linux-gnueabi-gcc test.c –o test

5、拷贝驱动及应用程序到目标板上

$ cp s5pc100_adc.ko test /source/rootfs

6、启动开发板后加载模块

# insmod s5pc100_adc.ko

7、创建设备节点

# mknod /dev/adc c 250 0

8、测试

# ./test

调节变阻器,终端会打印如下信息:

希望能够举一反三,遇到这种问题都能够很好的解决。

Baidu
map