3

我想为以下微控制器板创建/启动模拟器:http ://www.sparkfun.com/commerce/product_info.php?products_id=707#

固件是用汇编编写的,所以我正在寻找一些关于如何模拟硬件将接收的输入然后模拟器将响应固件的输出的指针。(这也需要在模拟环境中运行固件)。

关于如何开始的任何指示?

谢谢克里斯

4

6 回答 6

2

您必须编写一个 PIC 模拟器,然后模拟端口的 IO 功能。

老实说,它看起来像是作为开发工具包设计的——如果你小心的话,我不会担心你的代码会破坏设备。除非这是企业软件包的亚军,否则我会严重质疑编写 sim 的投资回报率。

于 2009-01-15T21:31:44.063 回答
2

编写一个完整的模拟器将是一个真正的挑战。我之前尝试过写一个ARM模拟器,告诉你,这不是一个小项目。你要么必须模拟整个 CPU 内核,要么找到一个已经编写好的内核。

您还需要弄清楚所有 IO 是如何工作的。sparkfun 可能有关于该板的文档,但如果它使用 MMIO 等,则需要编写内存管理器。

实际上,模拟器的概念与解释器并没有那么远。您需要解释固件代码,并基本上按照说明进行操作。

我会推荐一个好的交互式调试器而不是处理模拟器。破坏硬件的可能性很低,但实际上,您是宁愿买一块新板还是花 9 个月写一些不能实现整个系统的东西?

PIC 18F2520 很可能已经为它编写了一个仿真器内核,但您需要深入研究所有硬件规格以查看所有 IO 是如何映射的。如果您愿意,这将是一个很好的项目,但我会考虑只使用远程调试器。

于 2009-01-15T21:33:07.633 回答
2

制作模拟器/模拟器有什么特别的原因,而不是只使用真实的东西吗?

板子不贵;Microchip 现在拥有 RealICE 调试器,它比旧的 ICD2“冰球”响应速度快得多。

Microchip 的 MPLAB已经有一个内置的模拟器。它不会为您模拟整个电路板,但它会处理 18F2520。您可以使用输入测试向量和日志输出文件,我之前用不同的 Microchip IC 做过这个,它是可行的,但有点麻烦。我建议您采用单元测试方法并模块化您做事的方式;找出系统可管理部分的测试输入和预期输出。

于 2009-01-15T21:57:50.720 回答
2

PIC 18F2520 很可能已经为它编写了一个仿真器内核,

一个开源的、跨平台的微芯片/PIC 模拟器以“ gpsim ”的名义提供。

于 2009-03-13T21:38:01.090 回答
1

代码中的错误极不可能损坏物理电路。如果这是可能的,那么它要么是电路板设计中的错误,要么应该非常清楚地记录在案。

如果我可以根据多年使用这些设备的经验向您提供一个建议:不要在组装中对它们进行编程。你会发疯的。使用 C 或 BASIC 或一些更高级别的语言。Microchip 为他们的大多数芯片生产了一个 C 编译器(不知道这个),其他公司也生产它们。

如果您坚持使用仿真器,我很确定 Microchip 几乎为他们的每一个微控制器都制作了一个仿真器(每个产品线至少一个,这可能已经足够好了)。这些模拟器并不总是便宜的,我不确定它们接受复杂外部输入的能力。

如果您仍然想尝试自己编写,我想您会发现模拟 PIC 本身将相当简单——所有操作码的格式都有很好的文档记录,内存架构等也是如此。它将被模拟板上的其他设备以及它们之间的互连会杀死您。您可能想研究使用 VHDL 工具对组件之间的互连进行编码,该工具将允许您为不同的组件创建自定义仿真。

于 2009-01-15T21:49:11.720 回答
1

这不是硬件在环模拟器问题吗?(例如http://www.embedded.com/15201692

于 2009-01-15T22:23:03.400 回答