C++ 为什么芯片控制语言选择
我以前曾问过一个问题,对于嵌入式开发,我应该学习哪种语言。大多数嵌入式工程师都说C和C++是必须的,但也指出它依赖于芯片。p> 有人能澄清一下吗?这是编译器问题还是什么?是否有自己的特定编译器(比如C编译器或C++编译器),这就是为什么你必须使用编译器知道的语言?难道不可能在其他地方编码和编译它,然后在编译状态下直接烧录到芯片上吗?(我想我听到一个熟人这样说)C++ 为什么芯片控制语言选择,c++,c,embedded,verilog,C++,C,Embedded,Verilog,我以前曾问过一个问题,对于嵌入式开发,我应该学习哪种语言。大多数嵌入式工程师都说C和C++是必须的,但也指出它依赖于芯片。p> 有人能澄清一下吗?这是编译器问题还是什么?是否有自己的特定编译器(比如C编译器或C++编译器),这就是为什么你必须使用编译器知道的语言?难道不可能在其他地方编码和编译它,然后在编译状态下直接烧录到芯片上吗?(我想我听到一个熟人这样说) 我不确定这是如何工作的,因为很明显我不知道多少嵌入式系统或它们是如何工作的。对于你们这些知道的人来说,这可能是一个简单的答案,可能是指一
我不确定这是如何工作的,因为很明显我不知道多少嵌入式系统或它们是如何工作的。对于你们这些知道的人来说,这可能是一个简单的答案是的,有很多架构,其中C编译器存在,但C++编译器不存在。您选择的处理器越小、功能越差,出现这种情况的可能性就越大
对于嵌入式开发,您几乎总是在“别处”编译代码,如您所说,然后将其发送到芯片执行/调试。编译一个不同于编译器的体系结构的代码被称为“交叉编译”。 < P>,可能是指一些工具链不支持C++。是的,许多芯片和电路板都有自己的工具链。不同的处理器有不同的指令集,这意味着不同的编译器(或者更具体地说是不同的后端)。这并不意味着你总是要重新学习每件事。其中许多是基于GCC(通常被认为是移植最多的编译器)的。最终的可执行文件/图像格式也会有所不同,因此您需要一个特定的链接器。最有可能的情况是,您将在“普通”计算机上(交叉)编译芯片,然后将其烧制到芯片上。然而,这并不意味着您可以使用针对桌面操作系统的典型编译器和链接器。您是对的:芯片在编译器上有不同的版本。大多数/许多现代芯片都有gcc端口;但并非全部 术语“嵌入式”用于描述广泛的硬件。大多数嵌入式软件工程将包括编写C/C++代码来为目标微处理器生成二进制代码,但也有一些您可能使用的设备没有使用编译后的二进制代码 一个例子是可编程逻辑控制器(PLC)。这些设备使用一种称为“”的语言。这是一门很棒的语言。过去我很喜欢与它一起工作 您可能会遇到的另一件事,正如我过去所遇到的,是解释基本模拟器的设备。希望这在今天是罕见的。它“取决于芯片”,有三种可能的方式: <> LI>
一些非常受限的体系结构不适合C++,或者至少C++提供了不适合于这种架构的结构,因此在C上没有任何好处。大多数8位设备属于这一类,但绝不是全部;我已经看到了在MeGaAVR上实现的有用的C++代码。 <> >某些设备不受C++编译器的支持。例如,微芯片的DSPIC/PIC24编译器是C(第三方工具可能具有C++支持)。
以及C、C++,其他可能是汇编程序、FAST、艾达、Pascal等许多,但C几乎无处不在。很少有芯片厂商会在没有C编译器的情况下发布新的架构或设备。对于其他语言,您通常必须等到第三方决定开发一种语言,而这种等待可能永远都是为了一个利基架构
难道不可能在其他地方编码和编译它,然后在编译状态下直接烧录到芯片上吗 这称为交叉编译或交叉开发,是嵌入式系统的常用开发方法。大多数嵌入式系统缺乏操作系统、文件、性能和内存资源,无法自行托管编译器,大多数开发人员希望在熟悉的面向用户的桌面操作系统中使用IDE、调试器等复杂的开发环境 我也不知道这是怎么回事 显然我知道的不多 系统或其工作方式 了解以下几点:如果您打算进行FPGA开发,使用C/C++/pic获得的知识将非常有用和重要,因为FPGA必须内置CPU/微控制器。没有直接的科学理由。在很多情况下,这与特定公司的管理和政治有关 一些公司被迫创建一个交钥匙系统,强迫您购买该系统并支付维护费用。它将单个开发人员拒之门外,但有许多公司和esp政府机构更喜欢这种模式,因为支持通常要好得多,而且您通常可以推动其产品的方向以适应需要