学习嵌入式C / C ++开发的最佳评估套件是什么?

我正在尝试改进我在ARM体系结构上的嵌入式C / C ++开发。 我最近从68K开发转向ARM,并希望利用我的业余时间深入挖掘平台并学习最佳实践,尤其是开发移动平台。

优选地,32位架构将有助于支持开发工具。 学习过程中的一些乐趣可以增强我对平台的理解

ST Micro为基于ARM Cortex-M3的STM32产品线提供了极具吸引力的(并且也是封装的)套件。 STM32-PRIMER的 MSRP运行约35美元,128×128彩色LCD,MEMS加速度计,按钮,LED,USB和一些备用GPIO,所有这些都包含电池和USB到JTAG调试连接。 GCC工具链和商业调试器也应该随附。 我有一个订单,并会尝试记住编辑此答案,以便在下周某个时间到达之后进行快速审核。

他们有一个基于STM32的新型号,芯片上有更多的FLASH和RAM,还有一个micro-SD卡连接器,还有一个更大的LCD,包括一个电阻式触摸屏,只要你有现货就可以买到100美元以上。

Luminary Micro还有许多廉价的演示/评估板套件。 eLua项目背后的人(在SoC和MCU规模设备中运行的完整Lua编程环境)似乎喜欢Luminary Micro产品系列,但我没有他们的个人经验。

看起来Arduino平台正在做很多有趣的事情。

基本的答案实际上是“你能负担得起的任何能让你建立有趣的东西”,Arduino似乎符合要求。

由于您希望开发移动平台, Beagle Board可能适合您。

STM32 / Cortex M3提到的另一张海报更深入嵌入,它更适合中等复杂的控制应用。

Arduino使用AVR控制器,而不是ARM,并且更接近低端(低端是PIC)。

我认为在开始嵌入式工作之前你需要有一个特定的目的。 我的意思是嵌入式工作往往有专门的硬件,试图实现通用计算机目前无法填充的利基(或使用太昂贵)。

如果您要购买一些嵌入式硬件,您最终会在某种控制台环境(telnet或某种UART或通过JTAG或USB)中运行“hello world”应用程序但是那么呢? 为什么要杀死你自己以启动/驱动程序等运行“你好世界”?


我正在研究的一个特定目的是软件定义无线电。 你可能想在嵌入式设备上尝试在代码中实现一个简单的FM或AM无线电,因为这会给你一个特定的目标,让它工作真的很有趣(并且有理由为了让嵌入式系统保持活力而自杀!)

没有什么比将某些先前死去的空白硬件带入活动状态,并从main()函数一直看到它有用的东西(如FM或AM收音机)。

请注意,软件定义的无线电硬件将比预期花费更多……

假设您对嵌入式开发感兴趣:

我喜欢通过sparkfun.com销售的olimex板和非olimex板。 sam7,lpc等
stellaris板也非常好。
只需获得一个老游戏进程和超级卡sd,或者使用带有r4ds或cyclods的nds,你就可以获得很多满足感和乐趣。 对于初学者来说,nds更加痛苦,入门成本比gba高三到四倍。 gba mini或sp有一个背光,你几乎可以立即欣赏到未点亮的原始gba。 使用gba(或者nds)你可以用像vba这样的模拟器弄湿你的脚,而不必购买任何东西。 发光微电脑是一个很好的开始,有一个漂亮的显示屏和一些其他车载小工具。 小心811板,因为它很容易砖,因为端口上有一个带有引脚的jtag引脚,您将要用作通用I / O. 另一方面,他们对车载外围设备的驱动程序变得吝啬,试图销售经验而不是嵌入式体验的操作系统。

如果你只想在操作系统上编写应用程序:beagleboard或embeddedarm或qemu-arm,它与为任何其他基于Linux的机器编写应用程序没什么不同,所以arm因素真的不存在。

Gumstix平台一直给我留下深刻印象。 它是一个运行Linux的“强大”平台,但它们有各种各样的软件包,起价150美元,但也有大量已发布的how-tos /用户项目 。 我使用的是uCLinux的风格,因此它对于新用户来说是一个温和容易的过渡路径。

http://www.embeddedarm.com – TS-7800

这是一个提供pc / 104堆栈的好平台。 大约200美元,你可以做很多事情,并学习很多关于他们的硬件(UART,ADC等),你可以通过104堆栈增加你的学习经验。