学习嵌入式编程的最佳平台?

时间:2008-09-17 23:19:26

标签: embedded arm avr

我正在寻求学习嵌入式编程(主要是在C语言中,但我也希望能够提高我的ASM)并且我想知道最好的平台是什么。我有一些使用Atmel AVR和使用stk500编程的经验,发现相对容易。我特别喜欢AVR Studio和调试器,它可以让你查看寄存器的状态。

但是,如果我要花时间学习,我宁愿学习一些在工业中普遍存在的东西。我在想ARM,除非有人有更好的建议。

我也会寻找一些参考资料,我在ARM网站上找到了书籍部分,如果一本书技术上比另一本书更好,我会很感激。

我要寻找的最后一件事是原型/编程板,如STK500,它有一些按钮等等。

谢谢=]

21 个答案:

答案 0 :(得分:24)

“嵌入式编程”是一个非常广泛的术语。 AVR在这一类别中相当不错,但它比ARM低一步,因为它既简单易用,又功能强大。

如果您只想玩ARM,请购买Nintendo DS或Gameboy Advance。与内部的硬件(大规模生产的奇迹)相比,它们非常便宜,而且它们都有基于gcc的free development toolchains,可以编译给它们。

如果您想使用嵌入式Linux,BeagleBoard希望是一个不错的选择,只需150美元,而且它有很多功能。

我个人认为AVR最适合小型8位平台,而ARM最适合更大,更强大的32位平台。像许多AVR粉丝一样,我不喜欢PIC。它几乎在各方面都显得更糟。还要避免任何需要您编写任何类型BASIC的内容。

答案 1 :(得分:10)

如果您只是想玩它,我建议使用Arduino平台(http://www.arduino.cc)。它基于ATmega168或ATmega8,具体取决于版本。它使用类似C语言并拥有自己的IDE。

答案 2 :(得分:8)

我自己已经在嵌入式编程工作了9年,并且拥有TI MSP430,Atmel AVR(几种口味)的经验,很快就会使用ARM。

我的建议是在处理器中拾取具有一些额外功能的东西,如以太网控制器和CAN控制器,如果可以,甚至可以获得两个或三个。嵌入式设备很适合使用,但一旦他们可以通过CAN与其他类似设备通信或进入网络,他们就可以变得更有趣。

答案 3 :(得分:6)

TI MSP430是学习如何编程微控制器的绝佳平台。 TI有各种 FREE Tools 和一些cheap evaluation boards(起价20美元)。此外,它是一款低功耗,现代化的微控制器。

答案 4 :(得分:6)

ADI的Blackfin是另一种选择,因为它是一个非常简单的编程架构,但如果你选择沿着那条路走下去,也可以做一些相当沉重的DSP。汇编语言也很有用。

Blackfin STAMP电路板价格便宜(我最后检查过100美元),它们支持免费的GCC工具和uClinux。

无论你选择什么样的架构,我都建议先下载工具链\ SDK,然后查看示例项目和教程 - 通常会有一些玩法。通过仿真,您通常可以非常了解架构,甚至无需接触任何硬件。

答案 5 :(得分:6)

ARM拥有广泛使用的嵌入式平台中最好的指令集,让您可以自由地选择为嵌入式平台编写软件的一般原则,而不会陷入奇怪的细节,如非正交寄存器或分支延迟槽。有很多仿真器 - ARM自己的,但不是免费的,是周期精确的;各种基于ARM的可编程硬件价格便宜且易于获取。

答案 6 :(得分:2)

Arduino这些天似乎是初学者的首选平台,尽管还有很多其他人。我个人喜欢Olimex板,但它们并不适合初学者。

Microchip的PIC系列CPU也非常适合初学者,特别是如果你想用汇编程序编程的话。

BTW,汇编程序的使用率不如以往。嵌入式的一般规则是,如果你有4k或更多的内存,使用C.你可以获得可移植性,你可以更快地开发代码。

我想这取决于你的技术水平以及你想用芯片做什么。我通常选择可用外设使用哪种嵌入式芯片。如果你想要一个USB端口,找一个带内置USB的端口,如果你想要模拟到数字,找一个带ADC等。如果你有一个简单的应用程序,使用8位但如果你需要严重的数字嘎吱嘎吱地走了32位。

答案 7 :(得分:2)

我想建议TI的beagleboard。它上面有一个Omap3。这是一个Cortex-A8 ARM11 CPU,一个C64x + DSP和一个视频加速器。

该主板不需要昂贵的jtag设备。您只需使用串行电缆和SD卡即可开始使用。董事会成本仅为150美元,而且社区非常活跃。

www.beagleboard.org

答案 8 :(得分:2)

一个不错的选择是Microchip的PIC18

  • 互联网上有很多材料,文档,教程和项目

  • 免费的IDE和编译器。

  • 你可以在几分钟内拉出自己的flash刻录机。 (虽然为了使调试器工作,你需要更加努力地工作)

  • 如果您是学生(或拥有学生电子邮件地址),Microchip将向您发送免费样品芯片。所以基本上你可以拥有一个完全开发的环境,几乎没有。

  • PIC在业界非常普遍。特别是作为机器人的控制器出于某种原因,尽管他们可以做更多的事情。

答案 9 :(得分:1)

您的问题已在this question中得到解答。

除此之外,嵌入式处理器行业非常细分,它没有像Intel / x86这样的主要播放器用于“桌面”处理器行业。 ARM处理器确实拥有很大的份额,我相信MIPS也是如此,并且有许多更小的更具体的微控制器,如可用的芯片(如TI的MSP430等)。

至于文档,我为一天的工作进行嵌入式开发,我们可以访问的文档(作为软件开发人员)相当稀疏。您最好的选择是使用处理器制造商网站上提供的文档。

答案 10 :(得分:1)

查看Processing以及相关的Arduino和Wiring板。

答案 11 :(得分:1)

如果您只是想玩得开心,那就试试Parallax Propeller芯片吧。 HYDRA游戏平台看起来像一个爆炸。现在有一个100美元的C编译器。

我开始使用BASIC标记,通过SX芯片和PIC进入8051,然后是68332,各种DSP,FPGA软处理器等。

8051在现实世界中更有用......事情不会消失。他们有很多衍生品和疯狂的东西。 (只要远离DS80C400)能源行业绝对充满了它们。

从一些微小的东西开始。如果你有外部RAM和大量的寄存器......它和SBC有什么区别?

答案 12 :(得分:1)

很多以前我曾经使用过像68HC05和Z80这样的8位,后来的AVR和MSP430(16位)。然而,最近的项目是在ARM7上。一些制造商提供各种颜色和尺寸的ARM控制器(好吧,不是真正的颜色)。

ARM(7)正在取代8位架构:它的性能更高(32位RISC,指令周期比大多数8位更快),内存更多,可用于多种IO配置。 我使用的是NXP LPC2000控制器,这些控制器价格也很便宜(对于32位的用户来说只需1美元!)。

如果你在欧洲http://www.olimex.com/dev/index.html有一些不错的低成本开发板。也适用于世界其他地方: - )

答案 13 :(得分:0)

对于我的计算机体系结构课程,我必须同时使用PIC和AVR;在我看来,PIC更容易使用,但这可能是因为这是我们最常用的工作,我们有最多的时间习惯。我们使用AVR可能只有几次,所以我无法完美地掌握它,但它也没有过于复杂,或者至少没有比另一个更令人沮丧。

我认为您也可以从Microchip的网站订购微处理器样品,这样您也可以开始使用它?

答案 14 :(得分:0)

要测试一个有趣的项目,请查看xgamestation

但是对于更加工业化的单芯片解决方案编程,请查看PIC

答案 15 :(得分:0)

其次:

Arduino平台http://www.arduino.cc

HTH

答案 16 :(得分:0)

对于学习,你无法通过AVR。这些芯片价格便宜,它们只需零外部元件即可运行 - 它们还提供足够的电流来直接从端口驱动LED。

你可以从一个廉价的程序员开始,例如lady-ada的USBTinyISP(套件22美元),它可以通过USB端口为你的电路板供电。获得免费工具WinAVR(基于GCC)和AVRStudio,并立即开始一个小项目。

是的AVR有局限性 - 但为微控制器开发软件主要是管理资源和应对这些问题。当您为强大的ARM平台制作爱好者项目时,您不太可能遇到诸如堆栈空间,RAM或ROM耗尽等问题。

也就是说,ARM也是一个在业界广泛使用的优秀平台,但是,对于学习我强烈推荐AVR。

答案 17 :(得分:0)

我建议使用Microchip的PIC18F系列。我刚开始使用RealICE在线仿真器开发它们,但是pickit2是一个不错的调试器。您也可以为AVR说明这一点,但整个网络上的设备都有大量关注。由于所有与PIC相关的喋喋不休,我能够在几天内运行一个多功能的,功能性的嵌入式USB设备。

我唯一不喜欢PIC的是,许多示例代码都非常紧密地融入了演示板。这可能会使您难以撕掉您需要的部分,并且仍然有一个将为您的应用程序构建和运行的应用程序。

答案 18 :(得分:0)

德州仪器以极低的价格发布了一款非常有趣的开发套件:eZ430-Chronos Development Tool包含带有显示器的MSP430和运动手表中的各种传感器,包括usb调试编程器和usb无线电接入点{{ 3}}

还有for 50$个很多很多信息。

我已经a wiki containing用于eZ430-Chronos Kit。

答案 19 :(得分:0)

您应该尝试学习Embedded Artists提供的开发工具包。获得该套件后,请查看恩智浦提供的教学视频和视频,这些视频和视频并非尽可能详细,但它们涵盖了很多内容。学习ARM作为您的第一个架构并尝试做一些实用的问题是:

  • 你需要购买开发。试剂盒中。
  • 你需要一个好的book来学习ARM程序集,因为迟早你会遇到ARM启动代码,这对初学者来说是一笔不小的交易。我提到的这本书也涵盖了一些C编程。
  • 将上述书籍与您的特定处理器(如this one)的用户指南结合使用。确保你得到这个,因为结合上述书学习这是学习你的ARM proc的唯一方法。详细地。
  • 如果要从ARM程序集转换到C编程,则需要阅读此book,其中涵盖了不同的ARM处理器,但对于C初学者来说更容易。缺点是它没有解释任何ARM组件,但这就是你需要第一本书的原因。

没有简单的方法。

答案 20 :(得分:0)

mikroElektronika有很好的ARM boards 和C,Pascal和Basic compilers ,可能满足您的需求。