【问题标题】:How to program hardware? [closed]如何对硬件进行编程? [关闭]
【发布时间】:2011-06-21 15:07:07
【问题描述】:

我是一名熟练的 Visual Basic 程序员。我想了解人们如何对硬件进行编程。例如,我看到人们创造了 LED 手表、盒子等。你是如何做到这一点的?可以使用VB或Java完成吗?我有一些阅读 C、C++ 代码的经验。我只知道 C 和 C++ 语言中的 IO。

【问题讨论】:

  • 我在对硬件进行编程时会查看硬件原理图和器件数据表。我还了解设备是内存映射还是 I/O 映射,以及处理器如何与设备通信。

标签: embedded hardware


【解决方案1】:

您可能正在寻找可编程微控制器。如果您有 C/C++/Java 方面的经验,请查看Arduino。它的芯片使用C like language 进行编程。这个“How tos”页面可能会帮助您入门。还有一些好书可以帮助你前进:

  1. Programming Interactivity
  2. Making Things Move DIY Mechanisms for Inventors, Hobbyists, and Artists

Wiring是一个类似于Arduino的平台。

还可以查看Forth 编程语言。有很多有趣的“tiny computers”,您可以使用这种相当不寻常的语言进行编程。以下是部分列表:

  1. Forth Inc
  2. Greenarrays
  3. Zilog Z8
  4. PIC18Fxx2

两本著名的 Forth 书籍:

  1. Starting Forth
  2. Thinking Forth(软件工程文献中的经典。)

【讨论】:

  • Forth 很棒!非常不同,但可以很有趣。
【解决方案2】:

人们如何对硬件进行编程

如果“硬件”是指独立设备(嵌入式系统),则该过程涉及交叉编译。设备代码在主机 PC 上以某种(高级)语言编写、编译并转换为适合下载到目标设备的形式。 p>

交叉编译器会为运行它的平台以外的平台生成可执行代码 - 例如,AVR 交叉编译器将为 AVR 微控制器生成代码,但编译器在 PC 上运行。普遍使用汇编和 C,在某种程度上使用 C++、Java 和 Ada。

如果“硬件”是指通过某个端口(串行、并行、USB)连接到 PC 的某些设备,则编程涉及通过该端口进行交互,可能还需要设备驱动程序。

可以用VB或者Java实现吗?

我不确定 VB(也许有用于 WinCE 及其同类的 VB 编译器)。 Java 用于更复杂/更大的嵌入式系统(例如手机),主要用于为设备开发用户应用程序。

创建一个 LED 手表、盒子等。您是如何实现的?

如果您对开发 LED 手表之类的产品感兴趣,则需要学习如何对微控制器进行编程。至少,您需要两个组件:微控制器和一些将程序加载到其上的硬件(programer)。您可以投资开发板,也可以自己构建一个。当然,您还需要交叉编译器,以及与编程器交互的软件,以便它可以加载代码。

我偏爱 AVR,所以我建议这样做。其他选项包括 PIC、8051 的一些变体、PSoC1 和 TI 的 MSP 器件。

AVR 工具链捆绑在WinAVR 中,它包括 avr-gcc(交叉编译器前端)、avrdude(与编程器硬件交互的软件)和一个 C 库(avr-libc)+ 一堆有用的工具。编程硬件可以像DAPA/bsd 到基于 USB 的(AVRISP、USBasp、Usbprog)等一样简单。

或者,如果您的 PC 仍有并行端口,您可以尝试使用 VB 编写的应用程序来控制一组 LED。详情请查看http://www.lvr.com/parport.htm

【讨论】:

    【解决方案3】:

    我建议从 arduino 之类的东西开始,这是开始接近硬件编程的好地方。这是一个带有一些内置 LED 和其他东西的原型板,具体取决于您获得的型号。您可以使用 C/C++ 或任何其他可以交叉编译为与目标硬件兼容的格式的语言(我相信 arduino 上的 ATMega 微控制器)。

    查看:http://www.google.com/search?client=ubuntu&channel=fs&q=arduino&ie=utf-8&oe=utf-8

    【讨论】:

      【解决方案4】:

      如果您只是想将某些东西连接到计算机的串行/并行端口并与之“对话”,您可以使用大多数语言。在 Visual Basic 中,您需要一个 dll 来实现这一点。 Java也许也能做到。 如果你想对微控制器芯片进行编程,你最好学习 C,因为这是用于编程大多数的语言,尽管它们中的一些接受基本、java、处理和 C++。

      【讨论】:

        【解决方案5】:

        您可以使用许多基本的邮票来弄湿您的脚。例如 parallax 在基于基本的嵌入式系统上开展业务。如果你想在那个编程水平上前进,你真的需要学习 C 以获得最大的覆盖率,我强烈推荐汇编语言,至少几个不同的指令集。

        【讨论】:

          【解决方案6】:

          您可能对Gadgeteer 感兴趣。几周前我玩了一个工具包,非常有趣。你目前不能做VB,但你可以做C#和VB is coming very soon

          【讨论】:

            猜你喜欢
            • 2010-10-28
            • 2014-07-16
            • 1970-01-01
            • 2011-03-06
            • 1970-01-01
            • 2012-10-19
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多