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文件烧写到单片机中,或使用调试文件进行软硬件调试。

《我和PIC单片机:基于PIC18》——2.2 MPLAB IDE集成开发环境相关推荐

  1. PIC单片机入门教程(二)—— 安装集成开发环境(MPLAB X IDE)

    PIC单片机入门教程(二)-- 安装集成开发环境(MPLAB X IDE) 教程中使用的电脑运行Windows 10 专业版 64位系统 1.下载 MPLAB X IDE v4.05 历史版本:htt ...

  2. ibm java 工具_Eclipse是由IBM开发的一款功能完整且成熟的IDE集成开发环境,它是一个开源的、基于Java的可扩展开发平台,是目前最流行的Java语言开发工具。...

    [判断题]由运放组成的任何应用电路都可以采用 " 虚短 " 和 " 虚断 " 分析法.( ) [单选题]某污水厂初沉池设计流量为10000m2/d,进水悬浮物浓 ...

  3. 基于Eclipse的TI集成开发环境IDE-CCSv5使用教程

    TI嵌入式处理器的集成开发环境(IDE)包括调试器,编译器,编辑器,DSP/BIOS操作系统等等,现在最新的CCSv5 IDE基于Eclipse开源软件框架(v4+)并融合了TI设备的支持与功能,适用 ...

  4. RISC-V单片机集成开发环境(IDE) MounRiver Studio软件介绍(一)

    RISC-V单片机(MCU)集成开发环境(IDE) MounRiver Studio软件介绍(一):下载安装及更新 MounRiver Stuido概述 MounRiver Studio是一款面向RI ...

  5. Dipforge 3.0 a3 发布,基于 Web 的集成开发环境

    Dipforge 3.0 a3 主要是增强了 Web IDE,增加了一些改进的图标. Dipforge 是一个应用服务器,提供了快速企业开发,无需 CRUD,侧重于解决实际的问题. Dipforge  ...

  6. 基于 Docker 打造前端持续集成开发环境

    知乎: https://zhuanlan.zhihu.com/p/37961402 本文将以一个标准的 Vue 项目为例,完全抛弃传统的前端项目开发部署方式,基于 Docker 容器技术打造一个精简的 ...

  7. 如何基于Jupyter notebook搭建Spark集群开发环境

    摘要:本文介绍如何基于Jupyter notebook搭建Spark集群开发环境. 本文分享自华为云社区<基于Jupyter Notebook 搭建Spark集群开发环境>,作者:apr鹏 ...

  8. ESP32 ESP-IDF开发环境搭建,Windows下基于ESP-IDF | Cmake | VScode插件的 ESP32 开发环境搭建

      之前的一篇博客 Windows上基于ESP-IDF搭建ESP32开发环境 发布后,深受好评.几个月过去了,乐鑫的esp-idf-tools安装工具发生了较大的变化,VsCode插件的功能也愈加完善 ...

  9. keil集成环境c语言总结,Keil C51单片机集成开发环境编程与调试教程

    同 VC 之类的通用 C 语言集成开发环境(IDE)一样,Keil 也采用"工程" (Project)的方式管理源代码及相关文件,这种管理方式为由多个源代码文件组 成的大型程序开发 ...

  10. 基于VMware+Ubuntu 14.04 搭建ESP32 开发环境

    基于VMware+Ubuntu 14.04 搭建ESP32 开发环境 开发环境:VMware + 14.04 1.更新 cmake 准备工作:官网下载cmake-3.6.3.tar.gz(https: ...

最新文章

  1. android receiver 通知,android – 来自BroadcastReceiver的呼叫通知
  2. 百度地图api 去左下角百度地图logo的方法
  3. 分享一些优化博客的心得
  4. Object类的toString方法
  5. Yii2 主从 数据库
  6. Hands-On Modeler (建模人员参与程序开发)
  7. mysql存储过程知识点_知识点:Mysql 基本用法之存储过程
  8. 中国人工智能学会通讯——深度学习与推荐系统 1.2 基于特征的推荐 (Feature-based Recommendation)...
  9. RHEL网络设置,来自于hyper-v中的虚拟机
  10. c语言使用的编程环境是,啊哈C语言编程-第3课-C语言编程环境
  11. DDR内存的终极优化
  12. [BZOJ2959]长跑——新技能:LCT+缩圈
  13. TiDB学习笔记(七)-数据库系统优化
  14. 2021计算机一级新增知识点,2021年全国计算机等级考试改革有哪些内容
  15. 深夜爬虫, 我很抱歉 , 附微信 “ 网抑云” 公众号爬虫教程!
  16. 手机流量偷跑调查:使用习惯不当或软件出问题
  17. 微软亚太研发集团高性能计算首席架构师徐明强访谈:我的成长启示录
  18. 乐视体感摄像头开发踩坑记录
  19. 抛物线系列_02顶点不在原点
  20. mac下载使用finalshell

热门文章

  1. 【C++学习五】STL库的应用
  2. 控制台出现 Page “xxx“ has not been registered yet 和 uniapp的报错Uncaught Error: Module build fail xxx
  3. 如何将超大文件传输给别人,超大文件如何传输
  4. 服务器怎么查看c盘大文件在哪里,怎么快速查找系统中的大文件?
  5. 基于SpringBoot超市库存管理系统+文档
  6. 【AI初识境】从3次人工智能潮起潮落说起
  7. Python_提取图片像素值
  8. 大佬们用代码写的故事
  9. 机器学习模型评估指标
  10. 深度学习——时间序列模型评价指标总结