第4章嵌入式系统软件开发环境.ppt
- 文档编号:18851478
- 上传时间:2024-01-30
- 格式:PPT
- 页数:57
- 大小:1.25MB
第4章嵌入式系统软件开发环境.ppt
《第4章嵌入式系统软件开发环境.ppt》由会员分享,可在线阅读,更多相关《第4章嵌入式系统软件开发环境.ppt(57页珍藏版)》请在冰点文库上搜索。
第4章嵌入式系统软件及开发调试方法,4.1嵌入式系统软件结构4.2嵌入式系统软件开发过程4.3ADS集成软件开发环境4.5嵌入式Linux系统开发环境,2,4.1嵌入式系统软件结构图,3,DDI层硬件层与软件层之间为中间层,也称为BSP(BoardSupportPackage,板级支持包),将系统软件与底层硬件部分隔离,使得系统的底层设备驱动程序与硬件无关,一般应具有相关硬件的初始化、数据的输入/输出操作和硬件设备的配置等功能。
BSP是主板硬件环境和操作系统的中间接口,是软件平台中具有硬件依赖性的那一部分,主要目的是为了支持操作系统,使之能够更好地运行于硬件主板上。
纯粹的BSP所包含的内容一般说来是与系统有关的驱动程序,如网络驱动程序和系统中的网络协议有关,串口驱动程序和系统的下载调试有关,等等。
离开这些驱动程序系统就不能正常工作。
4,系统软件层主要是操作系统,有的还包括文件系统、图形用户接口和网络系统等。
操作系统是嵌入式应用软件的基础和开发平台,实际上是一段程序,系统复位后首先执行,相当于用户的主程序,用户的其他应用程序都建立在操作系统之上。
操作系统是一个标准的内核,将中断、I/O、定时器等资源都封装起来,以方便用户使用。
操作系统的引入大大提高了嵌入式系统的功能,方便了应用软件的设计,但同时也占用了宝贵的嵌入式系统资源。
一般在大型的或需要多任务的应用场合才考虑使用嵌入式操作系统。
5,应用层,由基于操作系统开发的应用程序组成,用来完成对被控对象的控制功能。
应用层是面向被控对象和用户的,为了方便用户操作,往往需要具有友好的人机界面。
对于一些复杂的系统,在系统设计的初期阶段就要对系统的需求进行分析,确定系统的功能,然后将系统的功能映射到整个系统的硬件、软件和执行装置的设计过程中,这个过程称为系统的功能实现。
6,4.2嵌入式系统开发工具,1.嵌入式系统开发工具:
硬件开发工具,软件开发工具两类。
2.软件开发工具编译器,汇编器,连接器,调试器,嵌入式操作系统,函数库,评估板,在线仿真器等。
3.市场上的软件开发工具类型:
目前世界上有四十多家公司提供不同类型的产品。
从软件开发角度讲,至少需要编辑器,编译器,连接器,调试器和工程管理工具,也就是软件集成开发环境。
4.ARM公司提供的ADS集成开发环境。
这种一套运行在windows环境下的ARM公司开发继承开发环境ADS,该公司还新退出了RVDS.,7,4.3嵌入式系统开发过程,概要设计:
描述系统如何实现所述的需求,包括软件模块的划分、系统的软件开发工具选择以及关键问题的论证等。
详细设计:
详细描述各个模块的实现方法与过程,模块间接口等问题,以作为编码人员的编码准则。
编码,单元调试:
编码完成后,对各个模块进行单元调试,以保证模块正常工作。
集成调试,集成调试,产品测试,产品发布,8,嵌入式系统软件的开发特点,采用宿主机/目标机交叉开发方法:
嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的。
嵌入式软件以宿主机/目标机模式开发,所需要的开发环境称为交叉开发环境,分为宿主机部分和目标机部分,两者以统一的通信协议进行通信,宿主机向目标机发送命令,目标机接收、执行命令并将结果返回宿主机,从而实现两机之间的交互控制。
9,嵌入式系统软件交叉开发方式,10,嵌入式系统软件调试技术,1模拟器方式调试工具和待调试的嵌入式软件都在主机上运行,通过软件手段模拟执行为某种嵌入式处理器编写的源程序。
简单的模拟器可以通过指令解释方式逐条执行源程序,分配虚拟存储空间和外设,进行语法和逻辑上的调试。
11,2在线仿真器方式,在线仿真器ICE是一种完全仿造调试目标CPU设计的仪器,目标系统对用户来说是完全透明的、可控的。
仿真器与目标板通过仿真头连接,与主机有串口、并口、以太网口或USB口等连接方式。
该仿真器可以真正地运行所有的CPU动作,并且可以在其使用的内存中设置非常多的硬件中断点,可以实时查看所有需要的数据,从而给调试过程带来很多便利。
由于仿真器自成体系,调试时可以连接目标板,也可以不接目标板。
使用ICE同使用一般的目标硬件一样,只是在ICE上完成调试后,需要把调试好的程序重新下载到目标系统上而已。
由于ICE价格昂贵,而且每种CPU都需要一种与之对应的ICE,使得开发成本非常高。
12,。
主机和目标板通过某种接口(通常是串口)连接,主机上提供调试界面,被调试程序下载到目标板上运行,通过与监控运行于目标机上的监控程序通信,获得调试信息。
3.监控器方式,13,监控程序,监控程序是一段运行于目标机上的可执行程序,主要负责监控目标机上被调试程序的运行情况,与宿主机端的调试器一起完成对应用程序的调试。
监控程序包含基本功能的启动代码,并完成必要的硬件初始化,等待宿主机的命令。
被调试程序通过监控程序下载到目标机,就可以开始进行调试。
监控器方式操作简单易行,功能强大,不需要专门的调试硬件,适用面广,能提高调试的效率,缩短产品的开发周期,降低开发成本。
正因为以上原因,监控器方式才能够广泛应用于嵌入式系统的开发之中。
14,监控器调试方法的局限性:
只能调试运行在目标机操作系统上的应用程序,不适宜用来调试目标操作系统。
有的微处理器需要在目标板工作正常的前提下,事先烧制监控程序,而且功能有限,特别是硬件调试能力较差。
15,使用ICD和目标板的调试端口连接,发送调试命令和接收调试信息,可以完成必要的调试功能。
一般情况下,在ARM芯片的开发板上采用JTAG边界扫描口进行调试。
摩托罗拉公司采用专用的BDM调试接口。
使用合适的开发工具可以利用这些接口。
例如,ARM开发板,可以将JTAG调试器接在开发板的JTAG口上,通过JTAG口与ARM处理器核进行通信。
由于JTAG调试的目标程序是在目标板上执行,仿真更接近于目标硬件,因此许多接口问题,如高频操作限制、电线长度的限制等被最小化了。
该方式是目前采用最多的一种调试方式。
4.JTAG仿真器调试,16,4.4嵌入式软件开发类型,无操作系统的软件开发(单片机软件开发)启动代码应用程序基于操作系统的软件开发bootloader操作系统移植BSP板级支持包应用程序开发,17,无操作系统软件开发-启动代码开发,启动代码功能和特征功能硬件初始化引导C代码特征通常用汇编语言编写程序复位运行入口点代码量非常小,18,无操作系统软件开发-启动代码,启动代码程序流程设置中断、异常入口关中断硬件寄存器初始化(GPIO配置、总线配置、PLL时钟)初始化栈指针数据区初始化C入口函数调用BLMain,19,无操作系统软件开发-应用软件开发,应用软件功能和特征功能硬件驱动应用特征通常用C语言或者嵌入式汇编语言编写程序较复杂,代码量较大,20,基于操作系统的软件开发-bootloader开发,Bootloader功能和特征功能硬件初始化引导操作系统下载程序(串口、网口、USB)烧写flash特征程序复位运行入口点通常用汇编语言+C语言编写代码量较小,21,基于操作系统的软件开发-嵌入式操作系统移植,LinuxWindowsCEuC/OSIIuClinuxNucleus,22,基于操作系统的软件开发-BSP设计,BSP功能和特征功能为应用程序提供统一的硬件操作接口,主要是为操作系统使用。
特征高度硬件相关高度依赖于具体硬件平台各种操作系统各异,23,基于操作系统的软件开发-应用程序设计,应用程序功能功能GUI图形、人机交互控制算法特征硬件依赖程度小部分可仿真调试各种操作系统各异,24,4.5嵌入式软件设计和调试流程,编辑创建工程添加文件、编写程序汇编语言加C语言编译配置编译、汇编和连接参数编写连接脚本文件编译,调试连接调试器下载程序运行、调试固化通过仿真器烧写flash专用或通用的编程器通过bootloader烧写flash,25,4.6嵌入式主流软件开发工具,Windows操作系统ARMADS/SDT+调试器GNU+Cygwin+调试器ARMSDT+简易电缆Linux操作系统GNU+GDB,26,4.7ADS集成开发环境使用,1基本概念2.ADS组成介绍3利用ADS开发应用程序4AXD调试器使用,27,1.基本概念,ARM集成开发环境中的文件产生的文件源文件:
汇编文件.S,C源文件.C,C+源文件.CPP.编译后目标文件:
ELF文件(也包含调试信息,不包含库文件等)与库文件连接后生成映像文件:
.axf(包含注释和调试信息),给AXD调试器等调试的文件。
.bin文件:
去掉.axf文件中的注释和调试信息的文件。
.bin文件可以直接在硬件上执行,也就是最终烧写进rom的文件。
28,2.ADS组成及使用,编译器,ADS提供多种编译器,以支持ARM和Thumb指令的编译。
armcc是ARMC编译器,tcc是ThumbC编译器,armcpp是ARMC+编译器,tcpp是ThumbC+编译器,armasm是ARM和Thumb的汇编器。
29,汇编器,armasm(独立的ARM汇编器)inlineassember(内置在C/C+编译器中的汇编器),30,链接器armlink是ARM链接器。
该命令既可以将编译得到的一个或多个目标文件和相关的一个或多个库文件进行链接,生成一个可执行文件,也可以将多个目标文件部分链接成一个目标文件,以供进一步的链接。
31,ARM运行时库,ANSIC库C+运行时库,32,fromELF映像文件转换工具将ELF格式的文件转换为各种格式的输出文件,包括bin格式映像文件、Motorola32位S格式映像文件、Intel32位格式映像文件和Verilog16进制文件。
FromELF命令也能够为输入映像文件产生文本信息,例如,代码和数据长度。
33,armar库管理工具armar是ARM库函数生成器,它将一系列ELF格式的目标文件以库函数的形式集合在一起。
用户可以把一个库传递给一个链接器以代替几个ELF文件。
CodeWarriorCodeWarrior集成开发环境(IDE)为管理和开发项目提供了简单多样化的图形用户界面,用户可以使用ADS的CodeWarriorIDE为ARM和Thumb处理器开发用C、C+或者ARM汇编语言编写的程序代码。
34,调试器:
ADS中包含有3个调试器:
AXD、armsd和ADW/ADU,armsd是ARM和Thumb的符号调试器。
它能够进行源码级的程序调试。
用户可以在用C或汇编语言写的代码中进行单步调试、设置断点、查看变量值和内存单元的内容。
AXD调试器配合其他的软件,可以进行多种方法的调试,与Multi-ICE(Multi-processorin-circuitemulator)硬件配合,进行在线调试、也可以进行ARMulator模拟器调试,如果烧写了Angel监控程序,也可以进行监控器调试。
35,3.利用ADS开发应用程序-新建工程,打开codeware,选择新建工程!
36,利用ADS开发应用程序-保存工程,37,利用ADS开发应用程序-添加文件,38,利用ADS开发应用程序-添加文件方法2,39,利用ADS开发应用程序-指定目标文件类型,40,利用ADS开发应用程序-设置编译连接环境,图3.9Edit菜单,41,图3.10DebugRelSettings对话框,42,图3.11命令行工具选项设置,选择目标处理器类型,43,Linker设置.,图3.12链接器设置,44,直接点击工程编译按钮,若无错误,则启动调试器AXD,进行调试。
调试器启动方式有两种,菜单栏启动或者工具栏按钮启动。
利用ADS开发应用程序-编译调试,45,4.用AXD进行软件调试,调试架构Multi-ICE的配置使用AXD进行代码调试生成.bin文件,46,47,4.5嵌入式Linux系统开发,1.各种工具软件的准备2.宿主机开发环境搭建3.交叉开发环境硬件连接方法4.交叉开发环境搭建,48,1.应用软件的准备,系统工具:
Linux操作系统文件交叉开发工具链(gcc相关文件)代码阅读器,烧写工具等等各种软件源代码:
linux内核文件,bootloader,busybox,数据库,QT等等源代码文件,49,2.宿主机交叉编译环境的搭建,1.在PC上安装Linux操作系统。
比如Redhat等2.在宿主机上安装交叉开发工具链,50,交叉编译工具链的安装,第1步,取得Binutils、GCC、Glibc源码。
第2步,配置并编译Binutils取得我们所需要的汇编和连接程序。
第3步,配置并编译GCC源码生成GCC编译器。
一般是C编译器首先生成,然后以这个为基础在结合下一步生成的Glibc的C函数库,再编译生成其它编译器。
第4步,配置Glibc并编译生成Glibc的C函数库。
第5步,再次配置和编译GCC源码,生成其它语言的编译器,如C+编译器等。
51,交叉编译环境的功能,嵌入式系统目标系统中所有的软件的编译,调试等都在该环境下操作完成,包括操作系统内核,bootloader,各种库函数,应用软件等。
宿主机上的其他软件比如烧写工具,NFS服务器,Samba服务器,超级终端,代码阅读器等软件都是开发中要用到的,52,3.交叉开发环境硬件连接方法,PC与目标板通过串口连接通过网口连接通过JTAG连接,53,4.嵌入式Linux系统开发过程,Bootloader移植Linux内核移植文件系统移植GUI库移植应用软件开发软件移植测试,54,Bootloader移植,1.准备Bootloader软件2.根据目标板硬件平台,修改配置Bootloader。
3.交叉编译,形成目标板子可执行的Bootloader二进制BIN文件。
4.将Bootloader烧写进目标板。
5.配置好宿主机上的minicom或者超级终端。
6.启动目标板,若bootloader编译没有错误,烧写正确,就可以在超级终端中看到目标板启动的信息。
55,Linux内核裁剪配置和移植,1.下载合适的Linux内核源代码。
2.解压后,配置内核源代码。
3.交叉编译Linux内核,形成目标板可执行的BIN文件。
4.移植Linux内核。
5.通过Bootloader移植烧写或者直接通过JTAG烧写,与Bootloader烧写方法一致,但是给定参数不一样。
6.烧写成功,启动目标板,目标板启动动后可以进入Bootloader操作界面也可以进入Linux操作界面。
56,Linux文件系统移植,文件系统制作1.下载busybox源代码2.配置编译busybox3.建立文件系统目录,准备相关目录下的软件4.用Linux下相关工具,制作出文件系统的镜像5.烧写文件系统,57,QT库的移植,1.QT库源代码下载2.交叉编译3.开发工具安装4.GUI应用软件开发5.调试6.移植,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统软件 开发 环境
![提示](https://static.bingdoc.com/images/bang_tan.gif)