C++ 为什么芯片控制语言选择

C++ 为什么芯片控制语言选择,c++,c,embedded,verilog,C++,C,Embedded,Verilog,我以前曾问过一个问题,对于嵌入式开发,我应该学习哪种语言。大多数嵌入式工程师都说C和C++是必须的,但也指出它依赖于芯片。p> 有人能澄清一下吗?这是编译器问题还是什么?是否有自己的特定编译器(比如C编译器或C++编译器),这就是为什么你必须使用编译器知道的语言?难道不可能在其他地方编码和编译它,然后在编译状态下直接烧录到芯片上吗?(我想我听到一个熟人这样说) 我不确定这是如何工作的,因为很明显我不知道多少嵌入式系统或它们是如何工作的。对于你们这些知道的人来说,这可能是一个简单的答案,可能是指一

我以前曾问过一个问题,对于嵌入式开发,我应该学习哪种语言。大多数嵌入式工程师都说C和C++是必须的,但也指出它依赖于芯片。p> 有人能澄清一下吗?这是编译器问题还是什么?是否有自己的特定编译器(比如C编译器或C++编译器),这就是为什么你必须使用编译器知道的语言?难道不可能在其他地方编码和编译它,然后在编译状态下直接烧录到芯片上吗?(我想我听到一个熟人这样说)


我不确定这是如何工作的,因为很明显我不知道多少嵌入式系统或它们是如何工作的。对于你们这些知道的人来说,这可能是一个简单的答案
对于嵌入式开发,您几乎总是在“别处”编译代码,如您所说,然后将其发送到芯片执行/调试。编译一个不同于编译器的体系结构的代码被称为“交叉编译”。

< P>,可能是指一些工具链不支持C++。是的,许多芯片和电路板都有自己的工具链。不同的处理器有不同的指令集,这意味着不同的编译器(或者更具体地说是不同的后端)。这并不意味着你总是要重新学习每件事。其中许多是基于GCC(通常被认为是移植最多的编译器)的。最终的可执行文件/图像格式也会有所不同,因此您需要一个特定的链接器。最有可能的情况是,您将在“普通”计算机上(交叉)编译芯片,然后将其烧制到芯片上。然而,这并不意味着您可以使用针对桌面操作系统的典型编译器和链接器。

您是对的:芯片在编译器上有不同的版本。大多数/许多现代芯片都有gcc端口;但并非全部

术语“嵌入式”用于描述广泛的硬件。大多数嵌入式软件工程将包括编写C/C++代码来为目标微处理器生成二进制代码,但也有一些您可能使用的设备没有使用编译后的二进制代码

一个例子是可编程逻辑控制器(PLC)。这些设备使用一种称为“”的语言。这是一门很棒的语言。过去我很喜欢与它一起工作

您可能会遇到的另一件事,正如我过去所遇到的,是解释基本模拟器的设备。希望这在今天是罕见的。

它“取决于芯片”,有三种可能的方式:

<> LI>

一些非常受限的体系结构不适合C++,或者至少C++提供了不适合于这种架构的结构,因此在C上没有任何好处。大多数8位设备属于这一类,但绝不是全部;我已经看到了在MeGaAVR上实现的有用的C++代码。 <> >某些设备不受C++编译器的支持。例如,微芯片的DSPIC/PIC24编译器是C(第三方工具可能具有C++支持)。

  • 芯片架构是专为特定语言设计的;例如,INMOS Transputer总是运行OCCAM

  • 以及C、C++,其他可能是汇编程序、FAST、艾达、Pascal等许多,但C几乎无处不在。很少有芯片厂商会在没有C编译器的情况下发布新的架构或设备。对于其他语言,您通常必须等到第三方决定开发一种语言,而这种等待可能永远都是为了一个利基架构

    难道不可能在其他地方编码和编译它,然后在编译状态下直接烧录到芯片上吗

    这称为交叉编译或交叉开发,是嵌入式系统的常用开发方法。大多数嵌入式系统缺乏操作系统、文件、性能和内存资源,无法自行托管编译器,大多数开发人员希望在熟悉的面向用户的桌面操作系统中使用IDE、调试器等复杂的开发环境

    我也不知道这是怎么回事 显然我知道的不多 系统或其工作方式

    了解以下几点:


    C/C++是固件开发的一个非常好的选择。因此,您制作的软件将在嵌入式CPU/微控制器上运行。为了正确编程设备,您需要了解语言和设备架构

    相同的代码可能无法在不同的设备中工作。因此,您必须学习语言和设备架构

    另一种选择是FPGA,它不是微控制器。FPGA是具有特殊单元的设备,能够在任何类型的同步电路(包括微控制器)中进行自我转换。FPGA采用硬件描述语言进行编程,如verilog和VHDL。该软件的“编译”(合成)版本称为网关软件

    HDL也是用于ASIC设计的相同语言。正确学习的途径 语言很长。所以我建议从C/C++和pic形式的微芯片开始,这是一个 低成本和高度认可的微控制器


    如果您打算进行FPGA开发,使用C/C++/pic获得的知识将非常有用和重要,因为FPGA必须内置CPU/微控制器。

    没有直接的科学理由。在很多情况下,这与特定公司的管理和政治有关

    一些公司被迫创建一个交钥匙系统,强迫您购买该系统并支付维护费用。它将单个开发人员拒之门外,但有许多公司和esp政府机构更喜欢这种模式,因为支持通常要好得多,而且您通常可以推动其产品的方向以适应需要