企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 第四节:平台软件和编译器软件的简介 ## 【4.1 平台软件和编译器软件的各自分工】 C 语言写在哪?谁来把 C 语言翻译成单片机可以识别的机器语言?这就是平台软件和编译器软件的分工。平台软件负责编辑 C 语言,编译软件负责把 C 语言翻译成单片机可以识别的机器语言。 ## 【4.2 每一种单片机的平台软件和编译器软件不一定是唯一的】 C 语言在单片机的应用也是最近这些年发展起来的,早期做单片机的原厂更关注芯片硬件本身,配套的 C 语言开发软件方面涉入不深,他们往往只管把单片机芯片生产出来后,给大伙提供一个汇编语言的编译器软件就草率了事,所以给了很多第三方商家做平台软件和 C 编译器的机会,后来单片机原厂也乐意支持和配合这些第三方开发软件的厂商,也有一些单片机原厂直接收购这类第三方软件公司。因此,不同厂家的单片机,它所用的平台和编译器软件可能都不一样。即使是同样一个厂家的单片机,它也有可能存在多种不同的第三方平台软件和编译器软件,每一种单片机所用的平台软件和编译器不一定是唯一的。比如 STM8 单片机可以用 STVD 软件平台,也可以 IAR 平台。STM32 单片机可以用 Keil 平台,也可以用 IAR 平台。 ## 【4.3 平台软件和编译器软件的宿主与寄生关系】 平台软件选定了之后,所用的编译器软件也可能存在多种选择,并不是一种平台软件就绑定一种编译器软件。生物学的比喻,平台软件是宿主,编译器软件是寄生在平台软件里的。一个平台软件可以嵌入多种不同的编译器软件,平台软件和编译器软件存在一对多的关系。比如,PIC 单片机的平台软件是 MPLAB,8 位 PIC 单片机是 PICC 编译器,12 位 PIC 单片机是 PIC18 编译器,16 位 PIC 单片机是 C30 编译器。而且 MPLAB 平台软件与上述各种编译器软件都要单独一个一个分开来安装,最后运行 MPLAB 平台软件,在里面操作某个菜单设置选项,把各种 C 编译器软件跟 MPLAB 平台软件关联起来。 ## 【4.4 51 单片机的平台软件和编译器软件】 我后面的讲解,51 单片机的平台软件用 Keil2,编译器软件用 C51。单片机程序开发需要用到这两种软件,但在项目开发的时候,只要跟平台软件打交道就可以了,因为编译器软件是当做一种独立配件嵌入到平台软件里,统一接受平台软件的控制。我在用 PIC 的 8 位单片机时,需要安装一次 MPLAB 平台软件,也需要独立再安装一次 PICC 编译器软件,然后运行 MPLAB 平台软件,在里面操作某个菜单设置选项,把 PICC 编译器跟 MPLAB 平台软件关联起来,也就是我所说的把 PICC 编译器嵌入到 MPLAB 平台软件里,统一接受平台软件的控制,但我平常写代码时只需要跟 MPLAB 平台软件打交道就可以了。我早期在做 51 单片机开发时,也是需要把 Keil 平台软件和 C51 软件分开安装,然后再把它们关联起来,但是现在从 Keil2 版本开始,在安装 Keil 平台软件时就已经默认把 C51 安装好了,并且自动把 C51 嵌入到了 Keil 平台软件。我现在用 Keil2 这个版本的平台软件,只需要安装一次 Keil2 平台软件就可以了,不需要像早期那样再单独安装 C51 编译器。