嵌入式编程开发板推荐

9
Possible Duplicate: 学习嵌入式C/C++开发的最佳评估套件是什么? 我是一名电子和软件专业的学生,想要进入嵌入式设备领域。目前只是个人兴趣,不是职业选择。
我在C/C++方面有一些经验(主要是C++)。我是一名有经验的Linux用户。我有一个Arduino,但我不喜欢它,因为它由Java层构建而成。有一些方法可以上传C代码到设备上,我已经这样做了。
然而,现在我有点困惑。我看到了带有调试器和编程设备的开发套件。我不知道这些用于什么=> 我需要关于这些的信息。还有很多开发套件似乎提供各种功能。一些带有软件(MPLab在PIC上)例如编译器和IDE,使生活更轻松。
我搜索了书籍和信息,但大多数书籍都侧重于我找不到(或花费500美元)的某些处理器。其他人则会花费大量时间教授C语言(我已经知道C语言)。
我有一种感觉,从ARM处理器开始会是最好的选择。我不确定这是否是最好的处理器,但它们似乎具有许多功能,并且现在非常流行。它们还具有显着的吞吐量(我知道它们也消耗更多的电力)。对此有任何建议吗?
我看过这个: http://uk.rs-online.com/web/c/semiconductors/development-kits/microcontroller-processor/ 欢迎推荐书籍。正如我所说,我看过一些关于PIC(主要)的书籍http://www.amazon.co.uk/s/ref=nb_sb_noss_1?url=search-alias%3Daps&field-keywords=embedded+systems&x=0&y=0 我找到了一本关于ARM的好书,但我不确定它是否适合新手学习嵌入式开发。我认为它可能适合有嵌入式经验但是新手学ARM。

谢谢,希望这不是重复的


一个可能的选择是任何带有Broadcom芯片组和USB端口的廉价路由器。例如,您可以购买翻新后约60美元的Linksys E3000。它们具有大量的RAM、闪存、WiFi、以太网和USB。它们可以运行Linux。 - David Schwartz
2
我非常确定没有Arduino工具将Java翻译成C。IDE本身是用Java编写的,但这并不意味着你在使用它时正在编写Java代码。Arduino IDE提供了一个带有一些微不足道的包装器代码的C++环境。 - Greg Hewgill
你越能避免使用调试器,你就会越开心。 - Ignacio Vazquez-Abrams
一款Linksys E3000路由器的价格几乎与一个开发板相当。而且它可能会有限的文档,无法用于编程。 - s5s
1
请不要投票关闭此贴,链接的帖子已经有3年了。自那时以来,已经发布了数千个更新更好的MCU,因此开发套件可能也是如此。 - Lundin
显示剩余4条评论
5个回答

2
如果你已经了解了C或C++,并且想要尝试嵌入式开发,那么我建议你避开Arduino,因为与新的微控制器(特别是ARM Cortex设备)相比,它的性价比很差。虽然Arduino有一个很好的生态系统和易于使用的工具链,但如果你不怕亲自动手、使用一些不太友好的工具,选择一个ARM设备将会更好地体验嵌入式开发。
目前我认为最好的交易是来自STMicroelectronics的STM32F4Discovery。它们大约20美元,有C SDK和工具链,是一个真正强大的部件,您可以用它来设计嵌入式设备。有很多外围设备和CPU(就其而言),Cortex M4内核对于微控制器来说几乎是最先进的。这个板子唯一的缺点是没有小型LCD显示屏,但那些有的开发套件往往超过50美元(虽然如果你想要这样的东西,TI / Stellaris Cortex M3 kits 也相当不错。您应该能够找到足够的资源,在Linux上设置arm-eabi-gcc和OpenOCD(用于程序加载/调试)。
树莓派听起来很快就有机会拥有这个领域,虽然我认为它可能是一个更加软件驱动的环境,因为它是一个完整的Linux系统,虽然它有外设头,但根据您想要做什么,使用RPi原型制作一个简单的嵌入式系统可能会比MCU套件更加困难。BeagleBoard或PandaBoard也是同样的情况,它们是不同类别的系统,如果您只想学习一些电子知识并原型制作一两个想法,实际上可能比您想要的更加复杂。不幸的是,目前树莓派的可用性在极度有限和即将到来之间徘徊,所以如果您想要立即下单,它实际上不是一个可行的选择。

谢谢你的回答,非常有用。说实话,我一直在看一些基于ARM的开发板,但它们似乎都带有预装的嵌入式系统。对我来说,编程这些板子更像是在PC上编写软件,因为它们在功能上类似于PC。 - s5s
1
Cortex M3或M4开发板本身不应该带有操作系统。ST和TI的芯片提供了外设的C用户库,但是对于系统软件来说,你需要提供中断服务例程和主函数,因此它相当基础。我曾在TI/Stellaris开发板上运行过FreeRTOS,所以如果你想走这条路线,也有选择,但一开始会比较基础。 - Suboptimus

1

Neuros OSD相当不错。你可以以他们的售价购买到Neuros OSD设备,整个软件堆栈都是开源代码,你可以自由地进行开发。他们有一个不错的维基风格文档和GNU工具链。如果我没记错的话,它是基于ARM架构的。

我能够在几小时内启动它并开始编写代码。你可能需要一个RS232转换器电缆 - 给他们发送一封电子邮件,如果你在eBay上找不到任何东西,他们会给你寄送一个。


1

树莓派是新晋的明星。它专门为学习而开发,运行Linux系统,是一台完全能够胜任的计算机 - 无需交叉编译。在短期内可能很难得到。


是的,在提出这个问题之前,我刚学习了这个。Pandaboard 似乎也不错,但价格为182美元。我可以以35美元的价格购买树莓派,而且它的速度足够快。 - s5s
它还具有GPIO,这在小型微型计算机级系统中非常有用。 - Ignacio Vazquez-Abrams

0

在AVR上使用直接的C和汇编没有问题,甚至不需要安装基于Java的沙盒,更不用使用它。这取决于你想要什么样的体验,如果你想在一个环境中编写应用程序,那么它是完美的;如果你想学习嵌入式系统,那么就写嵌入式系统。但是,你得到的价格是一个问题。

stm32f4 discovery大约20美元,令人惊讶的是他们将多少东西打包到cortex-m4中。stm32 value line discovery几乎只有一半的价格,也不错,但我会选择stm32f4。

mbed系列还可以,cortex-m0更容易变砖(好吧,你可以用一根小电线和一些焊锡来恢复)。非常容易使用,如果你不想使用他们的沙盒,也不需要。

你可以尝试使用amber_samples repo/simulator。你可以获得ARM汇编和C嵌入式经验,而不花一分钱。amber处理器是arm2的克隆版,是ARM处理器的前身。与现代ARM处理器相比,只有一些差异,而这些差异是可以避免的。thumbulator模拟器模拟了thumb指令集,你可以在cortex-m微控制器中找到它。

还有许多其他模拟器,skyeye、gdb都有ARM模拟器。

虽然它不是ARM,但你只需要花费5美元就可以获得一个带有几个不同微控制器的MSP430 Launchpad板。易于使用,支持C/ASM语言,指令集也相当不错。


0

关于调试器的问题,你需要一种加载程序并进行调试的方式。由于微控制器通常不带键盘和显示器,因此您必须从主机系统中进行操作。由于您正在编写最低级别的代码,因此不能依赖以太网甚至RS232,因为这些需要在微控制器上的软件中设置后才能使用。

这就是调试器的作用。新型调试器使用USB连接到计算机,并通过JTAG接口(或其较新的替代品)直接连接到微控制器。调试器允许您将代码直接加载到微控制器的嵌入式闪存中,并控制其执行,以便您可以从主机进行调试(单步执行、断点、内存检查等)。

调试器通常是与完全空的微控制器通信的唯一方式。然后,您可以编程引导加载程序,并让它启动替代接口,从中可以接收要运行的应用程序。

总之,调试器是嵌入式开发的必备工具。没有它,你将无法迈出第一步。许多完整的开发套件都配有自己的调试器,但也可以单独购买。我目前正在使用 Olimex ARM-USB-OCD-H,通过 Windows7 上的 Eclipse 编程一个带有 STM ARM-Cortex-M3 芯片的自定义板。Olimex 可能不是最好的调试器,但价格便宜,并且通过开源软件(比如另一个答案中提到的 OpenOCD)有很好的支持——OpenOCD 是用于与调试器通信的软件,用于将其接口到 Eclipse 的调试工具。

还要再给大家一些建议,开始时,最好获取包括板、调试器/编程电缆和 IDE 在内的开发套件。这将为您提供开始所需的一切,比起自行设置编译器/Makefile/调试环境/启动代码等等(虽然有人可能会认为通过手动完成这些任务可以了解它们如何相互配合,但对于初学者来说,这通常不是他们想做或应该做的事情)要容易得多。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接