代码之家  ›  专栏  ›  技术社区  ›  Henry

软件开发人员学习如何编程微控制器有多困难?

  •  14
  • Henry  · 技术社区  · 15 年前

    我是一个软件开发人员。我已经用高级语言编程好几年了。

    我想知道,如何进入编程硬件的第一步。不是什么疯狂复杂的东西,但也许是一些普通的CE设备?假设我不需要把PCB和不同的组件放在一起,但仅仅是为了编程微型CPU?

    我要去多低的地方?ASM?C?操作寄存器?或者现在开发工具包的级别很高?Java也在图片中吗?在硬件上进行OO编码,这是梦想还是现实?需要现实检查。

    我也倾向于更好地学习以教程格式编写的书籍或网站。引导我从简单到复杂的过程的东西。有什么建议吗?也许有什么东西能让我了解当今流行的硬件(微处理器/微控制器)?

    非常感谢,谢谢大家。

    6 回复  |  直到 15 年前
        1
  •  8
  •   Peter    15 年前

    实际的编程不是什么大问题。令人沮丧、恼人的部分是设置开发环境并使工具正常工作。一旦你做到了,你就完成了一半。

    我建议您购买一个内置USB的开发工具包(“dev kit”),它可以与您选择的操作系统配合使用。完成任务,你就完成了一半。

    如果您缺少知识,那么了解处理器工作原理的基础也是很重要的。您的编程水平要比其他任何编程都低得多,因此基础知识更为重要。

        2
  •  2
  •   Martin Beckett    15 年前

    如果您知道C,那么只需学习工具链步骤来下载代码。

    容易启动的地方(便宜的硬件/软件) http://www.arduino.cc/en/Guide/HomePage

        3
  •  2
  •   Ulisses Montenegro    15 年前

    我已经在C语言中编写代码,这是我的业余爱好和职业生涯,大约16年了,但一直是为用户代码(即程序,而不是内核或驱动程序)编写的。我的大部分工作都涉及高级语言(我做过 很多 在Perl和Ruby编程中,偶尔会有Java、Python和shell脚本。我确实为MS-DOS开发了很多东西(可能和x86机器上的裸机编程差不多),但我的上一份工作涉及5年的Perl和Ruby on Rails Web开发。

    也就是说,我现在是嵌入式Linux开发的高级工程师,正在开发用于 uClinux Blackfin 平台。有时,我对硬件相关问题(例如,由于没有上拉/下拉销导致的浮动信号电平)的经验确实妨碍了我的工作,但这主要是一次非常愉快和激动人心的经历。正如其他人所说,理解你的工具是必不可少的——对于uclinux来说,这意味着 GNU Toolchain 幸运的是,由于我在FOSS技术方面的背景,我已经熟悉了这一点。

    Blackfin几乎不是入门级微处理器(特别是它没有 MMU 有一些 relevant effects on Linux development ,但如前所述,您可以购买 Beagleboard 只需200美元,带上所有必需的配件,几天后就可以开始乱搞了。如果你想要更简单的东西,有很多 Arduino 尽管如此,如果你有一些真正的开发经验,我相信你会发现他们的开发环境有点限制(我知道我有)。

    当你对你的工具感到满意后,你可能会想花一些钱在 in-circuit emulator (或冰)。这些通常是高度特定于平台的(包括目标体系结构和开发环境方面),但强烈建议在按下按钮后,除了通常闪烁的LED之外,任何东西都可以使用。我相信您很快就会长大。

    几个月后,您将发现自己为 hackable customer devices 使用 Buildroot 而且玩得很开心。我能说的是,去吧,它非常上瘾,而且现在做起来并不特别贵。

        4
  •  0
  •   Toad    15 年前

    还有一点需要研究的是 Microsoft Robotics Studio . 它们支持相当多的硬件板(包括CE),并且有了它,很容易让一个小型机器人启动和运行。还有什么更酷的项目来学习嵌入式编程?

    它都很好地集成在Visual Studio(Express)中,而且它们的devkit还附带了一个免费的Express版本。

        5
  •  0
  •   ergosys    15 年前

    买一块比格板。便宜,很多用户(社区支持将是关键),很多操作系统选项。 http://beagleboard.org/

        6
  •  0
  •   Paul Nathan    15 年前

    如果你想知道你在做什么,你需要理解处理器的汇编语言和处理器的体系结构。

    你需要学习C 有能力的 在微控制器中。这是不可能的。

    嵌入式系统上有一些VM级语言。我在手机上经常看到Java内存不足。 这也有助于我对虚拟机级嵌入式语言有很强的看法 )。

    ARM对硬件级Java字节码有一定的支持。

    你最好的选择是拿起一些图片或者Atmel芯片,然后开始用它们进行黑客攻击。

    如果你想用你现有的硬件来做这件事,那就为你的电脑准备一个管理程序,然后开始写一个基本的内核。