【原创】嵌入式ADC驱动编写及测试
0赞每一次做项目都会遇到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
调节变阻器,终端会打印如下信息:
希望能够举一反三,遇到这种问题都能够很好的解决。