首先 - MPLAB 是 Microchip 产品的 IDE,而 Microchip 没有任何 ARM 芯片,所以这个 IDE 根本帮不了你。
至于 CooCox - 这个 IDE 基本上是 Eclipse + GCC 工具链,据我所知,网络上可用的大多数工具链都不启用模拟器,即使它们启用了,这也只是一个指令模拟器(可能不适合你的架构,但我不确定),所以你也可以在 PC 上编写你的软件,在那里测试它,然后将它移动到真正的硬件 - 算法真的会工作相同(如果你使用可移植代码,所以在 64 位桌面上使用“int”不是一个好主意,最好对所有内容都使用类型)。
只有像 IAR 或 Keil 这样的大型商业 IDE 和工具链可能为您的芯片提供模拟器(但这也可能有问题,因为这些都是相当新的),您只需要几千欧元就可以了。
我的建议 - 在进行嵌入式工作时忘记模拟器。
出现这种情况的原因可能很简单——不可能准确地模拟真实的硬件。要实现这样的目标,您首先必须拥有设备的完整 IP 内核,以及芯片内所有连接和外围设备的准确 VHDL(或类似的东西)描述。我只是没有看到所有供应商都将此类信息提供给任何愿意创建 IDE 的公司(;然后您需要一个用于 VHDL(或其他任何东西)的实时模拟器,能够模拟具有大量外围设备的非常大的芯片. 这可能是可能的,所以让我们转移到另一点。在现实世界中,芯片不是在真空中运行,它连接到具有真实现象和真实信号的真实硬件。你无法准确地模拟它。一个简单的按钮根据数百万种条件(年龄、力、温度、湿度、走线长度、尺寸、PCB 质量、组装质量……),可以以数百万种不同的方式运行。
您的项目是上述问题的一个很好的例子。您可能会找到 ARM Cortex-M0 芯片的模拟器,但无法模拟连接到微控制器的外部闪存芯片。你不妨停止寻找,因为我向你保证,你不会找到类似的东西。顺便说一句 - 您的芯片没有外部存储器总线,因此您必须完全在软件中操作存储器(外部存储器的内容不会映射到您芯片的某个地址范围)。
最后一点 - 缺少模拟器不是问题 - 你有一个调试器(它可以做一些你可以使用模拟器的事情),你有多种类似调试的方法(闪烁的 LED,printfs() , ...),你有硬件工具来检查系统(万用表,示波器,逻辑分析仪,...),所以还不错(;
关于 CooCox 的另一件事。对我来说,这个想法有点可疑——它是免费的,它基于免费组件,那么为什么它不是开源的(有些地方声称它是开源的,那么源代码在哪里)?过去还有其他类似的“免费”环境,结果证明“免费”意味着“让我们暂时使用免费的 beta 测试人员”,当项目达到一定程度的成熟度时,它就变得商业化或在免费版本... Atollic TrueStudio 是这种策略的一个很好的例子(人们喜欢它免费的时候 - 每个人都推荐它 - “不要打扰 GCC,使用 atollic,它是免费的并且没有限制”) .不知道CooCox的未来会是什么样子,但是这个软件有时候有点奇怪,有时候bug很大,而且不支持所有芯片,所以先看看它是否“喜欢”你选择的芯片。哦——而且是中国人做的。
嵌入式工作可能看起来很像为 PC 编写代码,但实际上在您认为的方式上是一个很大的转变......