开云 开云体育平台嵌入式系统软件的开发
交叉开发环境由宿主机和目标机组成,宿 主机与目标机之间在物理连接的基础上建 立起逻辑连接。
宿主机(Host) :是用于开发嵌入式系统的 计算机。一般为PC机(或者工作站),具备 丰富的软硬件资源,为嵌入式软件的开发提 供全过程支持。 目标机(Target):即所开发的嵌入式系统, 是嵌入式软件的运行环境,其硬件软件是为 特定应用定制的。 在开发过程中,目标机端需接收和执行宿主 机发出的各种命令如设臵断点、读内存、写 内存等,将结果返回给宿主机,配合宿主机 各方面的工作。
ROM Emulator ROM Emulator的调试方式是一种不完 全的调试方式:ROM Emulator设备只 是为目标机提供ROM芯片和在Target和 Host间建立一条高速的通信通道,因此 它经常和前面两种调试方式结合起来形 成一种完备的调试方式。ROM Emulator的典型应用就是和ROM Monitor的调试方式相结合。
连接ICE和目标机时,一般是将目标机的CPU 取下,而将ICE的CPU引出线接到目标机的 CPU插槽。 用ICE进行调试时,在Host端运行的调试器通 过ICE来控制目标机上运行的程序。
同时支持软断点和硬件断点的设臵 设臵各种复杂的断点和触发器 实时跟踪目标程序的运行,并可实现选择性的
– 源代码程序的 编写 – 编译成各个目 标模块 – 链接成可供下 载调试或固化 的目标程序
把在宿主机上编写的高级语言程序编译 成可以运行在目标机上的代码,即在宿 主机上能够编译生成另一种CPU(嵌入 式微处理器)上的二进制程序。
非交叉调试 调试器和被调试程序运行在同一 台计算机上 需要操作系统的支持 被调试程序的装载由专门的 Loader程序完成 不需要通过外部通信的方式来控 制被调试程序
◦ ◦ ◦ ◦ ◦ ◦ ◦ 程序映像下载 对目标机系统内存的读写 对寄存器的读写 设臵和清开云APP 开云官网入口除不同类型的断点 单步执行指令 复位系统 …等调试功能
调试过程 (1)启动目标机,监控器掌握对目标机的控制,等待和 调试器建立连接; (2)启动调试器,并和监控器建立起通信连接; (3)使用调试器将应用程序下载到目标机上的RAM空间 中; (4)使用调试器进行调试,发出各种调试命令,监控器 解释并执行这些命令,通过目标机上的各种异常来 获取对目标机的控制,将命令执行结果回传给调试 器; (5)如果程序有问题,在调试器的帮助下定位错误;修 改之后再重新编译链接并下载程序,开始新的调试, 如此反复直至程序正确运行为止。
◦ 是指调试程序和被调试程序运行在不同机器上 的调试器 ◦ 调试器通过某种方式能控制目标机上被调试程 序的运行方式
◦ 通过调试器能查看和修改目标机上的内存、寄 存器以及被调试程序中的变量等
交叉调试 调试器和被调试程序运行在不同 的计算机上 可独立运行,无需操作系统支持 被调试程序的装载由调试器完成 需要通过外部通信的方式来控制 被调试程序
在目标机上电或复位后首先执行的就是 ROM Monitor,它对目标机进行一些必要的 初始化
◦ 初始化要求的外围设备,如最基本的串口和用 于内存刷新的系统计时器芯片; ◦ 初始化用于下载映像的内存系统; ◦ 初始化中断控制器和安装中断处理程序。
在宿主机上编写代码 反复检查代码,直到编译 通过,生成可执行程序 将程序固化(Burn)到目标机的非易失 性存储器(E2PROM、FLASH等)中
将CPU的模式分为一般模式和调试模式 一般模式下, CPU从内存读取指令执行 调试模式下,CPU首先从调试端口读取指令,通过 调试端口可以控制CPU进入和退出调试模式;Host 端的调试器可以直接向目标机发送要执行的指令,
当ROM Monitor占用CPU时,应用程序不响应外部的中 断,因此不便调试有时间特性的程序。
ROM Monitor要占用目标机一定数量的资源,如CPU、 R开云APP 开云官网入口AM、ROM和通信设备等资源。
仿真开发方式 嵌入式应用的开发经常会遭遇缺少目标 机环境、缺乏目标机芯片等资源的问题, 而开发过程又不可能停止,因此自然就 提出了根据不同的应用需要,利用仿真 器件、仿真环境进行开发的方法。 硬件仿真开发
提供“Shadow RAM”,能在不中断被调试程序 的运行下查看内存和变量即非干扰调试查询
ROM Emulator 优点 目标机可以没有ROM芯片、可以使用 ROM Emulator提供的ROM空间且不需 要用别的工具来写ROM。 缺点 目标机必须能支持外部ROM存储空间, 而且由于其通常要和ROM Monitor配合 使用,因此它拥有ROM Monitor的所有 缺点。
ICE ICE(In-Circuit Emulator)是一种用于 替代目标机上CPU的设备,即在线仿真 器。 它比一般的CPU有更多的引出线,能够 将内部的信号输出到被控制的目标机。 ICE上的Memory也可以被映射到用户的 程序空间,这样即使目标机不存在的情 形下也可以进行代码的调试。
设计完成后,嵌入式软件的开发进入实现阶段, 可分为三个步骤:生成、调试和固化运行。
◦ 软件的生成主要是在宿主机上进行,利用各种工具完成 对应用程序的编辑、交叉编译和链接工作,生成可供调 试或固化的目标开云APP 开云官网入口程序。 ◦ 调试是通过交叉调试器完成软件的调试工作。调试完成 后还需进行必要的测试工作。 ◦ 固化运行是先用一定的工具将应用程序固化到目标机上, 然后启动目标机,在没有任何工具干预的情况下应用程 序能自动地启动运行。
ROM Monitor ROM Monitor是被固化且运行在目标机 上的一段程序,负责监控目标机上被调 试程序的运行,与宿主机端的调试器一 起完成对应用程序的调试。 调试器与ROM Monitor之间的通信遵循 远程调试协议。
ROM Emulator ROM Emulator是一种用于替代目标机 上的ROM芯片的设备,即ROM仿真器。 利用这种设备,目标机可以没有ROM 芯片,但目标机的CPU可以读取ROM Emulator设备上ROM芯片的内容:ROM Emulator设备上的ROM芯片的地址可以 实时地映射到目标机的ROM地址空间, 从而仿真(Emulation)目标机的ROM。
◦ 编写简单的板级测试软件,主要是辅助硬 件的调试 ◦ 开发基本的驱动程序 ◦ 开发特定嵌入式操作系统的驱动程序(板 级支持包) ◦ 开发嵌入式系统软件,如:嵌入式操作系 统等 ◦ 开发应用软件
物理连接和逻辑连接 ◦ 物理连接是指宿主机与目标机通过物理线 路连接在一起,连接方式主要有三种:
◦ 物理连接是逻辑连接的基础。 ◦ 逻辑连接指宿主机与目标机间按某种通信 协议建立起来的通信连接,目前逐步形成 了一些通信协议的标准。
嵌入式软件开发工具的分类 嵌入式软件的交叉开发环境 嵌入式软件实现阶段的开发过程 嵌入式软件开发工具的发展趋势
嵌入式软件开发工具 “工欲善其事,必先利其器” 嵌入式软件开发工具的 集成度和可用性将直接关 系到嵌入式系统的开发效 率。Kaiyun 开云Kaiyun 开云Kaiyun 开云
扫一扫关注微信公众帐号