【4.1 平台软件和编译器软件的各自分工。】 C语言写在哪?谁来把C语言翻译成单片机可以识别的机器语言?这就是平台软件和编译器软件的分工。平台软件负责编辑C语言,编译软件负责把C语言...
【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编译器。