广嵌嵌入式Linux开发环境搭建.ppt_第1页
广嵌嵌入式Linux开发环境搭建.ppt_第2页
广嵌嵌入式Linux开发环境搭建.ppt_第3页
广嵌嵌入式Linux开发环境搭建.ppt_第4页
广嵌嵌入式Linux开发环境搭建.ppt_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

嵌入式Linux开发环境搭建,,,嵌入式系统定义回顾,嵌入到对象体中的专用计算机系统三要素:嵌入、专用、计算机嵌入式系统的特点:由三要素引出嵌入性:嵌入到对象体系中,有对象环境要求专用性:软、硬件按对象要求裁减计算机:实现对象的智能化功能,,嵌入式系统的应用,,GEC2440开发板,,GEC2440开发板硬件构成,采用三星公司的S3C2440A-40,系统可稳定运行在405MHZ,主频最高可达530多MHz;64M字节的SDRAM,由两片K4S561632组成,工作在32位模式下;64M字节NANDFlash,采用的是K9F1208,可以兼容16M,32M或128M字节;10M以太网接口,采用的是CS8900Q3,带传输和连接指示灯;LCD和触摸屏接口;2个USBHOST,S3C2440内置的,符合USB1.1,其中一个USBHOST接口是复用的;一个USBDevice,S3C2440内置的,符合USB1.1;支持音频输入和音频输出,音频模块由S3C2440的IIS音频总线接口和UDA1341音频编码解码器组成,板上还集成了一个MIC,用于音频输入;2路UART串行口,波特率可高达115200bps,并具有RS232电平转换电路,其中一路为完整串口;SD卡接口,兼容SDMemoryCardProtocol1.0和SDIOCardProtocol1.0;Embedded-ICE(20脚标准JTAG)接口和并口式JTAG接口,支持ADS,SDT软件的下载和调试以及FLASH的烧写;串行EEPROM:AT24C024KbytesEEPROM,IIC接口;SPI接口;数字摄像头接口;蜂鸣器,4个LED灯;4个按键;开关电源,分布式电源供电;3V锂电池,提供RTC电源;,,GEC2440开发板使用,启动LINUX接上电源,接上交叉串口线,连上交叉网线,设置好串口工具串口工具的参数:波特率115200,8位,无奇偶位,停止位1,无硬件流。开发板上电后,BootLoader等待一段时间,如果没有输入,将会自动启动这个linux系统。这时将在串口和LCD屏(选配模块)有信息显示在串口,将进入Linux的命令模式下,在LCD屏上,将有QT界面的显示,首次进入QT,需要先进行触摸屏的校准。,,嵌入式Linux开发环境,嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台上编写软件比较困难,有时候甚至是不可能的。解决办法:首先在通用计算机上编写程序;然后通过本地编译或者交叉编译生成目标平台上可以运行的二进制代码格式;最后再下载到目标平台上的特定位置上运行。,,嵌入式Linux开发环境,关于交叉编译在一种平台上编译出能在另一种平台(体系结构不同)上运行的程序。在PC平台(X86CPU)上编译出能运行在arm平台上的程序,编译得到的程序在X86CPU平台上是不能运行的,必须放到arm平台上才能运行。用来编译这种程序的编译器就叫交叉编译器。为了不跟本地编译器混淆,交叉编译器的名字一般都有前缀。例如:arm-linux-gcc,,嵌入式Linux开发环境,需要交叉开发环境(CrossDevelopmentEnv)的支持是嵌入式应用软件开发时的一个显著特点。交叉编译器只是交叉开发环境的一部分。交叉开发环境是指编译、链接和调试嵌入式应用软件的环境,它与运行嵌入式应用软件的环境有所不同,通常采用宿主机目标机模式。,,嵌入式Linux开发环境,宿主机目标板模式宿主机(Host)是一台通用计算机,它通过串口或者以太网接口与目标机通信。宿主机的软硬件资源比较丰富,能够大大提高嵌入式应用软件的开发速度和效率。目标板(Target),应用程序实际运行的平台,或者是能够替代实际运行环境的仿真系统。软硬件资源通常都比较有限。,,嵌入式Linux开发环境,宿主机目标机模式首先利用宿主机上丰富的资源和良好的开发环境开发和仿真调试目标机上的软件;然后通过串口或者以网络将交叉编译生成的目标代码传输并装载到目标机上,并在监控程序或者操作系统的支持下利用交叉调试器进行分析和调试;最后目标机在特定环境下脱离宿主机单独运行。,,嵌入式Linux开发环境,GNU交叉工具链toolchainGNU是自由软件基金会的一个项目。Linux的开发使用了众多的GUN工具基于GPL协议的开发工具交叉编译器,例如arm-linux-gcc交叉汇编器,例如arm-linux-as交叉链接器,例如arm-linux-ld用于处理可执行程序和库的一些基本工具。例如arm-linux-strip去除elf文件中的多余符号信息,,嵌入式Linux开发环境,cross-3.4.4.tar.bz2包的安装:mkdir/usr/local/armcpcross-3.4.4.tar.bz2/usr/local/armtarjxvfcross-3.4.4.tar.bz2-C/usr/local/arm添加环境变量在文件/etc/bashrc文件最后添加:exportPATH=/usr/local/arm/3.4.4/bin:$PATH使得配置立刻生效,需要使用source命令重新读取配置文件。工具链安装完成。,,嵌入式Linux开发环境,GNU交叉工具链的常用工具介绍,,远程访问目标板,如何观察应用程序在目标板的运行情况,即查看程序的输出信息?通过串口线连接宿主机和目标板。配置串口做为目标板的输出设备。例如在交叉编译目标板的linux内核时,配置指定终端为串口:noinitrdroot=/dev/mtdblock2init=/linuxrcconsole=ttySAC0,1152002.4的内核为console=ttyS0在宿主机上通过串口通信软件查看目标板系统的运行情况。,,远程访问目标板,minicom的使用minicom的设置:minicom-s,,远程访问目标板,,远程访问目标板,minicom的使用选择串口选择菜单中的“Serialportsetup”,按回车,进入如下图所示界面。按“A”以设置“SerialDevice”(串口1-/dev/ttyS0,串口2-/dev/ttyS1),,远程访问目标板,,远程访问目标板,minicom的使用设置波特率按“E”键进入设置“bps/par/Bits”(波特率)界面。再按“I”以设置波特率为115200。“Q”数据位8,奇偶检验位无,停止位1,,远程访问目标板,,远程访问目标板,minicom的使用设置无流控制(无硬件、无软件)按回车退回到上一级菜单,按“F”键设置“HardwareFlowControl”为“NO”,其他选项使用缺省值。,,远程访问目标板,,远程访问目标板,minicom的使用保存设置再选择“Exit”退出设置模式。刚才的设置被保存到“/etc/minirc.dfl”。设置完毕打开目标板电源的电源开关,minicom输出目标板的启动信息,当Linux启动以后,minicom就相当于虚拟终端,可通过它来操作目标板。,,远程访问目标板,minicom的使用退出minicom同时按下“Ctrl+A”键,紧接着再按下“Q”键,在跳出的窗口中,选择“Yes”。,,远程访问目标板,,下载程序映象到目标板,通过串口下载使用三星公司的DNW软件。设置波特率115200、端口号、下载地址0 x30200000上电启动开发板,进入BIOS界面选择2串口下载点击“serialport”菜单,选择“Transmit”选项,,下载程序映象到目标板,通过usb下载同样使用三星公司的DNW软件。设置波特率115200、端口号、下载地址0 x30200000上电启动开发板,进入BIOS界面接上USBDEVICE的连接线,选择“0”,选择USB下载,注意用USB下载要先在PC端装好驱动程序,保证USB连接好。有时PC端出现发现无法识别的USB设时,可在BIOS中输入ESC取消下载,等几秒钟再输入“0”启动USB下载。出现“NowUSBisconnected”说明USB正确枚举。点击“USBPort”Transmit”选项。,,下载程序映象到目标板,通过挂载NFS方式下载NFS服务就是将宿主机的一个目录通过网络可以被挂载到其他计算机上,并且作为其他计算机的一个目录。在嵌入式开发中,通过NFS可以很方便的将修改的文件通过NFS传输到目标板上。不用反复烧写镜像文件。通过ifconfig命令修改IPIfcofigeth0XXX.XXX.XXX.XXXnetmaskXXX.XXX.XXX.XXX,,下载程序映象到目标板,通过挂载NFS方式下载NFS的使用分服务器端和客户端服务器端提供要共享的文件,客户端通过挂载“mount”实现对共享文件的访问操作。mount:/home/nfs/tmp/testNFS服务器端通过读取配置文件/etc/exports决定所共享的文件目录。在超级终端或者minicom下通过NFS挂载宿主机目录mountonolock:/home/nfs/tmp/test卸载NFS文件系统umount/tmp/test,,下载程序映象到目标板,通过挂载NFS方式下载重启NFS服务:servicenfsrestart通过showmount命令来查看开放的目录。showmountelocalhost进行网络设置,将eth0的网络地址指定为,掩码,网关不需要。设置完之后要重启网络。Serviecnetworkrestart关闭防火墙,选择系统设置安全级别,将安全级别改为“无防火墙”。去掉iptables服务:选择系统设置服务器设置服务,在弹出的界面上将optables前的“”去掉。将主机上的目录挂载到另一个目录下,测试NFS是否设置成功。,,下载程序映象到目标板,通过挂载NFS方式下载配置共享文件的语法:每一行由输出路径,客户名列表以及每个客户名后紧跟的访问选项构成:共享的目录主机名或IP(参数,参数)共享的目录IP1(参数1,参数2)IP2(参数3,参数4)#vi/etc/exports在里面输入/home/nfs192.168.1.*(rw,sync,no_root_squash),保存退出;/home/nfs:是宿主机上共享的文件夹;例如是/usr/local/filesystem/rootfs192.168.1.*:是所支持的目标版(客户端)的IP地址;为了方便我用的表示该网段的任何地址都可以访问,可以用本机测试rw:开发板(客户端)可以读写访问共享的文件夹;sync:所有数据在请求时写入共享;no_root_squash:root用户具有根目录的完全管理访问权限意思是:允许IP为192.168.1.*的ARM9开发系统将宿主机上的/home/nfs这个目录mount到开发系统下,,下载程序映象到目标板,mount文件系统挂载命令Linux系统在使用光盘、软盘或U盘时,必须先执行挂载(mount)命令。挂载命令会将这些存储介质指定成系统中的某个目录,以后直接访问相应目录即可读写存储介质上的数据。可以挂载Linux分区、Windows分区、U盘、光盘、映像文件、网络文件系统、绑定umount卸载文件系统umountfilesystemumountmountpoint,,下载程序映象到目标板,ifconfig网络接口设置命令查看网卡的IP设置ifconfig启用某网卡ifconfignetifup禁用用某网卡ifconfignetifdown设置网卡IP地址ifconfignetifaddressroute路由配置命令可用于设置网关routeadddefaultgwgatewayaddressroutedeldefaultgwgatewayaddress/etc/resolve.conf此文件用于配置DNSnameserverxxx.xxx.xxx.xxx,,交叉调试器,嵌入式软件开发过程中的交叉调试与本地软件开发过程中的调试方式有所差别。本地软件开发调试器与被调试的程序往往运行在同一台计算机上。调试器是一个单独运行着的进程,它通过操作系统提供的调试接口来控制被调试的进程。嵌入式软件开发调试时采用的是在宿主机和目标机之间进行的交叉调试。调试器运行在宿主机,但被调试的进程却是运行在目标板。调试器和被调试进程通过串口或者网络进行通信,调试器可以控制、访问被调试进程,读取被调试进程的当前状态,并能够改变被调试进程的运行状态。,,交叉调试器,交叉调试器的结构,,交叉调试器,Gdb调试器是一款GNU开发组织并发布的UNIX/Linux下的程序调试工具。Gdb让您能够看到一个程序的内部结构,指出变量的值,设置断点并在源码中进行单步执行。要使用gdb进行调试,一定要在编译时加上调试选项“-g”。#gcc-gtest.c-otest#gdbtest,,交叉调试器,制作交叉调试器解压源码包tarjxfgdb-6.5.tar.bz2配置cdgdb-6.5./configure-target=arm-linux-prefix=/usr/local/arm/3.4.4/,,交叉调试器,制作交叉调试器编译make安装makeinstall在/usr/local/arm/3.4.4/bin/目录下生成arm-linux-gdb工具。,,交叉调试器,制作交叉调试器编译生成针对arm处理器的gdbserv

温馨提示

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

评论

0/150

提交评论