第2章嵌入式系统开发环境_第1页
第2章嵌入式系统开发环境_第2页
第2章嵌入式系统开发环境_第3页
第2章嵌入式系统开发环境_第4页
第2章嵌入式系统开发环境_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

第2章嵌入式系统开发环境了解交叉编译的根本知识了解SkyEye的起源和开展、目标和意义掌握SkyEye的配置文件skyeye.conf掌握交叉编译环境的创立掌握QEMU、GDB的安装及简单使用掌握SkyEye的安装及简单使用掌握TFTP、NFS效劳器的搭建本章学习目标2.1嵌入式系统开发环境简介交叉编译环境交叉开发环境是由开发主机和目标板两套计算机系统构成的。文本编译器交叉编译器仿真器远程调试器链接器目标对象查看器shell下载器交叉编译环境组成2.2OK2440-II开发平台介绍OK2440II开发套件包含:1〕一块已测试好的OK2440II开发板〔包括OK2440II核心板与OK2440II底板〕2〕OK2440II用户光盘3〕3.5"TFTSumsangLCD一块,带触摸屏4〕一个JTAG板〔带20芯排线〕5〕一条串口线〔一头针一头孔,串口线〕6〕一条网线〔交叉网线〕7〕一条USB线8〕一支触摸笔9〕一个5V直流电源适配器10〕一个包装盒使用步骤:外部硬件连接;Windows下驱动的安装;1〕安装USB驱动2〕安装并口驱动程序3〕调试终端的使用4〕BootLoader的使用DNW软件是三星公司为S3C2440芯片配置的一款专用软件,可以在Windows下通过USB烧写Flash。在PC机上翻开DNW〔v0.50A〕,依次选择“Configuration〞→“Options〞,如下图,具体设置为:COM1、波特率为115200、DownloadAddress设置为0x32000000〔此参数为下载到内存的地址。DNW调试终端的使用DNW调试终端的使用Windows超级终端的使用Windows超级终端的使用Windows超级终端的使用本地编译器2.3交叉编译的根本知识编译器可以生成用来在与编译器本身所在的计算机和操作系统〔平台〕相同的环境下运行的目标代码,这种编译器叫做本地编译器。交叉编译器编译器也可以生成用来在其他平台上运行的目标代码,这种编译器叫做交叉编译器SoftwareDevelopmentKit,是ARM公司为方便用户在ARM芯片上进行应用软件开发而推出的一整套集成开发工具。

最新版本是,被ARMADS取代。2.3.1ARM编译环境1.SDTARMADS〔ARMDeveloperSuite〕在1993年由Metrowerks公司开发,是ARM处理器最主要的开发工具。2.ADSMDK-ARM也称KEILMDK-ARM、KEILARM、RealviewMDK、I-MDK、uVision4等,系为同一产品。MDK-ARM有四个可用版本,分别是MDK-Lite、MDK-Basic、MDK-Standard、MDK-Professional。3.MARK-ARM主要采用ARM+Linux开发环境。4.arm-linux-toolchainGNU提供的编译工具包括汇编器as、C编译器gcc、C++编译器g++、链接器ld和二进制转换工具objcopy。交叉编译工具链是一个由编译器、连接器和解释器组成的综合开发环境,主要由binutils、gcc和glibc3个局部组成。基于ARM平台的交叉编译工具链主要有:arm-linux-*和arm-elf-*。2.3.2ARM交叉编译工具链使用不同的C库文件。

前者使用GNU的Glibc,

后者使用uClibc/uC-libc。针对的开发环境不一样。前者针对ARM+Linux的开发环境的,OS使用Linux,不是uclinux,ARM有硬件MMU。后者针对noMMUARM+Linux的开发环境,OS使用uclinux,硬件是廉价的无MMU的ARM芯片。arm-linux-*和arm-elf-*区别1.编写C语言或汇编语言源程序这里介绍用vi编辑器进行源码编码。在终端中输入vihello.c,然后按键“i〞那么可进行代码编写。2.3.3嵌入式软件开发流程退出源码编写。按“ESC〞;输入“:wq〞,退出并保存源码,如果不保存,就直接输入“:q〞那么可。2.生成目标文件在终端中输入#arm-linux-gcc-c-O2-ohello.ohello.c源文件源文件和目标文件3.编写连接脚本文件gcc等编译器内置有缺省的链接脚本。为了能在嵌入式系统上直接运行,需要编写自己的链接脚本文件。GNU编译器生成的目标文件缺省为ELF格式。4.用链接器生成最终的目标文件在终端输入arm-linux-ld-nostadlib-obootstrap.elf-Tlink.ldshello.o最后是需要链接的目标文件列表。表示不链接系统的运行库,而是直接从_start入口指明目标文件的名称指明采用的链接脚本文件5.生成二进制代码在终端输入arm-linux-objcopy-Obinarybootstrap.elfbootstrap.bin链接生成的ELF文件还不能直接下载执行,通过objcopy工具可生成最终的二进制文件指定生成为二进制格式文件6.反汇编目标代码在终端输入arm-linux-objdump-Dbootstrap.elf用objdump工具将生成的目标代码反汇编,建立交叉编译工具链有两种方法:自己编译生成交叉编译工具链;从网上下载或使用开发板光盘提供的的交叉编译工具链。2.4实例——创立交叉编译环境1.从网上下载或者光盘提供的交叉编译工具链〔1〕从网上下载arm-linux-gcc或arm-linux-tools压缩包〔2〕解压到/usr/local/arm/中#mkdir/usr/local/arm#tar-xjvfarm-linux-gcc-2.95.3.tar.bz2-C/usr/local/arm/〔3〕解压到/usr/local/arm/中#tar-xjvfarm-linux-gcc-3.4.1.tar.bz2-C/注:版本的交叉编译器用于编译Linux2.4内核。及其以后版本的交叉编译器用于编译Linux2.6内核。〔4〕解压〔版本〕#tar-xzvfarm-linux-tools-20070808.tar.gz-C/#arm-linux-<Tab键>#whicharm-linux-gcc#ll/usr/local/bin/arm-linux-*〔5〕安装arm-elf-tools-20040427.sh工具包#lessarm-elf-tools-20040427.sh#chmod+xarm-elf-tools-20040427.sh#./arm-elf-tools-20040427.sh#ll/usr/local/bin/arm-elf-*#whicharm-elf-gcc2.自己生成交叉编译器〔1〕下载源文件、补丁和建立编译目录〔2〕建立内核头文件〔3〕建立二进制工具〔binutils〕〔4〕建立初始编译器〔bootstrapgcc〕〔5〕建立C库〔glibc〕〔6〕建立全套编译器〔fullgcc〕

QEMU是一套由FabriceBellard编写的以GPL许可证分发源码的模拟处理器,在GNU/Linux平台上使用广泛。QEMU有两种主要运作模式:①Usermode是使用者模式。②Systemmode是系统模式。2.5实例——QEMU\GDB的安装及简单使用2.6SkyEye的安装及简单使用

2.6.1SkyEye简介1.SkyEye的起源和开展2002年11月,清华大学计算机系的博士后陈渝提出2002年12月,SkyEye工程正式建立目前,SkyEye的主要开发人员还有韩超、康烁等。2.SkyEye的目标和意义目标:在通用的Linux和Windows平台上实现一个纯软件集成开发环境,模拟常见的嵌入式计算机系统;可在SkyEye上运行μCLinux以及μC/OS-II等多种嵌入式操作系统和各种系统软件,并可对他们进行源码级的分析和测试。2.SkyEye的目标和意义SkyEye是一个指令级模拟器,可以模拟多种嵌入式开发板;可支持多种CPU指令集;SkyEye的目标不是验证硬件逻辑,而是协助开发、调试和学习系统软件。2.SkyEye的目标和意义意义:可以很方便地进行嵌入式系统软件的学习和开发;可以有效地提高工作效率;SkyEye本身作为一个开放式的工程体系,可以划分为多个独立的子工程系统。3.SkyEye模拟硬件介绍〔1〕CPU和开发板系列——SkyEye可以模拟的CPU主要是基于ARM内核的CPU,包括ARM7TDMI、ARM720T、ARM9TDMI、ARM9xx、ARM10xx、StrongARM、XScale等。——SkyEye模拟的开发板包括:基于Atmel91X40/AT91RM92CPU的开发板、基于CrirusLogicep7312的开发板、基于StrongARMCPU的ADSBITSY开发板,基于XScalePXA250CPU的LUBBOCK开发板、基于SAMSUNGS3C4510B/S3C44B0CPU的开发板、基于SHARPLH7A400CPU的开发板、基于PhilipLPC22xxCPU的开发板等。〔2〕存储器管理单元和缓存单元——MMU、CACHE。〔3〕网络芯片——目前SkyEye模拟了网络芯片8019AS。1、安装SkyEye〔1〕解压源码包#tar-xjvfskyeye-1.2.6_rc1.tar.bz2-C./〔2〕编译#ls//INSTALL文件包含安装帮助信息#geditINSTALL2.6.2实例—安装//配置,--prefix设置的安装位置#make //编译//将skyeye安装到#makeinstall2、SkyEye配置选项查看SkyEye的配置文件skyeye.conf。SkyEye模拟的硬件配置和模拟执行行为由配置文件skyeye.conf中的选项确定。skyeye.conf文件:#skyeyeconfigfileforS3C2410X

cpu:arm920tmach:s3c2410x

#physicalmemorymem_bank:map=M,type=RW,addr=0xc0000000,size=0x00800000mem_bank:map=M,type=RW,addr=0xc0800000,size=0x00800000,file=./initrd.imgmem_bank:map=M,type=RW,addr=0xc1000000,size=0x01000000

#allperipheralsI/Omappingareamem_bank:map=I,type=RW,addr=0x48000000,size=0x20000000

mem_bank:map=I,type=RW,addr=0x19000300,size=0x00000020net:type=cs8900a,base=0x19000300,size=0x20,int=9,mac=0:4:3:2:1:f,ethmod=tuntap,hostip=

lcd:type=s3c2410x,mod=gtk#dbct:state=on单参数选项行多参数选项行SkyEye的配置文件skyeye.conf和要模拟的硬件有关,配置定义如下:〔1〕根本CPU核配置选项格式为:

cpu:cpuname表示CPU名字的字符串〔2〕具体的开发板〔包括CPU扩展〕配置选项格式为:mach:machinename〔3〕内存组配置选项一个内存组内的地址是连续的,类型分为:RAMSPACE、ROMSPACE、mappedIOSPACE。格式为:

mem_bank:map=M|I,type=RW|R,addr=0xXXXXXXXX,size=0xXXXXXXXX,file=imagefilename,boot=yes|nomap=M:表示RAM/ROMSPACE。map=I:表示mappedIOSPACE。type=RW且map=M:表示RAMSPACE。type=R且map=M:表示ROMSPACE。addr=0xXXXXXX:表示内存组的起始物理地址〔32bit,16进制〕。size=0xXXXXXX:表示内存组的大小〔32bit,16进制〕。file=imagefilename:imagefilename是一个字符串,实际上表示一个文件boot=yes/no:如果boot=yes,那么SkyEye会把模拟硬件启动后的第一条指令的地址定位到对应的内存组的起始地址。〔4〕网络芯片的配置格式为:

net:state=on/off,mac=xx:xx:xx:xx:xx:xx,state:表示模拟开始后,网络芯片是否开始工作。on模拟NIC,off那么不模拟。mac:表示模拟的NIC的mac地址,xx表示两位16进制数。ethmod:表示skyeye所处主机上的网络模拟方式。hostip:指定模拟的NIC的IP地址。〔5〕LCD的配置格式为:

lcd:state=on/off,type=s3c2410x,mod=gtk〔6〕SkyEye的UART控制选项格式为:uart:fd_in=indevname,fd_out=outdevname〔7〕SkyEye的log控制选项格式为:

log:logon=0|1|2|3,logfile=filename,start=number1,end=number2,length=number3logon=0|1|2|3:值等于0表示不进行记录,值等于1表示记录指令和指令地址流,等于2表示记录指令和指令地址和主要存放器内容,值等于3表示记录指令和指令地址和所有的存放器内容。SkyEye直接运行程序命令格式:

skyeye-e文件名例如:

skyeye-ehello2.SkyEye启动Linux例如:skyeye-cskyeye.conf-evmlinux2.6.3实例—使用TFTP〔TrivialFileTransferProtocol,简单文件传输协议〕是TCP/IP协议族中的一个用来在客户机与效劳器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输效劳。注意:TFTP效劳器运行在宿主机,便于开发板下载Kernel和RootFS映像文件。2.7实例—TFTP效劳器的搭建1.tftp的配置文件#gedit/etc/xinetd.d/tftpservicetftp{ socket_type =dgram protocol =udp wait =yes user =root server =/usr/sbin/in.tftpd

server_args =-c-s/var/lib/tftpboot

disable =no

#默认是yes per_source =11 cps =1002 flags =IPv4}2.重启tftp效劳器#servicexinetdrestart停止xinetd:[确定]启动xinetd:[确定]#netstat-a|greptftp#netstat-an|grep69|

温馨提示

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

评论

0/150

提交评论