微控制器和闪存芯片编程开发和仿真

时间:2013-02-18 01:26:06

标签: embedded emulation microcontroller simulator flash-memory

我刚刚开始学习微控制器编程,我似乎在开始时遇到了很多麻烦,特别是模拟部分。

这是我需要编程的应用程序:我需要在闪存芯片中存储一些波形文件,并使用Cortex-M0从闪存中读取音乐,并组合播放或运行一些基本的信号处理。

我正在寻找支持端到端仿真的IDE。我看了CoIDE(因为如果我是第一次出现的谷歌免费皮质IDE),并且在安排到Cortex之前我也看过MPLAB,但我没有看到任何支持闪存芯片的模拟。我似乎能够正确地模拟芯片,但我没有看到构建虚拟闪存芯片的方法。

我错过了什么吗?非常感谢。

1 个答案:

答案 0 :(得分:2)

首先--MPLAB是Microchip产品的IDE,Microchip没有任何ARM芯片,所以这个IDE根本不会帮助你。

至于CooCox - 这个IDE基本上是Eclipse + GCC工具链,据我所知,网络上大多数工具链都不启用模拟器,即使他们这样做,这只是一个指令模拟器(可能不是你的架构,但我不确定那个),所以你也可以在PC上编写你的软件,在那里进行测试,然后将其转移到真正的硬件 - 算法将真的有效(如果你使用便携式代码,所以在64位桌面上使用“int”并不是一个好主意,最好从所有内容中使用类型。

只有像IAR或Keil这样的大型商业IDE和工具链可能会为你的芯片设置一个模拟器(但这也可能有问题,因为这些都很新),你只需要几千欧元就可以了。

我的建议 - 在进行嵌入式工作时忘记模拟器。

出现这种情况的原因可能很简单 - 无法准确模拟真实硬件。为了实现这一点,您首先必须拥有设备的完整IP内核,以及芯片内所有连接和外设的精确VHDL(或类似内容)描述。我只是没有看到所有供应商都向任何愿意创建IDE的公司提供此类信息(然后您需要VHDL(或其他任何)的实时模拟器,能够模拟具有大量外设的真正大芯片)这可能是可能的,所以让我们转向另一个点。在现实世界中,芯片不是在真空中运行,而是连接到具有真实现象和真实信号的真实硬件。你无法准确地模拟它。简单的按钮根据数百万条件(年龄,力,温度,湿度,迹线长度,尺寸,PCB质量,装配质量......),可以以数百万种不同的方式运行。

您的项目是上面列出的问题的一个很好的例子。您可能会找到ARM Cortex-M0芯片的模拟器,但您将无法模拟连接到微控制器的外部闪存芯片。你也可以停止寻找,因为我向你保证你找不到那样的东西。 BTW - 你的芯片没有外部存储器总线,所以你必须用软件完全操作存储器(外部存储器的内容不会映射到芯片的某个地址范围)。

所以最后一点 - 缺少模拟器不是问题 - 你有一个调试器(你可以使用模拟器的一些东西),你有多个类似调试的方法(闪烁的LED,printfs() ,...),你有h / w工具来检查系统(万用表,示波器,逻辑分析仪......),所以它并不坏(;

CooCox还有一件事。对我来说,这个想法有点可疑 - 它是免费的,它是基于免费组件,所以为什么它不是开源的(有些地方声称它是,所以来源)?过去还有其他类似的“自由”环境,结果是“免费”意味着“让我们暂时使用免费的beta测试人员”,当项目达到某种程度的成熟度时,它就变得商业化或严重限制了免费版本... Atollic TrueStudio作为这个策略的一个很好的例子浮现在脑海中(人们在它免费时喜欢它 - 每个人都推荐它 - “不要打扰GCC,使用atollic,它是免费的,没有任何限制”) 。我不知道CooCox的未来会是怎样的,但是这个软件有时候有点奇怪,有时是一个很大的bug并且不支持所有芯片,所以首先要检查它是否“喜欢”你选择的芯片。哦 - 这是由来自中国的人完成的。

嵌入式工作看起来非常像为PC编写代码,但实际上是你想象的一个重大转变......