关闭。这个问题需要更多 focused .它目前不接受答案。
想改进这个问题?更新问题,使其仅关注一个问题 editing this post .
5年前关闭。
Improve this question
我正在用 C++ 为不支持操作系统的嵌入式系统编写一个项目;几乎没有库支持。非常裸机。因此,我的大量代码是紧密耦合的(例如,软件触发的中断和它们正上方的层)。
我正在做的部分工作涉及更改串行端口配置,从而驱动 PC 端(UI 端)和微处理器(事件端)的并发更改。
到目前为止,我在一个非常小心的增量类型开发中做得很好(一 block 一 block 地安装它)。但是,我希望对我的代码在工程意义上的工作更有信心。
对于这种情况,您会推荐什么样的方法/框架?
编辑:
我在 Tern, Inc. 制造的 ACore86 板上使用 AMD186 ES。编译器:Paradigm,免费版(随板提供)。不幸的是,我没有选择改变我正在做的事情。
最佳答案
在裸机环境中缺乏基础设施是相当具有挑战性的。我建议您专注于调试工具。即使非常小心和出色的方法,您也需要调试事物的能力。
你应该让 gdbagent 工作。您需要自己实现它,但它是一个简单的基于文本的协议(protocol)。您在外部机器上运行 gdb 并与目标上的 gdbagent 通信。
您当然可以通过串行端口运行 gdbagent 协议(protocol),但是当需要检查大量数据时,这很快就会变得乏味。如果您有更快的界面可用,请利用它。
我不知道你的预算是多少,但你也应该计划一个 JTAG 调试器。只要目标上的 gdbagent 能够运行,gdbagent 就很棒。如果一切都崩溃了,你就完蛋了。 JTAG 调试器非常昂贵,但可以租用。我用过Corelis过去的产品,我听说过 Abatron 的好消息.
关于embedded - 裸机系统的软件测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/188862/