嵌入式编程......一开始

时间:2012-03-22 16:27:50

标签: c++ c embedded arm

我希望从头开始学习编程嵌入式系统。看了一会儿后,我发现自己有点困惑。

我可以编程C和C ++,但我只是不知道从哪里开始嵌入式编程,我应该购买某种设备来练习,使用微处理器模拟器(如果是这样,哪一个?) - 像那个,非常欢迎任何有关从哪里开始的建议或资源。

7 个答案:

答案 0 :(得分:8)

在我看来,跳过Arduino。我一直认为它对于非程序员来说是一种愚蠢的系统。首先,您可以使用能够将C知识应用到尽可能低的水平。您想了解中断向量的工作原理,有限的RAM如何限制堆栈,如何调试。

查看飞思卡尔的8位和16位微控制器,尤其是HCS08或HCS12。有大约100-200美元和一些低于100美元的开发系统,内置调试接口(后台调试模式)。这些也比Arduino更高的性能和内存。 CodeWarrior软件是免费的(代码大小限制,但在大多数情况下,限制数量大于这些设备上的闪存量),并且功能齐全。我不知道你是否可以用Arduino设置代码调试断点,但你可以使用这些。 CodeWarrior还有另一个好处 - 您最初想要深入研究数据表以了解各种模块的内存映射寄存器的运行方式(例如,应该如何清除标志,如何设置模式等等),CodeWarrior随附Processor Expert,它将为您生成特定HCSxx系列衍生产品及其特定模块的功能。由于大多数这些产品重复使用衍生产品之间的逻辑,并且存在一些细微差别,因此重用代码是有意义的。自10年前开始,Processor Expert已经走过了漫长的道路。从长远来看,这对开发时间来说是一个巨大的节省,因为这些功能负责编写极低电平的动作(例如,通过一个C函数调用为xx / yy占空比配置PWM定时器输出引脚)。 p>

然后你可以使用一些将在这些操作系统上运行的操作系统,或者你可以升级到ARM或ePPC。我知道至少有一个带有Linux和网络服务器的HCS12演示板,您可以随时将其用于第一次开发,然后在准备好时将其放回原处。飞思卡尔在提供教程,应用笔记和文档方面也非常出色,除了他们的网站有时很难导航。我想这只是一个大型生态系统的症状。祝你好运!

答案 1 :(得分:4)

有几个嵌入式平台,受到业余爱好者的欢迎,非常容易使用。 Arduino可能是最受欢迎的。板子便宜(20-30美元)并且易于使用,并且有很多好的软件。 Arduino平台的主要网站是http://arduino.cc。你会发现很多链接到其他资源,这将有助于你开始。

您可能需要查看SparkFun,它主要是电子零件(包括Arduino和其他有用的电路板)和工具的业余爱好者级供应商。他们的网站上有a lot of great content来帮助您开始使用硬件和软件。

答案 2 :(得分:3)

为什么不从这样的事情开始:

http://www.bytecraft.com/downloads/firststeps.pdf

这应该涵盖你正在寻找的许多基础。

或者可以在这里找到很多:http://www.eetimes.com/electrical-engineers/education-training

享受第一步的乐趣=)

答案 3 :(得分:3)

可以将嵌入式系统分为两类:

  • 运行完整操作系统的那些。如果有一种记录的方式来获取操作系统并启动它,那么除了您需要构建或下载交叉编译器之外,这些实际上并没有与桌面有任何不同。当然,对于像手机这样的东西,环境赞助商会提供带有调试器的复杂开发环境。

  • 那些在所谓的“裸机”上运行程序的人。这些将只包含您的程序和加载的语言运行时。 (其中一些真的简单并运行简单的解释器或汇编语言。这些优点是不需要复杂的编程就可以设置集成外设。)

您可能不需要模拟器或其他硬件调试设置,事实上,您甚至可能不需要硬件即可开始使用。如果可能,尝试在虚拟机中进行初始开发。

与往常一样,您可以获得所付出的代价。在商业项目中,有许多环境可用,但这些可能不会用于机器人项目等。

有很多平台都有合理的支持。最近的愤怒(由于其显着的35美元价格点)是 the Raspberry Pi, 但是,目前还没有立即可用。

答案 4 :(得分:2)

你有很多选择!我猜你会从一个模拟器开始(你使用什么类型的嵌入式操作系统并不重要,可能你不会使用x86 CPU)。如果你使用X86 CPU,你不需要任何模拟器,但你可能需要一台虚拟机。

您使用“arm”标记了您的问题,因此我猜您要使用ARM处理器(然后您需要一个模拟器)。开始查看here,您将找到从嵌入式编程开始的教程和资源。

答案 5 :(得分:2)

我建议尝试使用TI的一些EZ430系列开发工具。有些工具只需20美元即可购买,并具有基本功能,以及扩展它们的方法。您可以轻松购买两个eZ430-F2013并让它们相互通信或与另一台计算机通话。

TI为其MSP430提供了Code Composer Studio,它是免费且功能齐全的(它基于Eclipse),因此编程环境非常用户友好。 TI还提供了大量代码示例,涵盖了系统的大部分功能。

使用MSP430,您将使用“裸机”代码进行编程,因此您不仅要编程C,而且还要切换输出和位冲击。但看起来你有兴趣在这个级别上学习它,所以这是一个很好的起点。

另一方面,如果你想要一个嵌入式操作系统(如Linux),请查看gumstix网站。

答案 6 :(得分:2)

由于您的问题几乎没有提供有关应用程序类型,性能要求和预算等方面的信息,因此没有任何答案可以特别关注。

然而,考虑到我建议您选择一个ARM架构设备,仅仅因为它涵盖了几美元的设备,其性能在10 MIPS中,小型片上存储器到板上的应用处理器成本高昂几百美元能够运行Linux,WinCE或Android。

无论喜欢与否,ARM在嵌入式系统领域无处不在;在设计和市场份额方面,其他一切都是利基。基于Cortex-M3的设备位于简单的开发/评估板上,是一个很好的起点。但是如果你不考虑工具和调试硬件的成本,你会感到沮丧。