第4章嵌入式系统软件开发环境.ppt

上传人:b****2 文档编号:2121852 上传时间:2022-10-27 格式:PPT 页数:57 大小:1.25MB
下载 相关 举报
第4章嵌入式系统软件开发环境.ppt_第1页
第1页 / 共57页
第4章嵌入式系统软件开发环境.ppt_第2页
第2页 / 共57页
第4章嵌入式系统软件开发环境.ppt_第3页
第3页 / 共57页
第4章嵌入式系统软件开发环境.ppt_第4页
第4页 / 共57页
第4章嵌入式系统软件开发环境.ppt_第5页
第5页 / 共57页
点击查看更多>>
下载资源
资源描述

第4章嵌入式系统软件开发环境.ppt

《第4章嵌入式系统软件开发环境.ppt》由会员分享,可在线阅读,更多相关《第4章嵌入式系统软件开发环境.ppt(57页珍藏版)》请在冰豆网上搜索。

第4章嵌入式系统软件开发环境.ppt

第4章嵌入式系统软件及开发调试方法4.1嵌入式系统软件结构4.2嵌入式系统软件开发过程4.3ADS集成软件开发环境4.5嵌入式Linux系统开发环境4.1嵌入式系统软件结构图2DDI层硬件层与软件层之间为中间层,也称为BSP(BoardSupportPackage,板级支持包),将系统软件与底层硬件部分隔离,使得系统的底层设备驱动程序与硬件无关,一般应具有相关硬件的初始化、数据的输入/输出操作和硬件设备的配置等功能。

BSP是主板硬件环境和操作系统的中间接口,是软件平台中具有硬件依赖性的那一部分,主要目的是为了支持操作系统,使之能够更好地运行于硬件主板上。

纯粹的BSP所包含的内容一般说来是与系统有关的驱动程序,如网络驱动程序和系统中的网络协议有关,串口驱动程序和系统的下载调试有关,等等。

离开这些驱动程序系统就不能正常工作。

3系统软件层系统软件层主要是操作系统,有的还包括文件系统、图形用户接口和网络系统等。

操作系统是嵌入式应用软件的基础和开发平台,实际上是一段程序,系统复位后首先执行,相当于用户的主程序,用户的其他应用程序都建立在操作系统之上。

操作系统是一个标准的内核,将中断、I/O、定时器等资源都封装起来,以方便用户使用。

操作系统的引入大大提高了嵌入式系统的功能,方便了应用软件的设计,但同时也占用了宝贵的嵌入式系统资源。

一般在大型的或需要多任务的应用场合才考虑使用嵌入式操作系统。

4应用层应用层n由基于操作系统开发的应用程序组成,用来完成对被控对象的控制功能。

应用层是面向被控对象和用户的,为了方便用户操作,往往需要具有友好的人机界面。

对于一些复杂的系统,在系统设计的初期阶段就要对系统的需求进行分析,确定系统的功能,然后将系统的功能映射到整个系统的硬件、软件和执行装置的设计过程中,这个过程称为系统的功能实现。

54.2嵌入式系统开发工具1.嵌入式系统开发工具:

硬件开发工具,软件开发工具两类。

2.软件开发工具编译器,汇编器,连接器,调试器,嵌入式操作系统,函数库,评估板,在线仿真器等。

3.市场上的软件开发工具类型:

目前世界上有四十多家公司提供不同类型的产品。

从软件开发角度讲,至少需要编辑器,编译器,连接器,调试器和工程管理工具,也就是软件集成开发环境。

4.ARM公司提供的ADS集成开发环境。

这种一套运行在windows环境下的ARM公司开发继承开发环境ADS,该公司还新退出了RVDS.64.3嵌入式系统开发过程q概要设计:

描述系统如何实现所述的需求,包括软概要设计:

描述系统如何实现所述的需求,包括软件模块的划分、系统的软件开发工具选择以及关键问题件模块的划分、系统的软件开发工具选择以及关键问题的论证等。

的论证等。

q详细设计:

详细描述各个模块的实现方法与过程,详细设计:

详细描述各个模块的实现方法与过程,模块间接口等问题,以作为编码人员的编码准则。

模块间接口等问题,以作为编码人员的编码准则。

q编码编码q单元调试:

编码完成后,对各个模块进行单元单元调试:

编码完成后,对各个模块进行单元调试,以保证模块正常工作。

调试,以保证模块正常工作。

q集成调试集成调试集成调试,产品测试,产品发布集成调试,产品测试,产品发布7嵌入式系统软件的开发特点采用采用宿主机宿主机/目标机目标机交叉开发方法:

交叉开发方法:

嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的。

嵌入式软件以宿主机/目标机模式开发,所需要的开发环境称为交叉开发环境,分为宿主机部分和目标机部分,两者以统一的通信协议进行通信,宿主机向目标机发送命令,目标机接收、执行命令并将结果返回宿主机,从而实现两机之间的交互控制。

8嵌入式系统软件交叉开发方式9嵌入式系统软件调试技术n1模拟器方式调试工具和待调试的嵌入式软件都在主机上运行,通过软件手段模拟执行为某种嵌入式处理器编写的源程序。

简单的模拟器可以通过指令解释方式逐条执行源程序,分配虚拟存储空间和外设,进行语法和逻辑上的调试。

102在线仿真器方式在线仿真器ICE是一种完全仿造调试目标CPU设计的仪器,目标系统对用户来说是完全透明的、可控的。

仿真器与目标板通过仿真头连接,与主机有串口、并口、以太网口或USB口等连接方式。

该仿真器可以真正地运行所有的CPU动作,并且可以在其使用的内存中设置非常多的硬件中断点,可以实时查看所有需要的数据,从而给调试过程带来很多便利。

由于仿真器自成体系,调试时可以连接目标板,也可以不接目标板。

使用ICE同使用一般的目标硬件一样,只是在ICE上完成调试后,需要把调试好的程序重新下载到目标系统上而已。

由于ICE价格昂贵,而且每种CPU都需要一种与之对应的ICE,使得开发成本非常高。

11。

主机和目标板通过某种接口(通常是串口)连接,主机上提供调试界面,被调试程序下载到目标板上运行,通过与监控运行于目标机上的监控程序通信,获得调试信息。

3.监控器方式12监控程序监控程序是一段运行于目标机上的可执行程序,主要负责监控目标机上被调试程序的运行情况,与宿主机端的调试器一起完成对应用程序的调试。

监控程序包含基本功能的启动代码,并完成必要的硬件初始化,等待宿主机的命令。

被调试程序通过监控程序下载到目标机,就可以开始进行调试。

监控器方式操作简单易行,功能强大,不需要专门的调试硬件,适用面广,能提高调试的效率,缩短产品的开发周期,降低开发成本。

正因为以上原因,监控器方式才能够广泛应用于嵌入式系统的开发之中。

13监控器调试方法的局限性:

只能调试运行在目标机操作系统上的应用程序,不适宜用来调试目标操作系统。

有的微处理器需要在目标板工作正常的前提下,事先烧制监控程序,而且功能有限,特别是硬件调试能力较差。

14使用ICD和目标板的调试端口连接,发送调试命令和接收调试信息,可以完成必要的调试功能。

一般情况下,在ARM芯片的开发板上采用JTAG边界扫描口进行调试。

摩托罗拉公司采用专用的BDM调试接口。

使用合适的开发工具可以利用这些接口。

例如,ARM开发板,可以将JTAG调试器接在开发板的JTAG口上,通过JTAG口与ARM处理器核进行通信。

由于JTAG调试的目标程序是在目标板上执行,仿真更接近于目标硬件,因此许多接口问题,如高频操作限制、电线长度的限制等被最小化了。

该方式是目前采用最多的一种调试方式。

4.JTAG仿真器调试154.4嵌入式软件开发类型n无操作系统的软件开发(单片机软件开发)启动代码应用程序n基于操作系统的软件开发bootloader操作系统移植BSP板级支持包应用程序开发16无操作系统软件开发-启动代码开发启动代码功能和特征n功能q硬件初始化q引导C代码n特征q通常用汇编语言编写q程序复位运行入口点q代码量非常小17无操作系统软件开发-启动代码n启动代码程序流程q设置中断、异常入口q关中断q硬件寄存器初始化(GPIO配置、总线配置、PLL时钟)q初始化栈指针q数据区初始化qC入口函数调用BLMain18无操作系统软件开发-应用软件开发应用软件功能和特征n功能q硬件驱动q应用n特征q通常用C语言或者嵌入式汇编语言编写q程序较复杂,代码量较大19基于操作系统的软件开发-bootloader开发Bootloader功能和特征n功能q硬件初始化q引导操作系统q下载程序(串口、网口、USB)q烧写flashn特征q程序复位运行入口点q通常用汇编语言+C语言编写q代码量较小20基于操作系统的软件开发-嵌入式操作系统移植nLinuxnWindowsCEnuC/OSIInuClinuxnNucleus21基于操作系统的软件开发-BSP设计nBSP功能和特征n功能q为应用程序提供统一的硬件操作接口,主要是为操作系统使用。

n特征q高度硬件相关q高度依赖于具体硬件平台q各种操作系统各异22基于操作系统的软件开发-应用程序设计应用程序功能n功能qGUI图形、人机交互q控制q算法n特征q硬件依赖程度小q部分可仿真调试q各种操作系统各异234.5嵌入式软件设计和调试流程n编辑q创建工程q添加文件、编写程序q汇编语言加C语言n编译q配置编译、汇编和连接参数q编写连接脚本文件q编译n调试连接调试器下载程序运行、调试n固化通过仿真器烧写flash专用或通用的编程器通过bootloader烧写flash244.6嵌入式主流软件开发工具nWindows操作系统qARMADS/SDT+调试器qGNU+Cygwin+调试器qARMSDT+简易电缆nLinux操作系统qGNU+GDB254.7ADS集成开发环境使用1基本概念2.ADS组成介绍3利用ADS开发应用程序4AXD调试器使用261.基本概念ARM集成开发环境中的文件产生的文件l源文件:

汇编文件.S,C源文件.C,C+源文件.CPP.l编译后目标文件:

ELF文件(也包含调试信息,不包含库文件等)l与库文件连接后生成映像文件:

.axf(包含注释和调试信息),给AXD调试器等调试的文件。

l.bin文件:

去掉.axf文件中的注释和调试信息的文件。

.bin文件可以直接在硬件上执行,也就是最终烧写进rom的文件。

272.ADS组成及使用l编译器,ADS提供多种编译器,以支持ARM和Thumb指令的编译。

armcc是ARMC编译器,tcc是ThumbC编译器,armcpp是ARMC+编译器,tcpp是ThumbC+编译器,armasm是ARM和Thumb的汇编器。

28汇编器narmasm(独立的ARM汇编器)ninlineassember(内置在C/C+编译器中的汇编器)29l链接器armlink是ARM链接器。

该命令既可以将编译得到的一个或多个目标文件和相关的一个或多个库文件进行链接,生成一个可执行文件,也可以将多个目标文件部分链接成一个目标文件,以供进一步的链接。

30ARM运行时库nANSIC库nC+运行时库31nfromELF映像文件转换工具将ELF格式的文件转换为各种格式的输出文件,包括bin格式映像文件、Motorola32位S格式映像文件、Intel32位格式映像文件和Verilog16进制文件。

FromELF命令也能够为输入映像文件产生文本信息,例如,代码和数据长度。

32narmar库管理工具armar是ARM库函数生成器,它将一系列ELF格式的目标文件以库函数的形式集合在一起。

用户可以把一个库传递给一个链接器以代替几个ELF文件。

nCodeWarriorCodeWarrior集成开发环境(IDE)为管理和开发项目提供了简单多样化的图形用户界面,用户可以使用ADS的CodeWarriorIDE为ARM和Thumb处理器开发用C、C+或者ARM汇编语言编写的程序代码。

33调试器:

ADS中包含有3个调试器:

AXD、armsd和ADW/ADU,armsd是ARM和Thumb的符号调试器。

它能够进行源码级的程序调试。

用户可以在用C或汇编语言写的代码中进行单步调试、设置断点、查看变量值和内存单元的内容。

AXD调试器配合其他的软件,可以进行多种方法的调试,与Multi-ICE(Multi-processorin-circuitemulator)硬件配合,进行在线调试、也可以进行ARMulator模拟器调试,如果烧写了Angel监控程序,也可以进行监控器调试。

343.利用利用ADS开发应用程序开发应用程序-新建工程新建工程打开codeware,选择新建工程!

35利用ADS开发应用程序-保存工程36利用ADS开发应用程序-添加文件37利用ADS开发应用程序-添加文件方法238利用ADS开发应用程序-指定目标文件类型39利用ADS开发应用程序-设置编译连接环境图3.9Edit菜单40图3.10DebugRelSettings对话框41图3.11命令行工具选项设置选择目标处理器类型42Linker设置.图3.12链接器设置43n直接点击工程编译按钮,若无错误,则启动调试器AXD,进行调试。

n调试器启动方式有两种,菜单栏启动或者工具栏按钮启动。

利用ADS开发应用程序-编译调试444

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 化学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1