如何在不同的微控制器系列 IDE/编译器上编译不同的微控制器。
例如,我有 8051 keil uVision IDE。我需要为 PIC 或 AVR 控制器编译代码。是否可以通过更改 IDE 中的任何内部设置?或者通过添加控制器特定的头文件等?
我在这里需要的实际答案是,
在 keil 或 AVR Studio 或 PIC 等设备列表中选择特定的“微控制器”后,IDE/编译器将添加到代码中吗?
如何在不同的微控制器系列 IDE/编译器上编译不同的微控制器。
例如,我有 8051 keil uVision IDE。我需要为 PIC 或 AVR 控制器编译代码。是否可以通过更改 IDE 中的任何内部设置?或者通过添加控制器特定的头文件等?
我在这里需要的实际答案是,
在 keil 或 AVR Studio 或 PIC 等设备列表中选择特定的“微控制器”后,IDE/编译器将添加到代码中吗?
在 keil 或 AVR Studio 或 PIC 等设备列表中选择特定的“微控制器”后,IDE/编译器将添加到代码中吗?
你弄错了。让我们采取不同的方法:
将 C 程序视为处理器的规范,即用人类可读的语言描述它应该如何按顺序执行。
现在每个处理器都有不同的硬件架构和不同的指令集来控制它。
通常,C 编译器会将 C 代码转换为为该特定处理器指定的汇编 (.asm/.a) 指令。
因此,针对不同架构的 C 编译器与不同的编译器一起使用。
在 Eclipse 或 IAR 工具链中,您为不同的处理器使用不同的编译器。
不会。PIC 和 AVR 都是与 8051 不同的架构,因此需要完全不同的编译器。您无法通过更改设置或添加头文件将一个编译器转换为另一个编译器;他们简直太不一样了。
Keil 不为 AVR 或 PIC 架构提供编译器;您将需要安装另一个开发环境来处理这些部分。
有两种类型的编译器
Native在 PC 上,当您使用高级语言编写程序并使用“Visual Studio”进行编译时,它会为您计算机上的微处理器生成代码。(很可能是英特尔)。
编译器将高级语言结构转换为微处理器的机器语言。
交叉编译器 交叉编译器是将 C 代码转换为其他微处理器/微控制器机器语言的编译器。
现在各种工具,如 Keil uVision、IAR Embedded Workbench、Code Composer Studio,它们在 PC 上运行,但为选择的微控制器创建机器代码。每个 IDE 都将提供它支持的处理器系列和部件号列表,并相应地编译 C 代码。
这些 IDE 提供了各种功能来根据硬件配置程序输出。启动和您提到的 INIT.A51 文件将在 main() 函数开始执行您的程序之前进行必要的硬件初始化。
因此,当您从设备列表中选择特定部件号时,编译器会检查编译的输出是否可以在提到的部件上运行。例如:如果您的程序需要 X 数量的 RAM 并且控制器的内存少于 X 数量,它将引发编译器错误。