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

下载本文档

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

文档简介

第二章

嵌入式系统开发第二章嵌入式系统开发1嵌入式系统开发环境

2嵌入式系统开发过程3嵌入式系统开发语言4嵌入式系统开发工具交叉开发可执行文件可执行文件(.hex)voidmain(){Init();while(1);}宿主机(Host)开发软件的平台通常是普通台式机目标机(Target)运行软件的平台通常是嵌入式系统为什么要加上while(1);?第二章嵌入式系统开发1嵌入式软件开发环境宿主机用于开发嵌入式系统的PC机嵌入式应用软件的开发环境具备丰富的软硬件资源为嵌入式应用软件开发提供全过程支持第二章嵌入式系统开发1嵌入式软件开发环境目标机所开发的嵌入式系统嵌入式软件的运行环境软硬件是为特定应用定制在开发过程中,目标机需接收和执行宿主机发出的各种命令如设置断点、读内存、写内存等,将结果返回给宿主机,配合宿主机各方面的工作。第二章嵌入式系统开发1嵌入式软件开发环境宿主机与目标机的连接物理连接

宿主机与目标机通过物理线路连接,是逻辑连接的基础串口以太网口在线调试接口(如JTAG和BDM等)第二章嵌入式系统开发1嵌入式软件开发环境宿主机与目标机的连接逻辑连接宿主机与目标机间按某种通信协议建立起来的通信连接目前以逐步形成了一些通信协议的标准第二章嵌入式系统开发1嵌入式软件开发环境宿主机与目标机的连接

要建立交叉开发环境,必须正确设置以上两种连接:物理连接

注意硬件线路正确连接质量良好和硬件设备完好正常工作

逻辑连接

注意正确配置宿主机和目标机的参数并且与物理连接一致嵌入式软件开发概论1嵌入式软件开发环境小结首先,在宿主机(host)上建立开发环境,进行应用程序编写和交叉编译然后,在宿主机和目标机(target)之间建立连接将应用程序下载到目标机上进行交叉调试最后,将应用程序固化到目标机中实际运行第二章嵌入式系统开发1嵌入式系统开发环境2嵌入式系统开发过程3嵌入式系统开发语言4嵌入式系统开发工具第二章嵌入式系统开发2嵌入式系统开发过程第1步嵌入式系统需求分析第2步嵌入式系统设计第3步嵌入式系统实现第4步嵌入式系统测试第5步嵌入式系统发布前期中期后期第二章嵌入式系统开发1嵌入式系统开发环境2嵌入式系统开发过程3嵌入式系统开发语言4嵌入式系统开发工具第二章嵌入式系统开发3嵌入式系统开发语言DatafromJapanITRONsurveyfornewembeddedsystems第二章嵌入式系统开发3嵌入式系统开发语言开发语言排行榜国际国内百度百科第二章嵌入式系统开发/index.php/content/paperinfo/tpci/index.html1嵌入式系统开发环境2嵌入式系统开发过程3嵌入式系统开发语言4嵌入式系统开发工具第二章嵌入式系统开发4嵌入式系统(软件)开发工具EditorAssembler/CompilerLinker(Loader)DebuggerUtility(RAM/FLASHdownloader)第二章嵌入式系统开发ARM集成开发工具:——REALVIEWMDK——IAREWARM4嵌入式系统(软件)开发工具编辑器用于在嵌入式应用程序编写阶段编辑源代码SourceInsightUltraEdit第二章嵌入式系统开发4嵌入式系统(软件)开发工具EditorAssembler/CompilerLinker(Loader)DebuggerUtility(RAM/FLASHdownloader)第二章嵌入式系统开发4嵌入式系统(软件)开发工具编译器用于在嵌入式应用程序交叉编译阶段根据不同目标机的处理器芯片来产生运行于目标机上的目标文件通用编译器GNU专用编译器ARM:armasm,armccMIPSPowerPC第二章嵌入式系统开发4嵌入式系统(软件)开发工具EditorAssembler/CompilerLinker(Loader)DebuggerUtility(RAM/FLASHdownloader)第二章嵌入式系统开发4嵌入式系统(软件)开发工具链接器和定址器

链接器

把所有的目标文件和相关的库函数组合成一个可重定址的目标程序文件,该文件由txt段(代码)、data段(初始化的全局变量)和bss段(未初始化的全局变量)构成。定址器

根据预设的描述各段在存储器中地址信息的脚本文件,对可重定址的目标程序文件的每个段指定物理内存地址,并输出包含二进制内存映像的可执行文件脚本文件第二章嵌入式系统开发4嵌入式系统(软件)开发工具EditorAssembler/CompilerLinker(Loader)DebuggerUtility(RAM/FLASHdownloader)第二章嵌入式系统开发4嵌入式系统(软件)开发工具调试工具用于在嵌入式应用程序交叉调试阶段进行代码调试软件仿真器(基于宿主机的调试)ROM监控器ROM仿真器在线仿真器片上调试第二章嵌入式系统开发4嵌入式系统(软件)开发工具调试工具用于在嵌入式应用程序交叉调试阶段进行代码调试软件仿真器(基于宿主机的调试)指令级模拟器∕系统调用级模拟器,利用软件模拟硬件功能对目标机的指令执行结果和执行时间的仿真对目标机的常用外设和中断、甚至操作系统的仿真特点软硬件设计同时进行并能验证软件算法正确性评估产品性能速度慢且只能仿真软件的正确性不能仿真与时序有关的错误第二章嵌入式系统开发4嵌入式系统(软件)开发工具调试工具用于在嵌入式应用程序交叉调试阶段进行代码调试软件仿真器(基于宿主机的调试)指令级模拟器∕系统调用级模拟器,利用软件模拟硬件实例

uCos的应用开发

——应用开发:C语言(在宿主机上用系统调用级模拟器完成)

——平台移植:汇编语言(在宿主机上用指令级模拟器完成)

字节排序问题:uCos兼顾大端∕小端存储模式字长兼容性问题:uCos提供可移植的数据类型定义第二章嵌入式系统开发4嵌入式系统(软件)开发工具调试工具用于在嵌入式应用程序交叉调试阶段进行代码调试ROM监控器调试器分为两部分,大部分驻宿主机,少部分驻目标机调试器(宿主机)运行于宿主机的调试器与运行于目标机上的监控器间的通信遵循远程调试协议监控器(目标机)

被固化在目标机的ROM中目标机复位后首先被执行的一段程序,负责监控目标机上被调试程序的运行,与宿主机端的调试器一起完成对应用程序的调试第二章嵌入式系统开发ROM监控器调试方式ROMMonitor调试方式调试器(Angel)Windows或其它桌面操作系统PC机等硬件嵌入式硬件监控程序(ROMMonitor)被调试程序宿主机逻辑上的连接物理上的连接(串口或网口)宿主机目标机ROM监控器调试过程1)启动目标机,上电或复位后首先执行监控器,监控器掌握对目标机的控制,等待和调试器建立连接2)启动宿主机上的调试器,并和运行目标机上的监控器建立起通信连接3)使用宿主机上的调试器将应用程序下载到目标机的

RAM中4)使用宿主机上的调试器进行调试发出各种调试命令,目标机监控器解释并执行这些命令,通过目标机上各种异常来获取对目标机的控制,将命令执行结果回传调试器5)如果程序有问题,在调试器的帮助下定位错误,修改之后再重新编译链接并下载程序,开始新调试,如此反复直至程序正确运行为止4嵌入式系统(软件)开发工具调试工具用于在嵌入式应用程序交叉调试阶段进行代码调试ROM仿真器一种用于替代目标机上的ROM芯片的设备原理对于目标机上的CPU,可读取ROM仿真器上ROM芯片的内容,对于宿主机上的调试器,ROM仿真器上的ROM芯片的地址可以实时映射到目标机ROM的地址空间从而仿真目标机的ROM特点通常与ROM监控器结合一起使用避免51单片机中使用编程器和擦除器进行离线编程第二章嵌入式系统开发ROM仿真器支持各种51系列芯片的JY-E2300仿真器照片4嵌入式系统(软件)开发工具调试工具用于在嵌入式应用程序交叉调试阶段进行代码调试在线仿真器(ICE)一种替代目标机上CPU来模拟目标机上CPU行为的设备原理目标系统程序驻留目标内存中,监控器驻留ICE的存储器中,目标机调试时使用在线仿真器的处理器和存储器、目标板上的输入输出接口;完成调试后再使用目标板上的处理器和存储器实时运行应用程序调试时,通常将MCU从目标板上拔下插上仿真头再进行仿真调试第二章嵌入式系统开发4嵌入式系统(软件)开发工具调试工具用于在嵌入式应用程序交叉调试阶段进行代码调试在线仿真器(ICE)一种替代目标机上CPU来模拟目标机上CPU行为的设备特点

——支持软件断点和硬件断点

——支持实时跟踪

——支持在不中断调试程序运行的情况下查看内存和变量

——代价昂贵调试时,通常将MCU从目标板上拔下插上仿真头再进行仿真调试第二章嵌入式系统开发在线仿真器支持各种51系列芯片的南京伟福仿真器照片4嵌入式系统(软件)开发工具调试工具用于在嵌入式应用程序交叉调试阶段进行代码调试片上调试(OCD)内置于目标板CPU芯片内的调试模块提供的一种调试功能原理将目标机CPU的模式分为一般模式和调试模式

——一般模式下,目标机CPU从内存读取指令执行

——调试模式下,目标机CPU首先从调试端口读取指令,通过调试端口可以控制目标机CPU进入和退出调试模式;宿主机的调试器可以直接向目标机发送要执行的指令,读写目标机的内存和各种寄存器,控制目标程序的运行以及完成各种复杂的调试功能第二章嵌入式系统开发On-ChipDebuggingOCD调试结构调试器Windows或其它桌面操作系统PC机等硬件被调试程序OCD接口嵌入式硬件宿主机目标机逻辑上的连接物理连接仿真器针形连接器并口、串口或网络接口为特定处理器而建造4嵌入式系统(软件)开发工具调试工具用于在嵌入式应用程序交叉调试阶段进行代码调试片上调试(OCD)内置于目标板CPU芯片内的调试模块提供的一种调试功能特点

——支持软件断点和硬件断点

——支持实时跟踪

——支持时序分析

——可以精确计量程序的执行时间

——价格低廉

——不支持在不中断调试程序运行的情况下查看内存和变量

——使用范围受限不支持没有OCD功能的CPU第二章嵌入式系统开发4嵌入式系统(软件)开发工具调试工具用于在嵌入式应用程序交叉调试阶段进行代码调试片上调试(OCD)内置于目标板CPU芯片内的调试模块提供的一种调试功能实现

——后台调试模式BDM(Motorola公司专有调试接口)

——边界扫描技术JTAG(开放标准:接口与协议)

——测试数据输入(TDI)

——测试数据输出(TDO)

——测试时钟(TCK)

——测试模式选择引脚(TMS)

——异步测试复位引脚(TRST,可选)第二章嵌入式系统开发JointTestAccessGroup接口ARM处理器的JTAG仿真器连接图ARM处理器的JTAG调试协议4嵌入式系统(软件)开发工具调试工具用于在嵌入式应用程序交叉调试阶段进行代码调试片上调试(OCD)和在线仿真(ICE)的区别在线仿真ICE——硬件主体是在线仿真器

——用在线仿真器完全可以取代目标板上的CPU——一般适用于8位CPU片上调试OCD(边界扫描技术JTAG)

——硬件主体是目标板上内嵌IEEE1149标准电路的CPU——不能用片上调试仿真器完全取代目标板上的CPU——一般适用于8、16、32位CPU第二章嵌入式系统开发4嵌入式系统(软件)开发工具调试工具用于在嵌入式应用程序交叉调试阶段进行代码调试片上调试(OCD)和嵌入式跟踪宏单元(ETM)的区别嵌入式跟踪宏单元ETM——观察不需停止目标CPU——设置过滤及触发条件捕捉异常

——相当于嵌入芯片的逻辑分析仪片上调试OCD(边界扫描技术JTAG)

——利用芯片内部的EmbeddedICE模块来控制内核实现调试

——需要把目标CPU停住后才能观察现场情况高级实时软件调试工具在CPU运行过程中把现场信息捕捉压缩后输出,后在PC端可对数据解压分析第二章嵌入式系统开发4嵌入式系统(软件)开发工具Debugger分类软件仿真器(ARM:ARMulator)

软件模拟硬件(纯软件)ROM监控器(ARM:Angel)

运行宿主机的调试代理与运行目标机的监控程序间通信ROM仿真器(8051:JY-E2300)

替代目标机上的ROM在线仿真器(ARM:Ashling-ICE)

替代目标机上的CPU片上调试(ARM:J-Link)

内置于目标板CPU中的调试模块硬件实现(JTAG)昂贵少用较少用零成本性价比第二章嵌入式系统开发4嵌入式系统(软件)开发工具Debugger特点软件断点

仅允许响应单个事件停止运行,相当于“在提取该指令前停止执行”硬件断点允许响应多种事件(指令提取、内存、I/O读写和中断)来停止运行

实时跟踪显示事件发生的精确次序,如“计时器

温馨提示

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

评论

0/150

提交评论