Linux-2.6.32.2内核在mini2440上的移植(八)

Linux-2.6.32.2内核在mini2440上的移植(八)

ID:40749640

大小:236.50 KB

页数:16页

时间:2019-08-07

Linux-2.6.32.2内核在mini2440上的移植(八)_第1页
Linux-2.6.32.2内核在mini2440上的移植(八)_第2页
Linux-2.6.32.2内核在mini2440上的移植(八)_第3页
Linux-2.6.32.2内核在mini2440上的移植(八)_第4页
Linux-2.6.32.2内核在mini2440上的移植(八)_第5页
资源描述:

《Linux-2.6.32.2内核在mini2440上的移植(八)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Linux-2.6.32.2内核在mini2440上的移植(八)---添加ADC驱动移植环境(红色粗字体字为修改后内容,蓝色粗体字为特别注意内容)1,主机环境:VMare下CentOS5.5,1G内存。2,集成开发环境:ElipseIDE3,编译编译环境:arm-linux-gccv4.4.3,arm-none-linux-gnueabi-gccv4.5.1。4,开发板:mini2440,2Mnorflash,128Mnandflash。5,u-boot版本:u-boot-2009.086,linux版本:linux-2.6.32.27,参考文章:嵌入式linux应用开发完全

2、手册,韦东山,编著。Mini2440之Linux移植开发实战指南【1】关于S3C2440的ADC和触摸屏接口在S3C2440芯片中,AD输入和触摸屏接口使用共同的A/D转换器,见2440芯片手册第16章节,如图,其中通道7(XP或AIN7)作为触摸屏接口的X坐标输入,通道5(YP或AIN5)作为触摸屏接口的Y坐标输入。我们从上面的结构图和数据手册可以知道,该ADC模块总共有8个通道可以进行模拟信号的输入,分别是AIN0、AIN1、AIN2、AIN3、YM、YP、XM、XP。那么ADC是怎么实现模拟信号到数字信号的转换呢?首先模拟信号从任一通道输入,然后设定寄存器中预分频器的值

3、来确定AD转换器频率,最后ADC将模拟信号转换为数字信号保存到ADC数据寄存器0中(ADCDAT0),然后ADCDAT0中的数据可以通过中断或查询的方式来访问。对于ADC的各寄存器的操作和注意事项请参阅数据手册。上图是mini2440上的ADC应用实例,开发板通过一个10K的电位器(可变电阻)来产生电压模拟信号,然后通过第一个通道(即:AIN0)将模拟信号输入ADC。ADC设备在Linux中可以看做是简单的字符设备,也可以当做是一混杂设备(misc设备),这里我们就看做是misc设备来实现ADC的驱动。注意:这里我们获取AD转换后的数据将采用中断的方式,即当AD转换完成后产生

4、AD中断,在中断服务程序中来读取ADCDAT0的第0-9位的值(即AD转换后的值)。【2】在内核中添加ADC驱动Linux-2.6.32.2内核并没有提供支持S3C2440的ADC驱动程序,由于《移植开发实战指南》中ADC部分代码在实际测试中始终输出-1,而无法通过测试,于是结合博主黄刚嵌入式Linux之我行——S3C2440上ADC驱动实例开发讲解的ADC驱动程序作了下修改,经过修改后有一个好处是方便地通过s3c24xx-adc.h文件中提供的宏修改通道获取采样数据,该头文件的代码也在drivers/misc目录下内容为:#ifndef_S3C2410_ADC_H_#def

5、ine_S3C2410_ADC_H_#defineADC_WRITE(ch,prescale)((ch)<<16

6、(prescale))#defineADC_WRITE_GETCH(data)(((data)>>16)&0x7)#defineADC_WRITE_GETPRE(data)((data)&0xff)#endif/*_S3C2410_ADC_H_*/驱动程序的文件名为:mini2440_adc.c位于drivers/misc目录下。由上述内容可知,ADC驱动和触摸屏驱动若想共存,就必须解决共享“A/D转换器”资源这个问题,因此在ADC驱动程序中声明了一个全局的“AD

7、C_LOCK”信号量,ADC驱动程序的内容和注解如下:#include#include#include#include#include#include#include#include#include#include#include#include

8、o.h>#include#include#include#include#include#include#include#include//;自己定义的头文件,因原生内核并没有包含#include"s3c24xx-adc.h"#undefDE

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。