基于总线的计算机系统开发、调试与性能分析
1. 主机与交叉编译器
在开发嵌入式系统时,主机通常应尽可能减少在目标设备上的占用空间,避免干扰应用程序软件。主机需要具备以下功能:
- 将程序加载到目标设备中。
- 启动和停止目标设备上的程序执行。
- 检查内存和CPU寄存器。
交叉编译器是一种运行在一种类型的机器上,但为另一种机器生成代码的编译器。编译完成后,可执行代码通过串行链路下载到嵌入式系统,或者烧录到PROM中再插入使用。同时,我们经常使用主机 - 目标调试器,其中目标设备提供基本的调试钩子,主机创建更复杂的用户界面。
不过,当在PC或工作站上调试与I/O设备交互的代码时会出现问题。因为主机几乎肯定不会以相同的方式配置相同的设备,所以嵌入式代码不能直接在主机上运行。在许多情况下,可以构建一个测试平台程序来帮助调试嵌入式代码。测试平台生成输入以模拟输入设备的动作,还可以获取输出值并将其与预期值进行比较,为早期调试提供有价值的帮助。嵌入式代码可能需要稍微修改才能与测试平台配合使用,但通过仔细编码(如在C语言中使用#ifdef指令)可以确保这些更改易于撤销且不会引入错误。
2. 调试技术
虽然大量的软件调试可以在PC或工作站上通过编译和执行代码来完成,但最终不可避免地需要在嵌入式硬件平台上运行代码。嵌入式系统通常不像PC那样具有友好的编程环境,但有多种调试系统的方法。
2.1 串口
大多数评估板上的串口是最重要的调试工具之一。即使在最终产品中不使用串口,在嵌入式系统中设计一个串口也是个好主意,因为它不仅可用于开发调试,还可用于现场诊断问题。
超级会员免费看
订阅专栏 解锁全文
9288

被折叠的 条评论
为什么被折叠?



