《嵌入式系统设计与应用(第2版)》第5章 嵌入式系统开发环境的建立_第1页
《嵌入式系统设计与应用(第2版)》第5章 嵌入式系统开发环境的建立_第2页
《嵌入式系统设计与应用(第2版)》第5章 嵌入式系统开发环境的建立_第3页
《嵌入式系统设计与应用(第2版)》第5章 嵌入式系统开发环境的建立_第4页
《嵌入式系统设计与应用(第2版)》第5章 嵌入式系统开发环境的建立_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

第5章嵌入式系统

开发环境的建立5.1建立主机开发环境5.1.1交叉编译所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。5.1.2建立交叉编译开发环境1、下载和安装arm-linux-gcc编译工具链(1)下载arm-linux-gcc(2)解压arm-linux-gcc例如,下载最新的arm-linux-gcc版本为arm-linux-gcc-4.4.3.tar.gz。应用下列解压命令:

#tar-zxvfarm-linux-gcc-4.4.3.tar.gz

解压后在当前目录下形成了opt/FriendlyARM目录,进入该目录,将该目录中的toolschain文件目录及其所有文件复制到/usr/local/下:

#cp-rvtoolschain/usr/local/交叉编译工具都在/usr/local/toolschain/4.4.3/bin目录下。2、在系统配置文件profile中设置环境变量(1)(1)方法一: 在profile文件中加入搜索路径:

pathmunge/usr/local/toolschain/4.4.3/bin(2)方法二:

修改环境变量,把交叉编译器的路径加入到PATH。exportPATH=$PATH:/usr/local/toolschain/4.4.3/binexportPATH

3、立即使新的环境变量生效,不用重启电脑

(1)运行source命令,使我们的设置生效。

#source/etc/profile

(2)检查是否将路径加入到PATH:

#echo$PATH(3)测试是否安装成功

#arm-linux-gcc-v检验交叉编译环境是否成功。[root@localhostroot]#arm-linux-gcc-vReadingspecsfrom/usr/local/arm-linux/lib/gcc-lib/arm-linux/3.3.2/specsConfiguredwith:/tmp/build-preview-kit/for_toolchain/gcc-3.3.2/configure--target=arm-linux--host=i686-host_pc-linux-gnu--prefix=/usr/local/arm-linux--with-cpu=xscale--with-headers=/usr/local/arm-linux/arm-linux/include--disable-nls--enable-threads=posix--enable-symvers=gnu--enable-__cxa_atexit--enable-languages=c,c++--enable-shared--enable-c99--enable-long-long--without-fpThreadmodel:posixgccversion3.3.24、编译HelloWorld程序,测试交叉工具链编写下面的HelloWorld程序,保存为hello.c#include<stdio.h>intmain(){printf("HelloWorld!\n");return0;}

执行下面的命令:

#arm-linux-gcc-ohellohello.c通过编译后,就可以下载到ARM开发板上运行了。

5.2配置超级终端minicom1、配置minicom在宿主机Linux终端中输入:

minicom–s或输入:minicom

,然后再按CTRL-A-O。选择Serialportsetup,首先选择串口,如果使用第1个串口,则设置串口号为:ttyS0,如果使用第2个串口,则将串口号设为ttyS1。将串口配置为:波特率115200,8位数据位,1位停止位,没有流控。选择Savesetupasdfl,

将设置保存为默认值。

5.3建立数据共享服务5.3.1Linux系统的数据共享――NFS服务NFS服务NFS(NetworkFileSystem)类似于windows中的文件共享服务。在NFS服务中,主机是被挂载(mount)端,为远端客户机提供可以访问的共享文件。主机需要配置两方面内容:设置NFS服务,允许“指定的NFS用户”使用。开发板与主机连接好网线1、设置NFS服务打开NFS服务命令:

setup选择Systemservices,将nfs一项选中(出现[*]表示选中)2、指定NFS服务的用户在文件“exports”中指定NFS服务的用户:使用vi,在exports文件中加入:/linux_nfs192.168.0.16(rw,insecure,no_root_squash,no_all_squash)然后按<ESC>后输入“:”,再输入“wq”,然后回车,存储退出。其中“/linux_nfs”是一个可以被IP地址为“192.168.0.16”的客户机进行读写操作的共享文件目录。重启NFS服务重新启动nfs服务,使我们的设置生效:

/etc/rc.d/init.d/nfsrestart3、在客户机端挂接共享的目录现在还需要将宿主机NFS服务提供的共享目录挂接到嵌入式系统开发板上。我们利用minicom作为被开发目标板的终端。(1)进入minicom终端界面用串口线连接宿主机和开发板,并在宿主机的终端进入到minicom界面。[root@localhostroot]#

minicom打开设备电源,这时,可以所观察到的是开发板上所运行的嵌入式Linux系统的启动过程。(2)设置开发板的IP地址:通过minicom终端界面,我们可以设置开发板的IP地址192.168.0.16:[….]#ifconfig

etho192.168.0.16(3)挂载共享目录将宿主机NFS服务所共享的目录/linux_nfs挂载到开发板的/mnt目录下(这里假设宿主机的IP地址为192.168.0.1):[root@linux/]#mount–o

soft,timeo=100,rsize=1024

192.168.0.1:/linux_nfs/mnt

5.3.2串口通信协议串口通信协议由Xmodem、Ymodem、Zmodem等协议组成。Xmodem协议以包为传输信息单位的形式传输数据,并且每个包都使用一个校验和过程来进行错误检测。1个包=128字节,传输速度较慢。Ymodem协议由Xmodem协议演变来,传输效率及可靠性均较高,它的1个包=1024字节。Ymodem一次传输可发送或接受几个文件。Zmodem协议也是由Xmodem协议演变来,以连续的数据流发送数据,传输效率更高。1、Windows系统主机传输文件到Linux系统开发板当需要把Windows系统主机的文件传输到Linux系统开发板时,可以使用本方法来实现。用串口通信数据线连接Windows系统主机和Linux系统开发板,如图5.12所示。(1)在Windows系统主机端设置发送文件在Windows系统主机的桌面【开始】菜单中,选择/【程序】/【附件】/【通信】/【超级终端】项,在“COM1属性”对话框中,设置端口的参数值:每秒位数(波特率)为115200,数据位为8位,奇偶校验为无,停止位为1,数据流控制为无。(2)在Linux系统开发板端设置接收文件在开发板端设置接收文件的操作很简单,只需要通过minicom窗口,进入到准备接收数据文件的目录中,等待发送来的文件。(3)发送数据在超级终端的串口通信窗口的【发送】菜单中,选择【发送文件(S)…】项在弹出的“发送文件”对话框中,单击【浏览(B)…】按钮,选择需要传送的数据文件。然后在“协议(P)”下拉列表框中,选择“Xmodem”协议。如图5.17所示。2、Linux系统主机传输数据到Linux系统开发板把在Linux系统主机上经过交叉编译后的文件传输到Linux系统开发板运行,可以使用本方法来实现传送文件。(1)在开发板端设置接收文件通过minicom窗口操作开发板端文件系统,进入到准备接收数据文件的目录中,等待发送来的文件。(2)从Linux系统主机端发送文件在minicom窗口中,按下Ctrl+A+S组件键,弹出选择传输数据协议的对话框。5.3.3在VMware虚拟机中设置Windows——Linux的数据共享在VMware虚拟机中可以设置Windows与Linux系统的共享。设Windows操作系统的VMware中安装有Linux操作系统,通过Vmware虚拟机可以设置Windows与Linux系统的共享。1、安装VMwareTools在VMware虚拟机中选择“虚拟机(VM)”菜单,在弹出的下拉菜单中选择“InstallVMwareTools...”项,Linux系统桌面上会出现一个名为“VMwareTools”光盘。双击“VMwareTools”光盘图标,打开光盘,将“VMwareTools.tar.gz”文件解压至指定目录下,进入到目录vmware-tools-distrib中,在终端运行如下命令:./vmware-install.pl2、设置共享文件夹选择VMware“虚拟机(VM)”菜单中的“设置(Settings)...”项,弹出虚拟机设置对话框。

3、在Linux系统中操作Windows系统的共享文件夹在Linux系统中,打开/mnt目录,可以看到其中存在一个hgfs目录。打开/mnt/hgfs目录,可以看到Windows系统的共享文件夹。

5.4编译嵌入式Linux内核编译内核需要三个步骤,分别是:

内核配置、建立依存关系、建立内核。

5.4.1内核裁剪配置1、确定处理器类型编译内核的第一步是根据目标板微处理器类型来确定微处理器架构,不同的微处理器架构在编译内核时会有不同的处理器选项。因此,必须在ARM系统文件的根目录中的Makefile里要为“ARCH”设定目标板微处理器的类型值:

ARCH:=arm

或输入命令手工进行设置:[root@localhostlinux]#exportARCH=arm2、确定配置方法内核支持4种不同的配置方法,这几种方法只是与用户交互的界面不同,其实现的功能是一样的。(1)makeconfig:基于文本的最为传统的配置界面,不推荐使用。(2)makemenuconfig:基于文本选单的配置界面,字符终端下推荐使用。(3)makexconfig:基于图形窗口模式的配置界面,Xwindow下推荐使用。(4)makeoldconfig:自动读入“.config”配置文件,并且只要求用户设定前次没有设定过的选项。在这4种模式中,makemenuconfig

使用最为广泛。【例5-2】以makemenuconfig为例进行S3C6410系统的内裁剪核配置。

(1)首先确定嵌入式系统开发板的CPU类型,这里为ARM类型。运行命令:exprotARCH=arm(2)运行makemenuconfig命令,弹出内核裁剪配置窗口,如图5.28所示。makemenuconfig5.4.2内核编译1、建立依赖关系

由于内核源码树中的大多数文件都与一些头文件有依赖关系,因此要顺利建立内核,内核源码目录中的每个Makefile就必须知道这些依赖关系。建立依赖关系往往发生在第一次编译内核的时候,它会在内核源码目录中每个子目录产生一个“.depend”文件。操作很简单,只需运行“makedep”即可:

makedep

2、建立内核映像文件建立内核映像可以使用“makezImage”或“makebzImage”

5.5

文件系统的制作

文件系统是嵌入式Linux系统必备的一个组成部分,是系统文件和应用文件存储的地方。

1、文件目录2、文件目录应该包含的文件和子目录。文件系统要求建立的目录有/bin,/sbin,/etc,/dev,/lib,/mnt,/proc,/usr。3、制作文件系统的镜像文件使用mkcramfs工具了,命令格式为:mkcramfs系统文件目录名生成的镜像文件名5.6嵌入式系统开发板的烧写方法5.6.1

Bootloader1、基本概念嵌入式Linux系统分为4个层次:引导加载程序Bootloader、Linux内核、文件系统和用户应用程序。Bootloader就是在操作系统内核运行之前运行的一段程序,它类似于PC机中的BIOS程序。通过这段程序,可以完成硬件设备的初始化,并建立内存空间的映射图的功能,从而将系统的软硬件环境带到一个合适的状态,为最终调用系统内核做好准备。2、Bootloader启动流程

Bootloader的启动流程一般分为两个阶段:stage1和stage2。(1)Bootloader的stage1在stage1中Bootloader主要完成以下工作

温馨提示

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

评论

0/150

提交评论