关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 实现针对触摸屏的输入引擎移植解析方案

实现针对触摸屏的输入引擎移植解析方案

作者:时间:2012-05-16来源:网络收藏

1.引言

本文引用地址:http://www.eepw.com.cn/article/160592.htm

嵌入式GUI指在嵌入式系统中为特定的硬件设备或者环境而设计的图形用户界面系统。它极大地方便了非专业用户的使用,人们不再需要死记硬背大量的命令,而可以通过窗口、菜单方便地操作。在实际应用中,嵌入式GUI应满足轻型、占用资源少、高性能、高可靠性、可配置等基本要求。

Linux作为一种可裁减的操作系统,兼容多种主流CPU且支持所有的文件系统和网络服务,并具备源代码公开、易于定制、稳定、功能强大和易开发等优点,是发展未来嵌入式设备的绝佳资源。

2.Linux在嵌入式系统上的

2.1系统引导

系统上电或者复位后,将对系统硬件设备进行自检,无错误则将硬盘0磁道的第一个扇区,即MBR中的BootLoader调至内存0x07C00处,并将控制权交给BootLoader[1]。BootLoader通常是一段汇编代码,存放在MBR中,作用是将系统启动代码读到内存中。目前可选用的引导工具主要有GRUB和LILO,这里我们选用主流的GRUB,由于选用的存储介质是CF卡,格式化CF卡后建立GRUB安装目录,按照提示安装GRUB后,在 /etc目录下新建grub.conf文件,内容如下:

default=0

timeout=5

title Linux-2.4.34

root (hd0,0)

kernel /boot/vmlinuz-2.4.34 ro root=/dev/hdc1

其中root (hd0,0)指定了/boot所在的分区,kernel一行用来指定Linux的内核,及/所在的分区。

2.2内核配置、编译及裁减

内核是Linux操作系统的核心,它负责管理系统进程和进程调度等大小事务,决定着系统的性能和稳定性,其它应用程序都必须通过它才可以使用系统资源,获取系统服务。由于嵌入式硬件资源的限制,我们需要对Linux内核进行定制,精简出符合实际需要的最小内核文件。

首先在www.kernel.org上获取相应的内核包,解压后进行配置,然后根据目标板的硬件特点和实际需求配置内核的编译选项。这里我们选用基于X86 架构的PC104主板,为了减低不必要的复杂性,内核中取消kernel module支持,将有关CPU类型、内存管理、doc驱动、ext2文件系统支持、串口支持等常用功能编译进内核,SCSI、Floppy之类的外设在我们的嵌入式系统中没有使用,编译时可去掉。这样实际编译出的内核只有 747.6KB。基本步骤如下[2]:

#cd /usr/src/linux //内核包所在目录,这里下载的内核包版本是2.4.34

#make mrproper //确保源代码目录下没有不正确的.o文件以及文件的相互倚赖关系

#make menuconfig //图形界面下编译选项配置

#make dep //确保关键文件在正确位置

#make clean //确保所有有关文件都处于最新版本状态

#make bzImage //编译内核

#cp /usr/src/linux/arch/i386/bzImage /mnt/cf/boot //将内核文件拷贝至boot

2.3根文件系统

Linux 的根文件系统以树的结构方式组织,主要由配置文件、设备文件、Linux基本命令、基本C语言库组成。后两者是主要的,也是占空间最大的,用 Busybox和uClibc的组合够建这两部分内容,可以大大节省空间。根据根文件系统的基本结构,我们建立各个对应的目录:

#mkdir proc dev bin boot boot/grub etc src lib //由于是单用户系统,删除了root、home、sbin目录

#cp –r /dev/null /dev/mem … /mnt/cf/dev //拷贝所需设备文件

最后需要在etc目录下建立几个配置文件,分别是/etc/inittab、/etc/init.d/rcS、/etc/fstab,限于篇幅,仅介绍inittab文件,内容如下[4]:

:: sysinit: /etc/init.s/rcS //指定初始化文件

:: askfirst: /bin/sh //启动时执行的shell

:: respawn: /bin/getty 38400 ttyS0 //打开一个串口,波特率为38400

:: restart: /bin/init //重启时执行进程init

:: ctrlaltdel: /bin/reboot //捕捉特定按键动作

:: shutdown: /bin/umount –a –r //关机时动作,卸载所有文件系统


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭