交叉编译 把在宿主机上编写的高级语言程序编译成 可以运行在目标机上的代码,即在宿主机 上能够编译生成另一种cpU(嵌入式微处理 器)上的二进制程序。 电子科技大学嵌入式件工程中心 EsE匚
电子科技大学嵌入式软件工程中心 交叉编译 • 把在宿主机上编写的高级语言程序编译成 可以运行在目标机上的代码,即在宿主机 上能够编译生成另一种CPU(嵌入式微处理 器)上的二进制程序
嵌入式软件的调试 交叉调试器 是指调试程序和被调试程序运行在不同机器上 的调试器 调试器通过某种方式能控制目标机上被调试程 序的运行方式 通过调试器能查看和修改目标机上的内存、寄 存器以及被调试程序中的变量等 电子科技大学嵌入式件工程中心 EsE匚
电子科技大学嵌入式软件工程中心 嵌入式软件的调试 • 交叉调试器 –是指调试程序和被调试程序运行在不同机器上 的调试器 –调试器通过某种方式能控制目标机上被调试程 序的运行方式 –通过调试器能查看和修改目标机上的内存、寄 存器以及被调试程序中的变量等
交又调试 非交叉调试 调试器和被调试程序运行在不同调试器和被调试程序运行在同一 的计算机上 台计算机上 可独立运行,无需操作系统支持 需要操作系统的支持 被调试程序的装载由调试器完成 被调试程序的装载由专门的 Loadel程序完成 需要通过外部通信的方式来控制不需要通过外部通信的方式来控 被调试程序 制被调试程序 可以直接调试不同指令集的程序只能直接调试相同指令集的程序 电子科技大学嵌入式件工程中心 EsE匚
电子科技大学嵌入式软件工程中心 交叉调试 非交叉调试 调试器和被调试程序运行在不同 的计算机上 调试器和被调试程序运行在同一 台计算机上 可独立运行,无需操作系统支持 需要操作系统的支持 被调试程序的装载由调试器完成 被调试程序的装载由专门的 Loader程序完成 需要通过外部通信的方式来控制 被调试程序 不需要通过外部通信的方式来控 制被调试程序 可以直接调试不同指令集的程序 只能直接调试相同指令集的程序
嵌入式软件的调试 交又调试方式 Crash and Burn Rom Monitor Rom emulator In circuit emulator On Chip Debugging Simulator方式(非交叉) 电子科技大学嵌入式件工程中心 EsE匚
电子科技大学嵌入式软件工程中心 嵌入式软件的调试 • 交叉调试方式 – Crash and Burn – Rom Monitor – Rom Emulator – In Circuit Emulator – On Chip Debugging • Simulator方式(非交叉)
在宿主机上编写代码 Crash and Burn 反复检查代码,直到编译 通过,生成可执行程序 最早的 将程序固化(Burn)到目标机的非易失 嵌入式 性存储器(E2PROM、 FLASH等)中 应用软 件调试 方法。 启动目标机运行,观 察程序是否正常工作 N 在宿主机上反复检查 结束 码,查找问题根源 改写代码 电子科技大学嵌入式件工程中心 EsE匚
电子科技大学嵌入式软件工程中心 Crash and Burn 最早的 嵌入式 应用软 件调试 方法。 在宿主机上编写代码 反复检查代码,直到编译 通过,生成可执行程序 将程序固化(Burn)到目标机的非易失 性存储器(E2PROM、FLASH等)中 在宿主机上反复检查 码,查找问题根源 改写代码 启动目标机运行,观 察程序是否正常工作 N Y 结束