我刚开始学习微控制器编程,似乎在入门时遇到了很多麻烦,特别是仿真部分。
这是一个我需要编程的应用程序:我需要在闪存芯片中存储几个wave文件,并使用Cortex-M0从闪存中读取音乐,并组合播放它们,或者对它们运行一些基本的信号处理。
我正在寻找一个IDE,支持端到端的模拟这一点。我查看了CoIDE (因为如果我在google上搜索免费的cortex IDE,这是第一个出现的),在Cortex安顿下来之前,我也查看了MPLAB,但我看不到任何一个支持闪存芯片模拟的工具。我似乎能够正确地模拟芯片,但我看不到一种方法来建立一个虚拟闪存芯片。
我错过了什么吗?非常感谢。
发布于 2013-02-18 15:41:55
首先- MPLAB是Microchip产品的集成开发环境,而Microchip没有任何ARM芯片,所以这个IDE对你没有任何帮助。
至于CooCox -这个集成开发环境基本上是Eclipse +CooCox工具链,据我所知,网络上可用的大多数工具链都没有启用模拟器,即使它们启用了,这也只是一个指令模拟器(可能不适用于您的体系结构,但我不确定这一点),所以您不妨在PC上编写软件,在那里进行测试,然后将其转移到真正的硬件上-算法将真正工作相同(如果您使用可移植代码,因此在64位桌面上使用"int“不是一个好主意,最好使用来自所有东西的类型)。
只有像IAR或Keil这样的大型商业IDE和工具链可能会为你的芯片提供模拟器(但这也可能是有问题的,因为它们是相当新的),你只需要几千欧元,仅此而已。
我的建议是,在做嵌入式工作的时候,就忘了模拟器吧。
出现这种情况的原因可能很简单--不可能精确地模拟真实的硬件。要实现这样的东西,你首先必须有一个完整的设备IP核,以及芯片内所有连接和外围设备的确切VHDL (或类似的东西)描述。我只是没有看到所有的供应商提供这样的信息给任何愿意创建IDE的公司(;那么你就需要一个用于VHDL (或其他任何东西)的实时模拟器,能够模拟具有许多外围设备的真正大的芯片。这可能是可能的,所以让我们转到另一个点。在现实世界中,芯片并不是在真空中工作,它连接到具有真实现象和真实信号的真实硬件。你只是不能准确地模拟这一点。一个简单的按钮可以根据数百万个条件(年龄、力、温度、湿度、轨迹长度、大小、PCB质量、组装质量等)以数百万种不同的方式工作。
你的项目就是上面列出的问题的一个很好的例子。您可能会找到ARM Cortex-M0芯片的模拟器,但无法模拟连接到微控制器的外部闪存芯片。你最好停止寻找,因为我向你保证,你不会找到任何这样的东西。顺便说一句,你的芯片没有外部存储器总线,所以你必须完全在软件中操作存储器(外部存储器的内容不会被映射到芯片的某个地址范围)。
所以最后要注意的是--没有模拟器不是问题--你有一个调试器(它能够做一些你可以用模拟器做的事情),你有多种类似调试的方法(闪烁的LED,printfs(),...),你有硬件工具来检查系统(万用表,示波器,逻辑分析仪,...),所以它不是那么糟糕(;
关于CooCox还有一件事。对我来说,这个想法有点可疑--它是免费的,它基于免费的组件,那么为什么它不是开源的(有些地方声称它是开源的,那么它的源代码在哪里)?在过去,还有其他类似的“免费”环境,事实证明,“免费”意味着“让我们使用免费的beta测试人员一段时间”,当项目达到一定的成熟度时,它就变成了商业项目,或者在免费版本中受到严重限制……Atollic被认为是这种策略的一个很好的例子(当它是免费的时候,人们喜欢它-每个人都推荐它-“不用担心GCC,使用atollic,它是免费的,没有限制”)。我不知道CooCox的未来会是什么样子,但这个软件有时有点奇怪,有时是一个大错误,并不支持所有的芯片,所以首先检查它是否“喜欢”你选择的芯片。哦--这是由来自中国的人做的。
嵌入式工作可能看起来非常像为PC编写代码,但实际上是你认为的一种很大的转变……
https://stackoverflow.com/questions/14928198
复制相似问题