2.2 MPLAB IDE集成开发环境
MPLAB IDE软件由MICROCHIP公司出品,专门用于为其旗下的PIC单片机及dsPIC数字信号处理器开发应用程序。MPLAB IDE软件提供了一个完整的PIC开发过程支持,因此被称为集成开发环境(IDE)。为了更好地理解集成开发环境的概念,我们需要先来了解一下单片机系统的开发过程。
2.2.1 单片机系统开发过程
PIC单片机组建单片机系统时,其开发过程一般要经历以下几个步骤:
1)创建设计方案。根据所需的功能要求,决定最适合的PIC单片机型号,并设计好外围硬件电路。
2)编写源代码。在编辑器中用特定的语言来编写源代码,完成后使用汇编器或编译器将代码转换为可被PIC单片机识别的机器码(0和1的序列)。
3)测试代码。代码编写完成后,并不一定能完全按照我们的预期运行,为了去除代码中的Bug,可以通过调试器来观察程序的运行情况,查看变量和各功能寄存器在程序运行过程中的值,或者让程序分步执行以便于更加清晰地分析程序的流程。
4)烧写芯片。代码经软件调试并正确运行后,将代码烧写到单片机中,并再次验证程序在实际的硬件环境下能否正确执行。
2.2.2 MPLAB IDE及其内置组件
MPLAB IDE软件就是针对以PIC为核心的单片机系统开发的需要,将代码的编辑、编译、调试、烧写功能集成在一个软件中,成为一个完整的PIC开发平台,因此称为集成开发环境。
相比硬件投资,开发PIC的软件投资就更加节省了。我们可以从MICROCHIP公司的官方网站上下载MPLAB IDE软件免费使用,而且在目前版本的MPLAB IDE软件(V8.80)中,还附带了试用版的PICC编译器,可以用来为PIC10/12/16系列单片机开发C语言程序。不过,要想给PIC18系列单片机编写C程序,还需要额外从MICROCHIP网站上下载试用版的PICC18编译器。这里需要说明的是,PICC编译器及PICC18编译器安装完成后,会自动和MPLAB IDE集成开发环境挂接,无须人工干预,这无疑给PIC开发带来了极大的方便。
作为PIC的集成开发环境,MPLAB IDE软件包含了多个与PIC开发相关的组件,具体如图2-4所示。
1)项目管理器。PIC单片机产品线非常丰富,即使是同系列的PIC单片机,其引脚、数据存储器以及程序存储器都会有所不同。在开发过程中,必须针对选定的单片机,建立一个特定的项目,编写程序并最终生成机器码,烧写到单片机中。这个从单片机的选型、代码编写、汇编(或编译)、链接,以至于生成完整的机器码的整个过程叫作项目的建造(Build)。项目管理器就是用于管理整个建造过程的组件。
2)程序编辑器。程序管理器用于源代码的编写,是和我们关系最密切的部分。程序编辑器并不是普通的文体编辑器,而是专门为MCU编写代码而设计的,它可以识别文本中的语法结构,并采用相应的彩色编码来区分各种元素。例如C语言中的关键词等都会有相应的彩色显示。
另外,程序编辑器还支持编写源代码常用的一些操作,如查找C语言中的匹配花括号、注释程序行等,也可以在编辑器中给程序设置断点,查看寄存器或变量的值等。
3)汇编器和编译器。汇编器是将汇编语言翻译为机器语言的软件,而编译器则是将C或其他高级语言翻译为机器语言的软件。与PC机上使用的C编译器不同,由于单片机的存储空间有限,因此要求开发使用的汇编器或编译器,所生成的代码量应当尽量小。编译器的编译过程如图2-5所示。
MPLAB IDE软件在早期版本中只集成了汇编器,用于将汇编语言的源代码转换成机器码。为了适应需要,MPLAB IDE软件在近期的版本中附带了PICC的C编译器,用来为PIC10/12/16系列开发C语言程序。有了PICC编译器,用户在为PIC中低档机开发C程序时就不用额外安装第三方的编译器了,但开发PIC18系列高档机还需安装PICC18编译器。
4)链接器。链接器负责将来自汇编器、编译器生成的机器码分配到目标单片机相应的存储区中。
5)软件模拟器。软件模拟器又称软件调试器,它使用PC机的CPU来模拟单片机执行软件的过程,不需要任何硬件的配合就可以对程序进行测试,比如单步调试代码、测量代码执行时间、观察寄存器或变量值等。
6)硬件编程器及调试器。在MPLAB IDE中,支持两种类型的硬件设备即:编程器和调试器。编程器用于将软件生成的机器码(HEX文件)从PC上烧写到目标单片机的片内存储器中。调试器可以使目标单片机与源程序同步工作,单片机与其外围电路处于连接状态,用户可以实时观察硬件电路在软件执行到某一位置时的具体变化情况,其功能比单纯用软件仿真调试更为真实和直观。MPLAB IDE软件中支持的编程及仿真器有PICkit 2、PICkit 3、ICD2、ICD3等。
2.2.3 MPLAB IDE的工具链
我们已经知道,MPLAB IDE集成开发环境中包含了多个功能组件,主要有编写代码的编辑器、管理文件及设置的项目管理器、将源代码转换为机器码的汇编器或编译器,以及多种模拟单片机运行的软件和用于连接到目标单片机的硬件。这些工具的有序调用,可以完成PIC程序开发的全过程,MPLAB IDE的工具链如图2-6所示。
从图中我们可以看出,从编写C语言代码开始,直到生成芯片可执行的HEX文件,需要有多个开发工具的配合,具体步骤如下:
1)在编辑器中编写C源代码并包含相关头文件。
2)C源代码和PIC的头文件经C编译器转换为汇编源文件。
3)汇编源文件经汇编器产生中间机器码和占位符,并送到链接器中。
4)链接器解析这些占位符,针对不同类型的芯片,生成一个可执行的机器码文件(HEX文件),同时生成一个调试文件,供调试器使用。
5)将生成的HEX文件烧写到单片机中,或使用调试文件进行软硬件调试。