版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章构建嵌入式交叉开发环境4.1交叉开发环境介绍
4.1.1交叉开发概念模型TARGET就是目标板,HOST是开发主机。在开发主机上,可以安装开发工具,编辑、编译目标板的Linux引导程序、内核和文件系统,然后在目标板上运行。通常这种在主机环境下开发,在目标板上运行的开发模式叫作交叉开发。4.1.2目标板与主机之间的连接
目标板和主机之间通常可以使用串口、以太网接口、USB接口以及JTAG接口等连接方式。〔1〕串行通讯接口〔2〕以太网接口〔3〕USB接口〔4〕JTAG等接口4.1.3文件传输
〔1〕串口传输方式主机端通过kermit、minicom或者windows超级终端等工具都可以通过串口发送文件。〔2〕网络传输方式网络传输方式一般采用TFTP〔TrivialFileTransportProtocol〕协议。〔3〕USB接口传输方式通常分主从设备端,主机端为主设备端,目标板端为从设备端。〔4〕JTAG接口传输方式JTAG仿真器跟主机之间的连接通常是串口、并口、以太网接口或者USB接口。〔5〕移动存储设备如果目标板上有软盘、CDROM、USB盘等移动存储介质,就可以制作启动盘或者复制到目标板上,从而引导启动。4.1.4网络文件系统
NFS文件系统的优点如下:〔1〕本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一台机器上而且可以通过网络访问到。〔2〕用户可以通过网络访问共享目录,而不必在计算机上为每个用户都创立工作目录。〔3〕软驱、CDROM等存储设备可以在网络上面共享使用。这可以减少整个网络上的移动介质设备的数量。〔4〕NFS至少有一台效劳器和一台〔或者更多〕客户机两个主要局部。客户机远程访问存放在效劳器上的数据。需要配置启动NFS等相关效劳。4.2安装交叉编译工具
基于上述硬件环境配置的需求,接下来一步步构建这个交叉开发环境。首先要安装交叉编译工具链。4.2.1获取交叉开发工具链
几个ARMLinux的免费站点:〔1〕://〔2〕://〔3〕://〔4〕://4.2.2主机安装工具链
对于RPM格式的工具链,可以通过rpm命令把软件包安装到主机上。对于tar包,可以使用tar命令解压。以ARMLinux站点提供的包为例说明。解压后,查看GCC版本号,可以得到一些信息,如:$tar–jxvf$./3.3.2/bin/arm-linux-gcc–v出现如下信息:…..–prefix=/usr/local/arm/3.3.2i686-pc-linux-gnu…….说明GCC的安装路径,是在GCC编译前通过prefix选项配置的。因此该工具链的安装路径为:/usr/local/arm/3.3.24.3主机开发环境配置
4.3.1主机环境配置主机端安装Linux操作系统〔只要磁盘有足够空间,最好是完全安装〕。接下来就是主机Linux环境配置。然后把交叉开发工具链的路径添加到环境变量PATH中,这样可以方便地在Bash或者Makefile中使用这些工具。通常可以在环境变量的配置文件有3个:①/etc/profile是系统启动过程执行的一个脚本,对所有用户都生效。②~/.bash_profile是用户的脚本,在用户登录时生效。③~/.bashrc也是用户的脚本,在~/.bash_profile中调用生效。把环境变量配置的命令添加到其中一个文件中即可。4.3.2串口控制台工具串行通讯接口很适合作为控制台,在各种操作系统上一般都有现成的控制台程序可以使用。Windows操作系统有超级终端〔Hyperterminal〕串口通讯工具;Linux/UNIX操作系统有minicom等串口通讯工具。minicom的配置界面是菜单方式。在Shell下执行“minicom–s〞命令,出现配置菜单。图形见P774.3.3DHCP效劳
目标板的Bootloader或者内核都需要分配IP地址。这可以通过动态主机配置协议〔DHCPDynamicHostConfigurationProtocol〕或者BOOTP协议实现。BOOTP协议可以给计算机分配IP地址并且通过网络获取映像文件的路径;DHCP那么是向后兼容BOOTP的协议拓展。Linux操作系统的主机一般包含dhcpd的软件包,可以配置DHCP效劳。配置效劳的操作需要root用户的权限。配置文件为/etc/dhcpd.conf4.3.4TFTP效劳TFTP协议是简单的文件传输协议,所以实现简单,使用方便,正好适合目标板Bootloader使用。但是文件传输是基于UDP的,文件传输〔特别是大文件〕是不可靠的。TFTP效劳在Linux系统上有客户端和效劳器2个软件包。配置TFTP效劳,必须先安装好。TFTP效劳也可以通过图形化的配置窗口来启动。操作过程需要root权限。缺省的情况下,把/tftpboot目录作为输出文件的根目录。还可以手工修改TFTP配置文件,定制TFTP效劳。配置文件为/etc/xintd.d/tftp,修改好后需要执行:$/etc/init.d/xinetdrestart使xinetd重新启动TFTP效劳。4.3.5NFS效劳
NFS效劳的主要任务是把本地的一个目录通过网络输出,其他计算机可以远程地挂接这个目录并且访问文件。NFS效劳有自己的协议和端口号,但是在文件传输或者其他相关信息传递的时候,NFS那么使用远程过程调用〔RPC,RemoteProcedureCall〕协议。NFS效劳通过一系列的工具来配置文件输出,配置文件为:/etc/exports修改好后需要执行:$/etc/rc.d/init.d/portmapstart$/etc/rc.d/init.d/nfsstart来启动效劳。如果希望每次系统引导时都启动NFS效劳,可以用以下命令:$/sbin/chkconfignfson4.4启动目标板
4.4.1系统引导过程第一阶段是目标板硬件初始化,解压内核映像,再跳转到内核映像入口。第二阶段是内核的初始化,初始化设备驱动,挂接根文件系统。第三阶段是执行用户空间的init程序,完成系统初始化、启动相关效劳和管理用户登录等工作。4.4.2内核解压启动
目标板处理器上电或者复位后,首先执行引导程序〔Bootloader〕,初始化内存等硬件,然后把压缩的内核映像加载到内存中,最后跳转到内核映像入口执行。这样就把控制权完全交给内核映像了。接下来内核映像继续执行,完成自解压或者重定位,然后跳转到解压后的内核代码入口。这局部主要是Linux内核的自引导程序,又叫作Linuxbootloader,包含在内核源代码中。这局部引导代码相对简单,不可能替代目标板上的Bootloader。4.4.3挂接根文件系统
Linux内核要挂接NFS根文件系统,需要以下两个工作:〔1〕在主机端配置相应的网络效劳;〔2〕配置目标板的内核选项,支持nfs效劳。另外还必须具备以下条件:〔1〕以太网接口驱动正常〔2〕配置内核启动命令行参数〔3〕配置内核挂接NFS根文件系统4.5应用程序的远程交叉调试
4.5.1交叉调试的模型4.5.2交叉调试程序实例
1.交叉编译〔1〕在主机上编辑hello.c程序〔2〕交叉编译〔3〕把可执行程序复制到NFS输出的目录下面〔4〕这时在目标板端也可以访问到同样的程序,执行程序2.交叉调试〔1〕编译程序的时候,需要添加-g编译选项〔2〕在目标板上,启动gdbserver,控制程序执行〔3〕在主机端,启动DDD和gdb调试程序〔4〕在DDD下窗口的GDB控制台下,建立连接〔5〕设置断点,执行到断点
1、UP-NETARM2410-S嵌入式Linux开发平台简介:〔1〕硬件配置
4.6ARM9系统配置说明
〔2〕S3C2410芯片介绍S3C2410X芯片集成了大量的功能单元,包括:1、内部1.8V,存储器3.3V,外部IO3.3V,16KB数据CACHE,16KB指令CACHE,MMU。2、内置外部存储器控制器〔SDRAM控制和芯片选择逻辑〕。3、LCD控制器〔最高4K色STN和256K彩色TFT〕,一个LCD专用DMA。4、4个带外部请求线的DMA。5、三个通用异步串行端口〔IrDA1.0,16-ByteTxFIFO,and16-ByteRxFIFO〕,2通道SPI。
6、一个多主IIC总线,一个IIS总线控制器。7、SD主接口版本1.0和多媒体卡协议版本2.11兼容。8、2个USBHOST,一个USBDEVICE〔VER1.1〕。9、4个PWM定时器和一个内部定时器。10、看门狗定时器。11、117个通用IO。12、24个外部中断。13、电源控制模式:标准、慢速、休眠、掉电。14、8通道10位ADC和触摸屏接口。
15、带日历功能的实时时钟。16、芯片内置PLL。17、设计用于手持设备和通用嵌入式系统。18、16/32位RISC体系结构,使用ARM920TCPU核的强大指令集。19、ARM带MMU的先进的体系结构支持WINCE、EPOC32、LINUX。20、指令缓存〔cache〕、数据缓存、写缓冲和物理地址TAGRAM,减小了对主存储器带宽和性能的影响。21、ARM920TCPU核支持ARM调试的体系结构。22、内部先进的位控制器总线〔AMBA〕(AMBA2.0,AHB/APB)。
〔1〕嵌入式LINUX开发环境方案:①、基于PC机WINDOWS操作系统下的Cygwin;②、在WINDOWS下安装虚拟机Vmwareworkstation后,再在WINDOWS中安装LINXUX操作系统,指定链接即可。③、直接安装LINUX操作系统。2、建立嵌入式Linux开发环境
由于Redhat9.0安装后占用空间约为2.4G-5G之间,还要安装ARMLINUX开发软件〔大约800M左右〕,因此对开发计算机的硬盘空间要求较大。硬件要求:CPU:高于奔腾500M,推荐高于1.7G。内存:大于128M,推荐256M以上。硬盘:大于10G,推荐高于40G。〔2〕对开发PC机的性能要求
〔1〕配置网络,包括配置IP地址、NFS效劳、防火墙。网络配置主要是要安装好以太网卡,对于一般常见的RTL8139网卡,REDHAT9.0可以自动识别并自动安装好,完全不要用户参与,因此建议使用该网卡。然后配置宿主机IP为192.168.0.*。如果是在有多台计算机使用的局域网环境使用此开发设备,IP地址可以根据具体情况设置。如下图:3、配置嵌入式Linux开发环境
对于REDHAT9.0,它默认的是翻开了防火墙,因此对于外来的IP访问它全部拒绝,这样其它网络设备根本无法访问它,即无法用NFSmount它,许多网络功能都将无法使用。因此网络安装完毕后,应立即关闭防火墙。操作如下:点击红帽子开始菜单,选择平安级别设置,选中无防火墙。如下图:
在“系统设置〞菜单中选择效劳器设置菜单,再选中效劳菜单,将iptables效劳的勾去掉,并确保nfs选项选中。配置NFS:点击主菜单运行系统设置->效劳器设置->NFS效劳器〔英文为SETUP->SYSTEMSERVICE->NFS〕,点击“增加〞出现如下界面,在目录(Drictory)中填入需要共享的路径,在主机(Hosts)中填入允许进行连接的主机IP地址。并选择允许客户对共享目录的操作为只读〔Read-only〕或读写(Read/write)。如下图:
以下图是一些常规选项设置,可以保存默认值。
以下图是对客户端存取效劳器的一些其他设置,一般不需要设置,取默认值:
当将远程根用户当作本地根用户时,对于操作比较方便,但是平安性较差。最后退出时那么完成NFS配置。配置好后,界面应显示如以下图所示:
配置完成后,可用如下方法简单测试一下NFS是否配置好了:在宿主机上自己mount自己,看是否成功就可以判断NFS是否配好了。例如在宿主机/目录下执行:mount0:/arm2410/mnt其中0为主机的IP地址。然后到/mnt/目录下看是否可以列出/arm2410目录下的所有文件和目录,可以那么说明mount成功,NFS配置成功。
〔2〕配置串口控制台MINICOM:1、在linux操作系统Xwindow界面下建立终端〔在桌面上点击右键——>新建终端〕,在终端的命令行提示符后输入minicom,回车,就会看到minicom的启动画面〔见图〕。假设没有启动Xwindow,那么在命令行提示符#后直接输入minicom即可。
2、minicom启动后,先按Ctrl+A键,再按Z键〔注意Ctrl+A松开后再按Z〕,进入主配置界面〔见图〕
按“O〞进入配置界面,如图配置界面
按上下键选择Serialportsetup,进入端口设置界面,这里有几个重要选项改为如下值〔见图〕:〔在Changewhichsetting后按哪个字母就进入哪项的配置,如按A进行端口号配置。〕A—SerialDevice:/dev/ttyS0〔端口号使用串口1〕E-BPS/par/bits:/1152008N1〔波特率〕F,E硬件流,软件流都改为NO,假设要使用PC机的串口2来接板子的串口1做监控,改为/dev/ttyS1即可。
3、选好后按ESC键退出到以下图所示画面,选择Savesetupasdf1保存退出,以后只要启动minicom就是该配置,无需再做改动。4、配置完成后,用串口线连接好pc机和2410-S,启动2410-S,即可在minicom上看到启动信息,并可以执行操作控制。
〔3〕、开发工具软件的安装
将开发工具光盘插入CDROM,然后执行以下命令[root@localhostroot]#mount/dev/cdrom/mnt假设系统不识别/dev/cdrom的话,可以用如下命令,假设CDROM为从盘,即为/dev/hdb,那么:[root@localhostroot]#mount–tiso9660/dev/hdb/mnt[root@localhostroot]#cd/mnt
如果CDROM已经在安装RedHat的时候已经默认安装,以上命令请不要执行,请直接进入CDROM所在目录〔一般为/mnt/cdrom〕:#cd/mnt/cdrom#./install.sh(运行安装脚本)安装脚本程序将自动建立/arm2410目录,并将所有开发软件包安装到/arm2410目录下,同时自动配置编译环境,建立适宜的符号连接。
安装完成后看一下主编译器Armv4l-unknown-linux-gcc是否在/opt/host/armv4l/bin/,如果不是这个路径,使用vi修改/root/.bash_profile
文件中PATH变量为
PATH=$PATH:$HOME/bin:/opt/host/armv4l/bin/
存盘后执行:source/root/.bash_profile
以后armv4l-unknown-linux-gcc会自动搜索到,可以在终端上输入armv,然后按tab键,会自动显示armv4l-unknown-linux-
〔4〕、Linux开发软件的安装目录结构下面表格均以/arm2410目录为起点:
编译器安装路径说明如表所示:上述诸多程序的源代码都在光盘中提供。在安装完成LINUX后,就是对LINUX的网络环境配置,最主要是配置NFS效劳器。
4、linux系统及应用程序的烧写根据烧写方式不同,分为使用JTAG烧写和使用串口下载。JTAG烧写,适用于flash空白或者vivi损坏无法引导的情况下,通过并口线和JTAG简易仿真器,用sjf2410-s.exe将vivi烧录到flash中作为引导启动程序。串口下载,这也是最常用的烧写方式,即在核心模块上已烧录有vivi的前提下,进入vivi,通过在SDRAM里运行的vivi格式化flash,烧写vivi、内核和根文件系统,最后还需要把应用程序压缩文件yaffs.tar.bz2解压缩到实验平台的/mnt/yaffs下。
在下文中简称UP-NETARM2410-S为2410-S。所需镜像文件等均在光盘\img目录中提供,
vivi----操作系统启动的bootloader;zImage----Linux操作系统内核;
root.cramfs----根文件系统;
应用程序压缩包。
〔1〕、超级终端设置①、运行Windows系统下开始→所有程序→附件→通讯→超级终〔HyperTerminal〕,新建一个通信终端。如果要求输入区号、号码等信息请随意输入,出现如下图对话框时,为所建超级终端取名为arm,可以为其选一个图标。单击“确定〞按钮。
②、在接下来的对话框中选择ARM开发平台实际连接的PC机串口〔如COM1〕,按确定后出现如下图的属性对话框,设置通信的格式和协议。这里波特率为115200,数据位8,无奇偶校验,停止位1,无数据流控制。按“确定〞完成设置。
③、完成新建超级终端的设置以后,可以选择超级终端文件菜单中的“另存为〞,把设置好的超级终端保存在桌面上,以备后用。用串口线将PC机串口和平台UART0正确连接后,就可以在超级终端上看到程序输出的信息了。
〔2〕、串口下载烧写在Windowsxp平台下通过超级终端烧vivi(bootloader)、内核〔Kernel〕、根文件系统〔root〕的步骤如下:1.复位2410-S开发板,按住pc机键盘的“BackSpace〞键,进入vivi>命令模式,格式化flash并重新分区;2.运行loadflash{vivi|kernel|root}x,此命令用于使用xmodem协议通过串口下载文件到开发板中,其中参数为vivi|kernel|root之一;3.启用FTP效劳,上传应用程序压缩包并解压缩;4.重新启动验证烧录是否成功。
1、格式化flash翻开超级终端,先按住PC机键盘的BackSpace键,然后启动2410-S,进入vivi,按照以下命令格式化flash,重新分区,如图。
2、烧写vivi这时已格式化flash,运行的是SDRAM中的vivi。(注意如果这时重启或断电会丧失所有数据,否那么必须用Jtag重新烧写vivi)。vivi>loadflashvivix回车此时终端提示:Readyfordownloadingusingxmodem...Waiting...
点击超级终端任务栏上“传送〞下拉菜单中的“发送文件〞,选择协议为Xmodem,选择镜像文件vivi,点击“发送〞,如图,10秒左右vivi就烧写到flash里了。这时要复位2410-S,重新进入vivi>来烧写kernel、root。
3、烧写内核映象zImagevivi>loadflashkernelx回车出现提示:Readyfordownloadingusingxmodem...Waiting...
点击超级终端任务栏上“传送〞下拉菜单中的“发送文件〞,选择镜像文件zImage,协议为Xmodem,点击“发送〞,如图,4分钟左右zImage传输完毕,zImage先传输到SDRAM中,再把数据从SDRAM复制到flash里,请等待这一过程结束到出现vivi>再烧写root,否那么会导致烧写kernel失败。
4、烧写根文件系统〔root)vivi>loadflashrootx回车Readyfordownloadingusingxmodem...Waiting...点击超级终端任务栏上“传送〞下拉菜单中的“发送文件〞,选择镜像文件root.cramfs,协议为Xmodem,点击“发送〞,如图,8分钟左右root.cramfs烧写完毕;
5、烧写应用程序
用2410-S实验箱配套网线连接好2410-S的NIC-1网口和PC机的网口,重启2410-S进入linux操作系统的[/mnt/yaffs]下,注意配置IP在同一网段,执行以下指令:[/mnt/yaffs]ifconfig--查看IP[/mnt/yaffs]ifconfigeth011--配置eth0IP[/mnt/yaffs]inetd--启动ftp
翻开ftp〔FileTransferProtocol〕软件FlashFXP〔在光盘中/img/flashvivi目录中提供〕,点击界面中上部黄色闪电符号,建立快速连接,输入:地址,用户名:root,密码:无。连接进入ftp效劳,上传“yaffs.tar.bz2〞到2410-S的/var文件夹下,3分钟左右上传完毕。这时不能重启2410-S,否那么上传过程无效。
接下来在超级终端中输入:[/mnt/yaffs]cd..--转换到/mnt下[/mnt]rm-rf/yaffs/*--删除/yaffs下文件[/mnt]cd/var--转到var目录下[/var]tarxjvfyaffs.tar.bz2–C/mnt/yaffs-解压yaffs.tar.bz2到mnt/yaffs目录
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 体育器材使用管理手册
- 酶制剂充填封装工岗前诚信品质考核试卷含答案
- 2025-2026学年陕西省西安七十一中等校八年级(下)期中生物试卷(含答案)
- 液晶显示器件模组制造工岗位适应能力水平考核试卷含答案
- 油品储运调合工成果转化强化考核试卷含答案
- 生漆加工工安全宣传能力考核试卷含答案
- 甲烷合成气净化工岗位流程优化考核试卷含答案
- 陶瓷成型施釉工岗前新技术考核试卷含答案
- 公墓管理员岗位知识能力考核试卷含答案
- 酒店业务协调经理服务质量优化绩效评定表
- 人教PEP四年级英语上册阅读理解专项30篇(含答案)
- 2026临汾市侯马市招聘乡(街道)消防协管员考试备考试题及答案详解
- 华为ICT大赛2026-2027中国区(实践赛)-网络赛道理论考试题库大全(附答案)
- 江西省人才发展集团有限公司2026年春季集中招聘专题【11人】建设笔试备考题库及答案解析
- 深度解析(2026)《DLT 2655-2023发电企业安全生产标准化实施指南》
- 2026年高考上海卷英语含解析及答案(新课标卷)
- 广东省2026年普通高中学业水平合格性考试数学试题(含答案)
- 八上数学竞赛试题及答案
- NCL新华保险宣传案课件
- 社会不平等与包容性
- 钢管脚手架用量计算表 形式2
评论
0/150
提交评论