Embedded 对于软件开发人员来说,学习如何编程微控制器有多难?

Embedded 对于软件开发人员来说,学习如何编程微控制器有多难?,embedded,microcontroller,Embedded,Microcontroller,我是一名软件开发人员。我已经用高级语言编程好几年了 我想知道,如何迈出硬件编程的第一步。不是什么疯狂复杂的东西,但可能是一些普通的CE设备?假设我不需要把PCB和不同的组件放在一起,而只是为了给小小的cpu编程 我必须去多低级别?ASM?C操纵寄存器?或者开发工具包现在的水平相当高?Java在这幅图中是否存在?硬件中的OO编码,这是梦想还是现实?需要一个现实的检查 我也倾向于学习以教程形式编写的书籍或网站。引导我从简单走向复杂的东西。有什么建议吗?也许可以介绍一下今天流行的硬件(微处理器/微控制

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

我想知道,如何迈出硬件编程的第一步。不是什么疯狂复杂的东西,但可能是一些普通的CE设备?假设我不需要把PCB和不同的组件放在一起,而只是为了给小小的cpu编程

我必须去多低级别?ASM?C操纵寄存器?或者开发工具包现在的水平相当高?Java在这幅图中是否存在?硬件中的OO编码,这是梦想还是现实?需要一个现实的检查

我也倾向于学习以教程形式编写的书籍或网站。引导我从简单走向复杂的东西。有什么建议吗?也许可以介绍一下今天流行的硬件(微处理器/微控制器)


非常感谢,谢谢大家。

如果您了解C,那么只需学习下载代码的工具链步骤即可


易于启动(便宜的硬件/软件)

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

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


如果您缺少这些知识,那么了解处理器工作原理的基础知识也很重要。您将在一个比任何其他编程都低得多的级别上进行编程,因此基础知识更为重要。

还需要研究的是。它们支持相当多的硬件板(包括CE),使用它可以相当容易地启动和运行小型机器人。还有什么比学习嵌入式编程更酷的项目呢


这一切都在Visual Studio(express)中很好地集成,他们的devkit还附带了免费的快速版。

获取beagleboard。便宜,用户多(社区支持是关键),操作系统选项多

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

你需要学习C语言才能胜任微控制器的工作。这是没有办法的

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

ARM对硬件级Java字节码有一些支持

你最好的选择是拿起一些像图片或Atmel芯片之类的东西,开始用它们进行黑客攻击


如果你想用你现有的硬件来做这件事,为你的电脑准备一个虚拟机监控程序,并开始编写一个基本的内核

我已经有16年的业余爱好和专业经验使用C语言编写代码,但始终是针对用户代码(即程序,而不是内核或驱动程序)。我的大部分工作都涉及高级语言(我做过很多Perl和Ruby编程,偶尔还会做Java、Python和shell脚本)。我确实为MS-DOS开发了很多东西(这可能与x86机器上的裸机编程一样接近),但我的上一份工作涉及5年的Perl和RubyonRails web开发

话虽如此,我现在是嵌入式Linux开发的高级工程师,为平台上的应用程序开发驱动程序(包括内核模块中遗留简单微处理器的仿真器)。有时,我对硬件相关问题(即,由于引脚上没有上拉/下拉而导致信号电平浮动)缺乏经验,但这是一次非常愉快和激动人心的经历。正如其他人所说,理解您的工具是必不可少的——对于uClinux,这意味着,幸运的是,由于我在自由和开放源码软件技术方面的背景,我已经熟悉了

Blackfin很难算是入门级微处理器(特别是,它没有一个,有一些),但正如前面所说的,你可以花200美元左右购买一个带有所有必需配件的微处理器,并在几天内开始摆弄它。如果你想要更简单的东西,有很多选择,尽管如果你有一些真正的开发经验,我相信你会发现他们的开发环境有点限制(我知道我有)

当你对你的工具感到满意后,你可能想在一个(或冰)上花点钱。这些通常是高度特定于平台的(无论是在目标体系结构还是开发环境方面),但是强烈建议您使用按钮按下后闪烁的LED。我相信您很快就会长大


在几个月内,你会发现自己建立自定义图像使用和有很多乐趣。我所能说的就是,去做吧,它很容易上瘾,而且现在做起来并不特别昂贵。

还学习了IO端口的工作原理、内存限制/要求,包括可能的分页、中断服务例程。这不仅仅是了解C和工具链。保罗,你有没有推荐一本书来学习你提到的那些东西?谢谢。@Henry:我个人还没有找到一本关于这些东西的好教科书/演练。我应该写一篇。:-)您将在给定处理器的技术文档中找到这些(在某种程度上)的讨论。其中一些区域在1个cpu中,而不是在另一个cpu中。我不确定这是否是正确的Q,但它在这里。。基本CE设备最流行的处理器有哪些?一般来说,他们的能力是什么?@Henry:定义CE。Windows CE?您特别推荐哪种开发工具包?或者。。是否有uController/micr的虚拟机