嵌入式,是不是可以使用AVR/8051编译器来编译PIC控制器

Embedded, Is it not possible to compile PIC controller using AVR/8051 compiler

如何在不同的微控制器系列上编译不同的微控制器IDE/compiler。

比如我有8051 keil uVisionIDE。我需要为 PIC 或 AVR 控制器编译代码。 是否可以通过更改 IDE 中的任何内部设置? 或者通过添加控制器特定的头文件等?

我在这里需要的实际答案是,

在 keil 或 AVR Studio 或 PIC 等设备列表中选择特定 "Microcontroller" 后,IDE/compiler 将添加到代码中的内容?

没有。 PIC 和 AVR 都是独立于 8051 的体系结构,因此需要完全不同的编译器。您不能通过更改设置或添加头文件将一种编译器转换为另一种编译器;他们简直太不一样了。

Keil 不提供 AVR 或 PIC 架构的编译器;您将需要安装另一个开发环境才能使用这些部分。

what the IDE/compiler will add to the code after selecting a particular "Microcontroller" in device list of keil or AVR Studio or PIC etc..?

你误会了。让我们换一种方式:

将 C 程序视为处理器的规范,即用人类可读语言描述它应如何按顺序执行。

现在每个处理器都有不同的硬件架构和不同的指令集来控制它。

通常,C 编译器会将 C 代码转换为为该特定处理器指定的汇编 (.asm/.a) 指令。

因此,针对不同体系结构的 C 编译器是一个不同的编译器。

在 Eclipse 或 IAR 工具链中,您为不同的处理器使用不同的编译器。

有两种类型的编译器

  1. 原生
  2. 交叉编译器

Native 在 PC 上,当你用高级语言编写程序并使用让我们说 "Visual studio" 编译时在您的计算机上为微处理器生成代码。 (很可能是英特尔)。

编译器将高级语言结构转换为微处理器的机器语言。

交叉编译器 交叉编译器是将C代码转换成其他微处理器/微控制器机器语言的编译器。

现在有各种工具,如 Keil uVision、IAR Embedded Workbench、Code Composer Studio,它们 运行 在 PC 上使用,但为微控制器创建机器代码 selected。每个 IDE 都会提供其支持的处理器系列列表和部件号,并相应地编译 C 代码。

这些 IDE 提供了各种功能来根据硬件配置程序输出。启动和你提到的 INIT.A51 文件将在 main() 函数开始执行你的程序之前进行必要的硬件初始化。

因此,当您 select 设备列表中的特定部件号时,编译器会检查编译输出是否可以 运行 提到的部件。例如:如果您的程序需要 X 的 RAM,而控制器的内存少于 X,它将引发编译器错误。