我正在用C++为一个没有操作系统支持的嵌入式系统写一个项目;几乎没有库支持。非常裸机。因此,我的相当多的代码是紧密耦合的(例如,软件触发的中断和直接位于它们之上的层)。
我正在做的部分工作涉及更改串行端口配置,从而在PC端(UI端)和微处理器( activity端)上驱动并发更改。到目前为止,我在一个极其小心的增量类型开发中做得还不错(一件一件地适应它)。然而,我想对我的代码在工程意义上的工作更有信心。
对于这种情况,您会推荐哪种方法/框架?
编辑:
我在Tern公司制造的ACore86板上使用AMD186 ES。编译器:范例,免费版(随主板一起提供)。不幸的是,我没有选择改变我正在做的事情。
发布于 2008-10-09 19:58:56
在裸机环境中缺乏基础设施是相当具有挑战性的。我建议你专注于调试工具。即使非常小心和优秀的方法,你也需要调试东西的能力。
您应该让gdbagent正常工作。您需要自己实现它,但它是一个简单的基于文本的协议。您可以在外部计算机上运行gdb,并与目标计算机上的gdbagent通信。当然,您可以在串行端口上运行gdbagent协议,但是当需要检查大量数据时,这很快就会变得单调乏味。如果你有一个更快的接口,利用它。
我不知道你的预算是多少,但你也应该计划一个JTAG调试器。只要目标系统上的gdbagent能够运行,gdbagent就很好用。如果一切都崩溃了,你就完蛋了。JTAG调试器非常昂贵,但可以租用。我过去使用过Corelis产品,我听说过关于Abatron的好话。
发布于 2008-10-09 19:43:34
我认为你最好的办法就是和你的编译器供应商合作,得到一个设备模拟器。
泰西应该是用那个芯片工作的。查看:http://www.hitex.us/products.html?con_186.html~content
发布于 2008-10-13 19:58:57
当计时很重要时,我喜欢使用一个或两个空闲的I/O引脚和一个作用域一起来插装代码。我也非常喜欢使用JTAG端口进行源代码级的调试。您还可以让微处理器存储一个数据矢量,并通过第二个uart (如果您有一个uart)将其发送回PC进行分析。
https://stackoverflow.com/questions/188862
复制相似问题