等离子切割机的数控系统设计说明书_第1页
等离子切割机的数控系统设计说明书_第2页
等离子切割机的数控系统设计说明书_第3页
等离子切割机的数控系统设计说明书_第4页
等离子切割机的数控系统设计说明书_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

- 1 -1 前言1.1 概述等离子数控切割机数的核心就是其数控系统,控系统是一个非常典型、复杂的实时控制系统,它能快速处理和响应信息。实时控制系统包括两大部分:受控系统和控制系统。受控系统是由硬件设备组成,如电机及其驱动;控制系统由软件及其支持硬件组成,它们共同完成数控系统的基本功能。数控系统中的人机交互图形化用户界面(Graphical User Interface , GUI)是研究人、计算机和彼此之间相互影响的技术,最终目的在于使所设计的计算机系统能帮助人们安全、高效地完成任务。人机交互通过图形用户界面显现出来。目前,主要的 GUI 设计软件主要有:Microwindows、MiniGUI、GTKFB、QT/E等。(1) Microwindows Open Source Project 成立的宗旨在于针对体积小的装置,建立一套先进的视窗环境,在 linux 桌面上通过交叉编译可以很容易的制作出 micro-windows 的程序 1。然而,Microwindows 的免费版本进展的一直很慢,几乎处于停顿状态,而且至今为止,国内没有任何一家公司对 Microwindows 提供全面的技术支持、服务和担保。(2) MiniGUI 是我国做的比较好的自由软件之一,它是在 linux 控制台上运行的多窗口图形操作系统,可以在以 linux 为基础的应用平台上提供一个简单可行MiniGUI 支持系统 1。(3) GTKFB 其宗旨就是要为嵌入式系统推出一套基于 GTK+的 GUI 解决方案 1。GTKFB 的最大优点就是它可以使用强大的 GTK+库,基于 GTK+库的软件极大丰富,适用于 PDA 等嵌入式设备 1。但 GTKFB 的最大缺点是它只能运行在单处理器系统上,这意味着它无法使用其他处理器来分离、保护系统的不同部分,也难以使用 GTKFB 来设置大型的系统 1。(4) QT/E Qt 是 Trolltech 公司的标志性产品,是一个跨平台的 C+图形用户界面(GUI)工具包 1。Qt/Embedded(简称 QtE)是一个专门为嵌入式系统设计图形用户界面的工具包 1。嵌入式系统地要求是小而快速,而 QtE 就能帮助开发者为满足这些要求开发强壮地应用程序,QtE 是模块化和可裁剪地 ,开发者可以选取他所需要的一些特性,而裁剪掉所不需要的 1。这样,通过选择所需要的特性,QtE 的映像变得很小,最小只有 600K 左右。- 2 -QtE 可以应用在所有主流平台和 CPU 上。支持所有主流的嵌入式 Linux,对于在 Linux 上的 QtE 的基本要求只不过是 Frame Buffer 设备和一个 C+编译器。Qt/Embedded 延续了 Qt 在 X 上的强大功能,在底层摒弃了 X lib,仅采用framebuffer 作为底层图形接口。同时,将外部输入设备抽象为 keyboard 和 mouse 输入事件,底层接口支持键盘、GPM 鼠标、触摸屏以及用户自定义的设备等 1。Qt/Embedded 类库完全采用 C+封装 1。丰富的控件资源和较好的可移植性是Qt/Embedded 最为优秀的一方面。1.2 国内外现状数控系统是数字控制系统简称,英文名称为 Numerical Control System,早期是由硬件电路构成的称为硬件数控(Hard NC) ,19 世纪 70 年代以后,硬件电路元件逐步由专用的计算机代替称为计算机数控系统 2。计算机数控(Computerized numerical control,简称 CNC)系统是用计算机控制加工功能,实现数值控制的系统 2。我国作为一个制造业大国,对于制造设备的需求量很大。作为制造业的核心,国产数控虽然有了很大的发展,但仍然无法追赶上世界发展的脚步。1.3 论文的内容安排等离子数控切割机是当今先进制造技术的一个重要组成部分,主要用于平面切割非规则图形,理论上只要用 AUTOCAD 能画出来的图形就能切割。本文设计了一个针对等离子切割机数控系统的图形用户交互界面的软件。并主要介绍了硬件环境的搭建、软件环境的搭建和基于 QT/E 的编程。论文共分五章,其结构如下:第一章:前言。简单介绍了几种开发 GUI 的工具及国内外现状第二章:硬件开发平台的搭建。主要介绍了为了搭建 ARM 平台的 linux 嵌入系统,而作的硬件准备,如 s3c2410 开发面板、MCX312 控制芯片等。第三章: 软件开发平台的搭建。主要介绍了为了开发用户图形交互界面而作的软件准备,介绍了 linux 内核的移植,QT 编译环境的搭建及环境变量的设置第四章:基于 QT/Embedded 的 GUI 设计与移植。 详细介绍了基于QT/Embedded 的 GUI 的开发步骤,并介绍了交叉编译及程序向目标板上的移植。第五章: 结论。总结本文工作,并提出来待解决的问题。- 3 -2 硬件开发平台的搭建本次设计采用 ARM+MCX312 的硬件框架, ARM 系列的微处理器由于其高性能、廉价、耗能低和相关技术及软件的支持,使其在广多领域得到了应用,尤其在嵌入式行业、DSP 和移动设备等。本次采用 S3C2410 作为核心处理器,用于各种控制的处理,而是用 MCX312 作为运动控制芯片,它能同时控制独立两个私服电机的运动控制芯片。以脉冲串的形式输出,能对伺服电机进行位置控制、插补驱动、速度控制等。并以此为基础设计了 USB 模块、LCD 模块、串口模块和其他模块。USB 模块主要作为鼠标和键盘设备的输入接口,还可以作为移动硬盘或 U 盘的接口用于数据的拷贝。LCD 模块主要为显示设备,它显示加工参数的设置、加工过程中各种信息的显示等。串口模块主要用于主机和目标机数据的传送。其他模块主要包括电源模块、复位模块等其他模块。2.1 处理器模块本系统采用以三星公司的 S3C2410 为处理器,同时受环境所限决定采用博创公司 UP-NetARM2410 的核心板,主要资源有基于 ARM920T 结构的嵌入式芯片S3C2410 的核心板,其主频为 203MHZ,64M 的 SDRAM(由 2 片 HY57V561620 组成,每片 32MB) ,64MB 的 NAND FLASH(三星公司的 K9F1208) 4。图 2.1 UP-NetARM2410 的核心板- 4 -外围模块主要有电源、复位、RTC 时钟等基本系统,双 100M 自适应 AX88796 的以太网,4 个 USB 接口,PS/2 键盘和鼠标接口,640X480 的 16bit的 TFT 的 LCD 液晶屏,RS485 总线 4。其整体的硬件结构框图如图 2.2图 2.2 系统硬件框图2.2 USB 模块由于本设计要用到键盘、鼠标等输入设备,并且还需要 USB 接口作为数据的传送接口,为了设计过程简单化决定设计 4 个 USB 接口,其中一个用于键盘接口,一个用于鼠标接口,一个用于文件的拷贝,最后一个备用。其接口控制用芯片为AT43301,接口电路如图 2.3 所示。- 5 -图 2.3 USB 接口电路2.3 LCD 模块显示设备 LCD 显示器,具有稳定可靠、成本低、功耗小、驱动控制方便等众多优点,在嵌入系统中得到了广泛的应用。S3C2410 内部集成了 LCD 控制器逻辑单元,其控制器支持单色、四级灰度、256色的调色板显示模式的 TFT 屏,支持 64K 和 16M 色非调色板显示模式,支持分辨率为 640*480、320*240 及其他多规格的 LCD,用来将 LCD 图像数据从系统内存的视频缓冲区传输到外部的 LCD 驱动器,同时产生各种时钟和控制信号 4。图 2.4 为 LCD的内部框图。 图 2.4 LCD 控制器内部框图其中 LCDCDMA 则是 LCD 控制器的专用 DMA 通道,负责将视频资料从系统总线上取来,通过 VIDPRCS 从 VD23:0传递给 LCD 屏 4。- 6 -图 2.5 LCD 的接口电路图2.4 串口模块UART 是一种通用的数据总线,用于一步通信。可以实现双工传输和接收,在本系统中用来与 PC 进行数据交换。S3c2410 内部具有三个独立的 UART 控制器,并均可工作于中断模式和 DMA 模式4。每个 UART 均有 16 字节的 FIFO(先入先出寄存器) ,波特率最高课支持到230.Kbps4。图 2.6 串口电路图- 7 -2.5 其他模块主要包括:电源模块、复位模块、JTAG 模块和其它模块等。2.5.1 电源模块主要为整个系统供电,主要输出三种电压:5V 为电池电源 ;3.3V 为大部分器件进行供电; 1.8V 为内核工作电压其电路图如 2.7 所示图 2.7 电源电路图2.5.2 复位模块主要用于系统的复位,其电路图如 2.8 所示。图 2.8 复位电路图- 8 -2.5.3 JTAG 模块主要用于程序的烧写,在搭建嵌入式 linux 时用到,其接口电路图如 2.9 所示。图 2.9 JTAG 电路图2.6 控制器模块本设计采用固高公司的 MCX312,它能同时控制独立两个私服电机的运动控制芯片。以脉冲串的形式输出,能对伺服电机进行位置控制、插补驱动、速度控制等。所有 MCX312 的功能由特殊寄存器控制,有命令寄存器、数据寄存器、状态寄存器和模式寄存器。2.6.1 功能概述(1)独立二轴驱动一个芯片可以分别控制 2 个马达驱动轴的运动 每个轴都可以进行定速驱动 直线加/减速驱动 S 曲线加/减速驱动等,2 轴的性能。- 9 -图 2.10 控制简图(2)定量驱动和连续驱动定量驱动的意思是以固定速度或加/减速度输出指定数量的脉冲。需要移动到确定的位置或进行确定的动作时使用此功能。定量驱动中可以变更输出脉冲数。一般原点搜寻 扫描操作 控制马达旋转速度时使用此功能。(3)位置管理每轴都有 2 个 32 位位置计数器,一个是在芯片内部管理驱动脉冲输出的逻辑位置计算器,另一个是管理从外部编码器来的脉冲的实际位置计数器。(4)插补可以选择 2 轴直线插补驱动,插补坐标范围是从当前位置到-8,388,607 +8,388,607 之间,在整个指定的直线插补范围内,插补精度是 0.5LSB,插补速度范围是从 1PPS 至 4MPPS 。可以选择 2 轴进行圆弧插补驱动,插补坐标范围是从当前位置到-8,388,608 +8,388,607 之间,在整个指定的圆弧曲线插补范围内,插补精度是 0.5LSB,插补速度范围是从 1PPS 至 4MPPS。收到在高位 CPU 上计算的位模式插补数据后,可以用指定的驱动速度连续输出插补脉冲,用这种方式可以产生任何插补曲线 。直线插补圆弧插补直线插补这样可以不停地运行每个插补节点的插补驱动,连续插补的最大驱动速度是2MHz 。(5)中断可以由这些原因产生中断,如:加/减速驱动的定速开始时、定速完毕时、驱动完毕时、位置计数器和比较器之间的大小关系有变化时、等等。此外,连续插补、位模式插补发生下一个数据请求时的中断 。2.6.2 MCX312 电路图其控制电路接线图和隔离电路图如 2.11 所示。 - 10 -图 2.11 MCX312 的控制电路图- 11 -3 软件平台的搭建3.1 主机软件平台的搭建主机软件平台的搭建主要是建立 Linux 系统和 QT4 编译环境的搭建,限于条件,决定在 Windows XP 平台上建立虚拟机,在虚拟机中搭建 Linux 系统。虚拟机的搭建采用 VMWare 6.5。linux 系统为 Red Hat 9.0 中文版,内核为 Linux 2.4.2。QT 为qt-embedded-linux-opensource-src-4.4.1.tar.gz , qt-x11-opensource-src -4.4.1.tar.gz 交叉编译器为博创公司提供的 RAM-LINUX-GCC 3.4.1。3.1.1 虚拟机的安装关于 VMWare 安装的教程网上很多,在此不再赘述。先介绍 Linux 版虚拟机的安装,然后主要介绍一下 VMWare Tools 的安装,因为我在安装 VMWare Tools 时出错最多。一 Linux 版虚拟机的安装前提条件是 VMWare 已安装,并且已下载 Red Hat9.0 中文版的安装镜像文件(可在网上下载,学校的 50 服务器上也有)或有 Red Hat9.0 中文版的安装盘。(1)打开 VMWare,点击 New Virtual Machine 图标。图 3.1 新建选项(2)点击图标后会出来一个安装向导,选择 Typicl(典型)安装,然后点击Next。再新出来对话框中选择 Installer disc_image(iso):选项,并在下拉框中选择 Red Hat9.0 中文版安装镜像文件的第一个文件,选择完,点 Next。图 3.2 镜像目录(3)选择安装类型为 Linux,然后 Next。选择安装路径,然后一直 Next 直到Finish。(4)点完 Finish 后,会出现 Red Hat9.0 的安装界面,选择图形安装方式就可以了。在安装过程需要注意的是在安装类型时要选择指定,然后选择全部安装,因- 12 -为典型安装缺少 OPENSLL 文件,在安装 QT4 时需要此文件。二 VMWare Tools 的安装VMware Tools 是 VMware 虚拟机中自带的一种增强工具,相当于 VirtualBox 中的增强功能(Sun VirtualBox Guest Additions) ,是 VMware 提供的增强虚拟显卡和硬盘性能、以及同步虚拟机与主机时钟的驱动程序 5。只有在 VMware 虚拟机中安装好了 VMware Tools,才能实现主机与虚拟机之间的文件共享,同时可支持自由拖拽的功能,鼠标也可在虚拟机与主机之前自由移动(不用再按 ctrl+alt) ,且虚拟机屏幕也可实现全屏化 5。(1) CD-ROM 虚拟光驱中选择使用 ISO 镜像,找到 VMWARE TOOLS 安件。(2) OOT 身份进入 LINUX,进入 linux 新建一个终端,输入 /sbin/telinit 3 进入纯文本模式,然后在纯文本模式下再次用 root 身份登陆。(3) 到 windows,在虚拟机菜单栏中点击 虚拟机- 安装 VMWARE TOOLS 子菜单。会弹出对话框,点击确认 安装。(4) 载光驱 mount /dev/cdrom /mnt/cdrom ,并进入 cd /mnt/cdrom ,复制*.tar.gz 格式的文件 CP vmware-linux-tools /tmp/ /tmp/(5) /tmp/ 进入 tmp 目录(6) ar zxf vmware-linux-tools.tar.gz 解压 vmware-linux-tools.tar.gz 文件(7)d vmware-linux-tools 进入 cd vmware-linux-tools 文件(8) ./*.pl 运行后缀为.pl 的文件(9) 行安装过程中,它会一步一步的有问题提出要你回应,此过程中,你只要见到问题后面显示yes 、no 、yes/no的都输入 yes,然后回车,其他的问题后面不管 里面是什么直接回车就好,不要输入,选择默认。(10) 最后它会输出 115 个分辨率,你输入数字选择,根据你的显示器来选择分辨率,样就安装好了。3.1.2 QT4 的安装Qt 是一个跨平台的 C+ 图形用户界面库,由挪威 TrollTech 公司于 1995 年底出品。2008 年被诺基亚收购。QT 支持 MS/Windows - 95、98、NT 4.0、ME、2000、XP 、Vista 和 Win7、Macintosh - Mac OS X、 Unix/X11 - Linux、 Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX 和其它很多 X11 平台。在 PC 机上的 QT 是基于 X11 图形系统的,在嵌入设备中往往不需要这么累赘,只需使用 QTE(QT/Embedded)即可包括 PC 平台中 X11 和 QT 库的功能。因此,我们要建立 3 个版本的 QT,分别为 PC 版、X86 版、ARM 版,其中 PC 版主要用于设计,需要其中的 Designer、QVFB 等。X86 版主要用于程序的仿真调试, QVFB 就- 13 -是仿真调试用的。而 QVFB 必须运行于 X86 结构。ARM 版用于程序的交叉编译用。一 PC 版 QT 安装(1)以 ROOT 身份进入 LINUX 系统,新建终端。执行以下命令:#gcc v 先查看 gcc 版本,如低于 3.0 要先安装不低于 3.0 的图 3.3 GCC 的版本查看(2) # ln -s /usr/kerberos/include/com_err.h /usr/include/ 因为 Red Hat9.0 安装时ln -s /usr/kerberos/include/profile.h /usr/include/ krb5.h 不在 include 里面ln -s /usr/kerberos/include/krb5.h /usr/include/ (3) #cd /usr/local/ 进入 local 目录(4) # mkdir qtpc 创建 qtpc 文件夹,用于安装 PC 版的 QT(5) # tar zxvf qt-x11-opensource-src-4.4.1.tar.gz 解压 QT(6) #cd qt-x11-opensource-src-4.4.1 进入 x11-opensource-src-4.4.1 文件夹(7)#./configure -prefix /usr/local/pcqt/ -qvfb -prefix 用于指定 QT 的安装路径,-qvfb 表示编译 qvfb 模块,为 X86 准备(8)gmake(9)gmake install / 到此,PC 版的 QT 安装完成运行环境变量,看是否安装成功PATH=/usr/local/Trolltech/Qt-4.5.0/bin:$PATHQTDIR=/usr/local/Trolltech/Qt-4.5.0QTDEDIR=$QTDIRMANPATH=$QTDIR/man:$MANPATHLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATHexport PATH QTDIR MANPATH LD_LIBRARY_PATH# ./ designer / 出现 designer 画面接着安装 QVFB- 14 -(1) # cd Tools (2) # cd qvfb (3) # make QVFB 安装完成,用于仿真 QT 程序二 X86 版 QT 的安装(1)#cd /usr/local/ 进入 local 目录(2)# mkdir qtx86 创建 qtx86 文件夹,用于安装 X86 版的 QT(3)# tar zxvf qt-embedded-linux-opensource-src-4.4.1.tar.gz(4)#cd qt-embedded-linux-opensource-src-4.4.1(5)#./configure -prefix /usr/local/qtx86 X86 的安装目录 -embedded x86 指定嵌入式平台为 X86-qt-gfx-qvfb 指定驱动设备显示为 QVFB-qt-kbd-qvfb 支持键盘 -qt-mouse-qvfb 支持鼠标 (6)# gmake(7)# gmake install X86 版 QT 安装完成测试一下是否安装成功,设置如下环境变量:PATH=/usr/local/qtx86/bin:$PATHQTDIR=/usr/local/qtx86QTDEDIR=$QTDIRMANPATH=$QTDIR/man:$MANPATHLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATHexport PATH QTDIR MANPATH LD_LIBRARY_PATH注 :PATH 是指定 X86 运行的路径# qvfb -width 640 -height 480& 三 ARM 版 QT 的安装在搭建 ARM 版的 QT 之前,应该首先安装交叉编译器,本文用的是博创公司提供的 ARM-LINUX-GCC3.4.1,触摸屏库为 tslib1.4。1 交叉编译器 arm-linux-gcc 的安装(1)#tar xjvf linux-gcc-3.4.1.tar.bz2把它放在:/usr/local/arm/qtarm 下(2)#gedit /root/.bashrc 对 bashrc 进行编辑,设置环境变量输入 export PATH=/opt/toolchains/arm920t-eabi/bin:$PATH- 15 -图 3.4 ARM-LINUX-GCC 版本号正式安装 ARM 版 QT(1)# mkdir qtarm(2)# tar zxvf qt-embedded-linux-opensource-src-4.4.1.tar.gz(3)#cd qt-embedded-linux-opensource-src-4.4.1(4)# ./configure -prefix /usr/local/qtarm 指定安装目录-opensource 以开源版本发布程序-confirm-license -release -shared 创建使用共享库-embedded arm -xplatform qws/linux-arm-g+ 交叉编译指定目标平台-depths 16,18,24 支持显示设备的位深度为 16 18 24-fast -optimized-qmake 开启 QMAKE 优化-pch 使用预处理器头文件-qt-sql-sqlite -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -little-endian -host-little-endian -no-qt3support -no-libtiff -no-libmng -no-opengl - 16 -no-mmx -no-sse -no-sse2 -no-3dnow -no-openssl -no-webkit -no-qvfb -no-phonon -no-nis -no-opensll -no-cups -no-glib -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-separate-debug-info -nomake examples -nomake tools -nomake docs -qt-mouse-tslib -I/usr/local/qtarm/tslib/include -L/usr/local/qtarm/tslib/lib(5)# make(6)# make install3.2 目标机软件平台的搭建根据 IEEE(电气和电子工程师协会)的定义,嵌入式系统是“ 控制、监视或者辅助装置、机器和设备运行的装置”(devices used to control, monitor, or assist the operation of equipment, machinery or plants) 。从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。目前,嵌入式操作系统市场上很多如:uC/OS II 、RT-thread、uCLinux、FreeRTOS、VxWorks、嵌入式 Linux、Nucleus等等。其中 linux 系统以其代码开源、内核小、效率高、更新快、兼容性好等诸多优点而被广泛应用。本论文就是采用嵌入式 linux 系统,作为开发平台。3.2.1 内核移植(1)修改 linux2.4.2 下面的 makefile 文件找到 ARCH 和 CROSS_COMPILE,修改ARCH ?= armCROSS_COMPILE ?= /usr/local/arm/3.4.1/bin/arm-linux- 交叉编译的路径- 17 -(2)设置 flash 分区在 arch/arm/machs3c2410/devs.c 文件中添加头文件#include #include #include 然后建立分区表/* 一个 Nand Flash 总共 64MB, 按如下大小进行分区 分区大小自己看着办*/static struct mtd_partition partition_info = name: bootloader,size: 0x00100000,offset: 0x0, name: kernel,size: 0x00300000,offset: 0x00100000, name: root,size: 0x02800000,offset: 0x00400000, name: user,size: 0x00f00000,offset: 0x02d00000,;/*加入 Nand Flash 分区*/struct s3c2410_nand_set nandset =nr_partitions: 4, /*指明 partition_info 中定义的分区数目 */partitions: partition_info, /* partition table 分区信息表*/;/*建立 Nand Flash 芯片支持*/struct s3c2410_platform_nand superlpplatform=tacls:0,twrph0:30,twrph1:0,sets: &nandset, sets: 支持的分区集 nr_sets: 1, nr_set:分区集的个数;/*加入 Nand Flash 芯片支持到 Nand Flash 驱动- 18 -struct platform_device s3c_device_nand = .name = s3c2410-nand, Device name .id = -1, Device ID.num_resources = ARRAY_SIZE(s3c_nand_resource),.resource = s3c_nand_resource, Nand Flash Controller Registers.dev = .platform_data = &superlpplatform Add the Nand Flash device指定启动时初始化在 arch/arm/machs-3c2410/mach-smdk2410.c 文件找到 platform_device *smdk2410_devices _initdata 函数,在该函数体最后加上一条语句:&s3c_device_nand,(3)Yaffs2 文件系统支持# ar zxvf yaffs2.tar.gz # cd yaffs2#./patch-ker.sh c /linux-2.4.2 内核源码在 linux-2.4.2(4)编译配置内核,首先先 load 一个默认的内核/linux-2.6.14/arch/arm/configs/smdk2410_defconfig,在这个配置文件上改Loadable module support * Enable loadable module support* Automatic kernel module loadingSystem Type * S3C2410 DMA supportBoot options Default kernel command string:noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0,115200Floating point emulation * NWFPE math emulationDevice Drivers Memory Technology Devices (MTD) * MTD partitioning support 支持 MTD 分区,这样我们在前面设置的分区才有意义* Command line partition table parsing 支持从命令行设置 flash 分区信息RAM/ROM/Flash chip drivers Detect flash chips by Common Flash Interface (CFI) probeDetect nonCFI AMD/JEDECcompatible flash chips- 19 -Support for Intel/Sharp flash chipsSupport for AMD/Fujitsu flash chipsSupport for ROM chips in bus mappingNAND Flash Device Drivers NAND Device SupportNAND Flash support for S3C2410/S3C2440 SoCCharacter devices * Nonstandard serial port suppor* S3C2410 RTC DriverFile systems Second extended fs support #去除对 ext2 的支持Pseudo filesystems * /proc file system support* Virtual memory file system support (former shm fs)* /dev file system support (OBSOLETE)* Automatically mount at boot (NEW)这里会看到我们前先修改 fs/Kconfig 的成果Miscellaneous filesystems Compressed ROM file system support (cramfs) 支持 cramfsYAFFS2 file system support 支持 yaffs2Network File Systems NFS file system support3.2.2 CS8900 网卡驱动的移植(1)cs8900.c 和 cs8900.h 放到/drivers/net/arm/(2)在 cs8900.c 中的 cs8900_probe()函数中,memset ( 函数之后添加如下两条语句:_raw_writel(0x2211d110,S3C2410_BWSCON);_raw_writel(0x1f7c,S3C2410_BANKCON3);添加头文件#include (3)修改 drivers/net/arm/目录下的 Kconfig 文件,在最后添加如下内容:config ARM_CS8900depends on NET_ETHERNET & ARM & ARCH_SMDK2410(4)修改 drivers/net/arm/目录下的 Makefile 文件,在最后添加如下内容:obj-$(CONFIG_ARM_CS8900) += cs8900.o(5)在/arch/arm/mach-s3c2410/mach-smdk2410.c 文件中,找到- 20 -smdk2410_iodesc结构数组,添加如下内容:vSMDK2410_ETH_IO, 0x19000000, SZ_1M, MT_DEVICE添加头文件#inlcude (6)在 include/asm-arm/arch-s3c2410/目录下创建 smdk2410.h 文件,其内容为:#ifndef _INCLUDE_SMDK2410_H_#define _INCLUDE_SMDK2410_H_#define SMDK2410_ETH_IRQ IRQ_EINT9#endif / _INCLUDE_SMDK2410_H_(7)编译内核,选中所装驱动#make menuconfigDevice Drivers Network device support -Ethernet (10 or 100Mbit) -*Ethernet (10 or 100Mbit)CS8900 support3.2.3 LCD 驱动移植(1)在 arch/arm/mach-s3c2410/mach-smdk2410.c 中添加#include #include static struct s3c2410fb_mach_info s3c2410_lcd_info _initdata = .fixed_syncs = 0,.regs = .lcdcon1 = S3C2410_LCDCON1_TFT16BPP | S3C2410_LCDCON1_TFT | S3C2410_LCDCON1_CLKVAL(1),.lcdcon2 = S3C2410_LCDCON2_VBPD(32) | S3C2410_LCDCON2_VFPD(9) | S3C2410_LCDCON2_VSPW(1),.lpcsel = 0x0,.gpccon = 0xaaaaaaaa,.gpccon_mask = 0xffffffff,.width = 640,.height = 480,.xres = 640,640,640,.yres = 480,480,480,.bpp = 16,16,16,- 21 -;static void _init smdk2410_lcd_init(void)set_s3c2410fb_info((2)在文件最后 MACHINE_END 之前添加.init_machine = smdk2410_lcd_init:(3)编译内核,选中所装驱动#make menuconfigDevice Drivers Graphics support -support for frame buffer devicesS3C2410 LCD framebuffer supportLogo configuration - /开机画面的选择,可据个人需要*Bootup logo*Standard 224-color linux logo3.2.4 USB 驱动移植(1)在 arch/arm/mach-s3c2410/mach-smdk2410.c 中紧接着 LCD 的部分添加#include struct s3c2410_hcd_info usb_s3c2410_info = .port0 = .flags = S3C_HCDFLG_USED;(2)在 smdk2410_map_io 函数最后添加smdk2410_usb_init();(3)编译内核,选中所装驱动,配置 USB 鼠标键盘#make menuconfigDevice Drivers USB support -Support for Host-side USBOHCI HCD supportUSB Human Interface Devices (full HID) support* HID input layer support- 22 -3.2.5 根文件系统制作(1)建一个目录 rootfs 用来装文件系统(2)# mkdir bin dev etc home lib mnt proc root sbin tmp usr var# mkdir usr/bin usr/sbin# mkdir mnt tmp var# chmod 1777 tmp# mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp# mkdir var/lib var/lock var/log var/run var/tmp# chmod 1777 var/tmp# mkdir home root boot(3)到系统 /dev 把所有的 device 打一个包,拷贝到 dev 下面(最省事的做法);或者使用 mknod 来自己建所需要的 device例如:# mknod -m 600 dev/console c 5 1# mknod -m 666 dev/null c 1 3(4)应用程序定制标准的 Linux 发行版本具有功能种类比较多的应用程序,这些应用程序占用的空间也很大,这对存储容量空间有限的开发板来说就不是理想的选择,在嵌入式开发过程中,经常用 BusyBox 来定制应用程序。 BusyBox 具有 shell 的功能,它能提供系统所需要的大部分工具,包括编辑工具、网络工具、模块加载工具、压缩解压缩工具、查找工具、帐号密码管理工具和进程相关工具等。目前 BusyBox 的最新版本是 BusyBox-1.9.2 版本,下载解压,切换到BusyBox 的根目录下,修改 Makefile,找到 ARCH 和 CROSS COMPILE 修改如下:ARCH ?= armCROSS_COMPILE ?=/usr/local/arm/3.4.1/bin/arm-linux-(5)修改编译配置选项#make defconfig#make menuconfig 进入配置菜单在默认的选项前提之下,选项设置如下: - 23 -图 3.5 busybox 配置界面BusyBox Settings -Build Options - (采用静态编译 )* Build BusyBox as a static binary (no shared libs)Install optinBusybox Library Tuning -* Faster /proc scanning code (+100 bytes)* Support for /etc/networks* Support for /etc/networks* Additional editing keys* vi-style line editing commands* History saving* Tab completion* Username completion* Fancy shell promptsLinux Module Utilities -* Support version 2.6.x Linux kernelsShell -Choose your default shell(ash)-ash /下面的选项全部选择(6)编译 busybox# make install(7)系统配置文件的建立系统配置文件放在/etc 目录下- 24 -profile 文件:#Set search library pathexport LD_LIBRARY_PATH=/lib:/usr/lib:$LD_LIBRARY_PATH#Set user pathPATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATHalias ll=ls -l#Set PS1USER=”id un”LOGNAME=$USERPS1=uh W$ PATH=$PATHexport USER LOGNAME PS1 PATHfstab 文件:proc /proc proc defaults 0 0none /tmp ramfs defaults 0 0mdev /dev ramfs defaults 0 0sysfs /sys sysfs defaults 0 0inittab 文件:sysinit:/etc/init.d/rcS:respawn:-/bin/sh:ctrlaltdel:/bin/umount -a r:shutdown:/bin/umount -a r:shutdown:/sbin/swapoff a创建/etc/init.d 文件夹和 rcS:./etc/hosthostname $HOSTNAMEecho # mount all./bin/mount aecho # Starting mdev./bin/echo /sbin/mdev /proc/sys/kernel/hotplugmdev s(8)yaffs 文件系统映像的制作使用 mkyaffsimg 程序可以把一个目录做成一个 yaffs 映像文件,然后使用usb 下载到板子上。进入文件系统目录层,使用以下命令:#mkyaffsimg rootfs rootfs.img这样就会在该目录下生成 rootfs.img 映像文件,下载到开发板运行即可。- 25 -4 基于 QT/Embedded 的 GUI 设计与移植4.1 QT/Embedded 概述一个 嵌入式 Linux 的 Qt 应用程序提供了请求服务

温馨提示

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

评论

0/150

提交评论