您好,我无法真正找到我正在寻找的信息,所以我决定问。我正在寻找使用微控制器进行嵌入式编程,但我不知道从哪里开始。可能的选择是巨大的。最终我的目标是开始一个爱好项目,最终开发我自己的微型嵌入式操作系统。
考虑到这个目标,您会推荐什么控制器?
- 应该允许使用 ASM(我想了解处理器的工作原理)
- 在您可以使用它创建的内容上具有相当大的灵活性。例如,用它建造一台迷你电脑。
- 有可供初学者学习的可靠资源。
由于受欢迎,我倾向于使用 Arduino,但我听说 PIC 也不错。
关于 Arduino 的关键在于它不是微控制器。它是一个开放硬件/开源项目,用于开发板和开发工具,使学习和创建嵌入式系统变得简单。在这个程度上,它可能满足您的需求。
Arduino 最初使用 AtmelAVR 微控制器,尽管新的Arduino Due使用 Atmel SAM3X8E ARM Cortex-M3。
在这种情况下,无论如何我都会推荐 ARM 设备,所以也许 Arduino Due 适合你,但是还有许多其他 ARM 板设计具有类似的支持生态系统,例如BeagleBoard、PandaBoard和成本极低的Raspberry Pi . 后者已经是运行 Linux 的“小型计算机”,因此可能过于抽象,无法轻松学习嵌入式系统和微控制器。
使用 ARM 的优势在于它无处不在,从 10 兆赫兹的能力和小型 RAM/闪存部件到运行 > 1GGz 的应用处理器。ARM 不会制造混乱,他们将架构授权给其他制造商,因此许多供应商使用不同的专有外设集制造 ARM 部件,并针对不同的目标应用程序,因此您总能找到符合您需求的 ARM 部件。
我不一定推荐 PIC,零件由单一供应商制造,指令集不一致,说 PIC18、PIC16、PIC18、PIC24 和 PIC32 之间存在显着的架构差异 - 后者实际上与前面的完全不同PIC 架构。低端 PIC 设备不太适合高级语言开发。虽然这可能使学习汇编程序变得容易,但在使用 C 或 C++ 编码时确实会出现妥协。另一方面,AtmelAVR(在 Arduino 中使用)具有专门设计用于支持高效 C 和 C++ 编译的指令集。
这听起来很时髦。但 Arduino 非常适合初学者。它的 IDE 使事情变得简单。您可以包含您的程序集或编写您自己的 C++。作为 gcc 之上的包装器,为您提供与更大芯片相同的工作原理。这样当您成长为 MAKE 和 Eclipse 时,您就可以从方便的 IDE 中扩展您的技能。除了为更大的芯片提供一条不错的路径。
拿起其他库并对其进行调整以弄脏您的手指。和学习的想法。