24

我正在寻找学习嵌入式编程(主要是 C,但我也希望复习我的 ASM),我想知道最好的平台是什么。我在使用 Atmel AVR 并使用 stk500 对其进行编程方面有一些经验,并且发现这相对容易。我特别喜欢 AVR Studio 和可让您查看寄存器状态的调试器。

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

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

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

谢谢=]

4

21 回答 21

25

“嵌入式编程”是一个非常广泛的术语。AVR 在该类别中表现不错,但它比 ARM 低了一步,因为它使用起来更简单,功能也更弱。

如果您只想玩 ARM,请购买 Nintendo DS 或 Gameboy Advance。与内部硬件(大规模生产的奇迹)相比,它们非常便宜,并且它们都有基于 gcc 的免费开发工具链,可以编译到它们。

如果你想玩嵌入式 linux,BeagleBoard是个不错的选择,只需 150 美元,而且它有很多功能。

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

于 2008-09-17T23:27:53.060 回答
10

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

于 2008-09-17T23:26:10.583 回答
8

我自己在嵌入式编程领域工作了 9 年,在 TI MSP430、Atmel AVR(几种口味)方面有经验,很快就会使用 ARM。

我的建议是在处理器中选择具有一些额外功能的东西,例如以太网控制器和 CAN 控制器,如果可以的话,甚至可以购买两个或三个。嵌入式设备很好用,但是一旦它们可以通过 CAN 与其他类似设备通信或连接到网络,它们就会变得更有趣。

于 2008-11-07T14:06:17.440 回答
7

ADI 的Blackfin是另一种选择,因为它是一种非常简单的编程架构,但如果您选择走这条路线,也可以做一些相当重要的 DSP 工作。汇编语言也很理智,这也很有帮助。

Blackfin STAMP板价格便宜(我上次检查时约为 100 美元),它们支持免费的 GCC 工具和 uClinux。

无论您选择哪种架构,我都绝对建议您首先下载工具链\SDK 并查看示例项目和教程——通常有一点玩。您通常可以通过仿真对架构非常熟悉,甚至无需接触任何硬件。

于 2008-09-18T00:24:45.577 回答
6

ARM 拥有广泛使用的嵌入式平台中最好的指令集,让您可以自由地学习为嵌入式平台编写软件的一般原则,而不会陷入诸如非正交寄存器或分支延迟槽之类的奇怪细节中。有很多仿真器——ARM 自己的,虽然不是免费的,但是是周期精确的;种类繁多的基于 ARM 的可编程硬件既便宜又容易获得。

于 2008-09-17T23:30:06.533 回答
6

TI MSP430是学习如何编程微控制器的绝佳平台。TI 有多种免费工具和一些便宜的评估板(起价 20 美元)。此外,它是一款低功耗的现代微控制器。

于 2008-09-18T00:44:47.790 回答
2

一个不错的选择是 Microchip 的 PIC18

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

  • 免费的 IDE 和编译器。

  • 您可以在几分钟内拉出自己的 Flash 编写器。(尽管要使调试器工作,您需要更加努力)

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

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

于 2008-09-17T23:27:26.510 回答
2

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

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

顺便说一句,Assembler 的使用没有以前那么多了。嵌入式的一般规则是,如果您有 4k 或更多的内存,请使用 C。您可以获得可移植性,并且可以更快地开发代码。

我想这取决于你的技能水平和你想用芯片做什么。我通常选择可用的外围设备使用哪个嵌入式芯片。如果你想要一个 USB 端口,找一个内置 USB 的,如果你想要模拟到数字的,找一个带有 ADC 等的。如果你有一个简单的应用程序,使用 8 位,但如果你需要认真的数字嘎吱嘎吱,去32位。

于 2008-09-17T23:31:57.483 回答
2

我想推荐 TI 的 beagleboard。它上面有一个Omap3。那是一个 Cortex-A8 ARM11 CPU、一个 C64x+ DSP 和一个视频加速器。

该板不需要昂贵的 jtag 设备。只需一根串行电缆和一张 SD 卡即可开始使用。董事会只需 150 美元,社区非常活跃。

www.beagleboard.org

于 2008-09-18T13:37:18.603 回答
1

你的问题已经在这个问题中得到了回答。

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

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

于 2008-09-17T23:31:21.120 回答
1

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

于 2008-09-18T00:13:28.973 回答
1

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

我从 BASIC 邮票开始,通过 SX 芯片和 PIC 向上移动到 8051,然后是 68332,各种 DSP,FPGA 软处理器等。

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

从微小的东西开始。如果您有外部 RAM 和大量寄存器……那和 SBC 有什么区别?

于 2008-09-19T18:43:08.930 回答
1

很多个月前,我使用过 68HC05 和 Z80 等 8 位处理器,以及后来的 AVR 和 MSP430(16 位)。然而,最近的项目都在 ARM7 上。几家制造商提供各种颜色和尺寸的 ARM 控制器(嗯,不是真的颜色)。

ARM(7) 正在取代 8 位架构:它的性能更高(32 位 RISC 的指令周期比大多数 8 位更快),具有更多内存并且可用于多种 IO 配置。我使用 NXP LPC2000 控制器,它们也很便宜(< 1 美元 32 位!)。

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

于 2009-02-13T21:42:51.927 回答
0

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

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

于 2008-09-17T23:24:59.480 回答
0

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

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

于 2008-09-17T23:34:38.147 回答
0

二是:

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

高温高压

于 2008-10-25T13:09:30.527 回答
0

为了学习,你不能越过 AVR。这些芯片很便宜,而且它们可以使用零外部组件运行——它们还提供足够的电流来直接从端口驱动 LED。

你可以从一个便宜的编程器开始,比如lady-ada的USBTinyISP(一套22美元),它可以从USB端口为你的电路板供电5V。获取免费工具 WinAVR(基于 GCC)和 AVRStudio,并立即启动一个小型项目。

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

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

于 2009-04-08T07:04:28.017 回答
0

我建议 Microchip 的 PIC18F 系列。我刚开始使用 RealICE 在线仿真器为他们开发,但 pickit2 是一个物美价廉的调试器。您也可以对 AVR 这么说,但该设备在整个网络上都有大量的追随者。由于所有与 PIC 相关的喋喋不休,我能够在几天内运行一个有缺陷但功能齐全的嵌入式 USB 设备。

我唯一不喜欢 PIC 的地方是很多示例代码与演示板紧密相连。这会使您很难删除您需要的部分,并且仍然有一个可以为您的应用程序构建和运行的应用程序。

于 2010-01-25T23:43:32.520 回答
0

德州仪器 (TI) 以非常低的价格发布了一个非常有趣的开发套件:eZ430-Chronos 开发工具包含一个 MSP430,带有显示屏和运动手表中的各种传感器,包括一个 USB 调试编程器和一个 USB 无线电接入点,售价 50 美元

还有一个包含大量信息的wiki。

我已经为 eZ430-Chronos 套件创建了一个 stackexchange 提案

于 2010-07-14T11:57:06.247 回答
0

您应该尝试从Embedded Artists提供的开发人员工具包中学习。拿到套件后,查看他们的教学视频和 NXP 提供的视频,虽然没有说的那么详细,但涵盖了很多内容。学习 ARM 作为你的第一个架构并尝试做一些实际的事情的问题是:

  • 你需要购买开发。成套工具。
  • 你需要一本好书来学习 ARM 汇编,因为迟早你会遇到 ARM 启动代码,这对初学者来说是一笔不小的数目。我提到的这本书也涵盖了一些 C 编程。
  • 将上面提到的书与您的特定处理器的用户指南结合起来,就像这样。确保你明白这一点,因为结合上面的书学习这是学习你的 ARM proc 的唯一方法。详细地。
  • 如果你想从 ARM 汇编转换到 C 编程,你需要阅读这本书,它涵盖了不同的 ARM 处理器,但对 C 初学者来说更容易。不利的一面是它没有解释任何 ARM 程序集,但这就是您需要第一本书的原因。

没有简单的方法。

于 2012-03-06T15:01:44.807 回答
0

mikroElektronika 有不错的 ARM和 C、Pascal 和 Basic编译器,可以满足您的需求。

于 2012-03-07T15:28:46.877 回答