Linux-2.6.32.2内核在mini2440上的移植(六).doc_第1页
Linux-2.6.32.2内核在mini2440上的移植(六).doc_第2页
Linux-2.6.32.2内核在mini2440上的移植(六).doc_第3页
Linux-2.6.32.2内核在mini2440上的移植(六).doc_第4页
Linux-2.6.32.2内核在mini2440上的移植(六).doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux-内核在mini2440上的移植(六)-添加LCD背光驱动 移植环境(红色粗字体字为修改后内容,蓝色粗体字为特别注意内容)1,主机环境:VMare下CentOS 5.5 ,1G内存。2,集成开发环境:Elipse IDE3,编译编译环境:arm-linux-gcc v4.4.3,arm-none-linux-gnueabi-gcc v4.5.1。4,开发板:mini2440,2M nor flash,128M nand flash。5,u-boot版本:u-boot-2009.086,linux 版本:linux-7,参考文章:嵌入式linux应用开发完全手册,韦东山,编著。Mini2440 之Linux 移植开发实战指南到目前为止,我们一直都在命令行下移植,查看结果,LCD 屏幕上似乎总是如伸手不见五指的黑夜,神秘而又无可奈何,从这里开始,我们就要打开这道神秘之门了。【1】LCD 背光控制原理在 mini2440/micro2440 开发板中,LCD 背光是通过CPU 的LCD_PWR 引脚来控制的,从原理图中可以看出,它对应于GPG4,如图当LCD_PWR 输出为高电平“1”时,将打开背光;当输出为低电平“0”时,将关闭背光(注意:这里只是打开和关闭背光,而并没有背光亮度的调节作用)。【2】 在内核中添加背光驱动程序现在,我们需要增加一个简单的背光驱动,以便能够通过软件便可简单的控制背光的开关。我们要达到的目的是:在命令终端通过向背光设备发送偶数比如“0”便可关闭背光,发送奇数比如“1”便可打开背光,这样使用起来就方便多了,而不需要专门的应用程序控制它,正如在用户手册中所描述的方法(2.5.10 控制LCD 的背光):提示:LCD 背光设备文件:/dev/backlight在命令行种输入:echo 0 /dev/backlight 可以关闭LCD 背光。在命令行种输入:echo 1 /dev/backlight 可以打开LCD 背光。为了实现这点,我们在linux-/drivers/video/backlight 目录增加一个mini2440_backlight.c文件,内容如下:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define DEVICE_NAME backlight /设备名称#define DEVICE_MINOR 5 /次设备号,这里我们将设备注册为misc设备,这种设备的主设备号都为10extern void s3c2410_gpio_setpin(unsigned int pin, unsigned int to);extern void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function);static int mini2440_backlight_ioctl(struct inode *inode,struct file *file, unsigned int cmd, unsigned long arg)switch(cmd)case 0:/当接收的命令为0时,就将GPG4引脚设为低电平,关闭背光s3c2410_gpio_setpin(S3C2410_GPG(4), 0); printk(DEVICE_NAME turn off!n);return 0;case 1:/当接收的命令为1时,就将GPG4引脚设为高电平,开启背光s3c2410_gpio_setpin(S3C2410_GPG(4), 1); printk(DEVICE_NAME turn on!n);return 0;default:return -EINVAL;static struct file_operations dev_fops = .owner = THIS_MODULE,.ioctl = mini2440_backlight_ioctl, /这里只使用控制IO口的方式来控制背光;static struct miscdevice misc =.minor = DEVICE_MINOR,.name = DEVICE_NAME,.fops = &dev_fops,;static int _init dev_init(void)int ret;ret = misc_register(&misc); /注册成misc设备if(ret Graphics support -* Backlight & LCD device support - 就可以找到该配置选项,如图在这里,如果没有被选中,按空格选中我们刚刚加入的mini2440 配置项,然后退出时保存内核配置菜单,在命令行执行:make uImage将生成的arch/arm/boot/uImage复制到/nfsboot目录下,然后启动开发板,可以在启动时看到LCD屏显示的企鹅图像,这说明我们已经点亮了背光。【5】编写测试程序linux-test/codetest/backlight_test.c,代码如下:#include #include #include #include int main(int argc, char *argv)int turn;int fd;/检测命令后面带的参数if(argc = 1 | argc 2)printf(Usage: backlight_test on|off!n);exit(1);/打开背光设备fd = open(/dev/backlight, O_RDWR);if(fd 0)printf(Open Backlight Device Faild!n);exit(1);/判断输入的参数if(strcmp(argv1, on) = 0)turn = 1;else if(strcmp(argv1, off) = 0)turn = 0;elseprintf(Usage: backlight_test on|off!n);exit(1);/进行IO控制ioctl(fd, turn);/关闭背光设备close(fd);return 0;然后保存退出,之后在主机终端交叉编译rootlocalhost codetest# arm-linux-gcc -o backlight_test backlight_test.c 将其复制到nfsboot目录下以便在开发板挂载该目录后能够执行rootlocalhost codetest# cp backlight_test /nfsboot/nfs【6】挂载nfs文件系统在目标板的串口终端中执行rootmini2440 /mnt#mkdir nfsrootmini2440 /mnt#lsdata etc jffs2 nfs temp yaffsrootmini2440 /#mount -o nolock -t nfs 28:/nfsboot/nfs /mnt/nfs /注意要加 -o nolock参数,否则挂载不上。rootmini2440 /#cd mnt/nfsrootmini2440 nfs#lsbacklight_test 【7】运行测试程序rootmini2440 nfs#./backlight_testrootmini2440 nfs#./backlight_test -helpUsage: backlight_test on|off!rootmini2440 nfs#rootmini2440 nfs#./backlight_test offbacklight turn off! /观察LCD屏,看到背光灯灭了rootmini2440 nfs#./backlight_test onbacklight turn on! /观察LCD屏,看到背光灯亮了roo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论