MPLAB X IDE快速操作指南.docx
《MPLAB X IDE快速操作指南.docx》由会员分享,可在线阅读,更多相关《MPLAB X IDE快速操作指南.docx(25页珍藏版)》请在冰豆网上搜索。
MPLABXIDE快速操作指南
模板的发布
编制
卢继珍
审核
批准
发布日期
实施日期
模板更改记录
更改
序号
更改人
/日期
更改后
的版次
更改说明
1
卢继珍/2014-1-24
A/00
初稿
模板详细内容
见后文。
MPLABXIDE快速操作指南
编制
卢继珍
审核
批准
发布日期
实施日期
MPLABXIDE快速指南
一、环境搭建
PIC单片机的开发环境以前主要是MPLABIDE,但由于其已经暴露出诸多问题,在2010年8月,微芯公司发布了全新的MPLABXIDE开发环境。
见图1.1。
MPLAB®XIDE是可以运行在PC(Windows®、MacOS®和Linux®)上的软件程序,用于开发Microchip单片机和数字信号控制器的应用。
由于它提供了一个统一的集成“环境”来支持嵌入式单片机的代码开发,因此称为集成开发环境(IDE)。
下载路径:
图1.1MPLABXIDE集成开发环境图标
由于其主要是一个集成的软件编辑环境,并不提供编译功能,所以安装MPLABXIDE以后,我们还要安装编译器。
Microchip最新编译器产品线——MPLAB®XC为项目开发的软件需求提供完整的解决方案,并且可以替换所有MPLABC和HI-TECH编译器。
MPLABXC编译器具有以下特性:
支持所有8/16/32位PIC®MCU以及dsPIC®DSC
与MPLABXIDE配合工作,提供全面的图形前端:
∙编辑错误和断点,以匹配源代码中相应的行
∙支持C和C++源代码单步执行,以检测关键点的变量和结构
∙在观察窗口显示已定义数据类型的数据结构(包括浮点)
可以在Windows、Linux和MacOSX系统上运行
提供不同优化等级以满足各种需求,并且可以免费下载
表1.1:
MicrochipPIC单片机与编译器对应表
专业版
标准版
免费版**
C++
PIC10/12/16/18MCU
MPLAB®XC8
MPLABXC8
MPLABXC8
MPLABXC8不可用
PIC24MCU和dsPIC®DSC
MPLABXC16
MPLABXC16
MPLABXC16
MPLABXC16不可用
PIC32MCU
MPLABXC32
MPLABXC32
MPLABXC32
MPLABXC32
XC系列编译器的下载路径:
由于公司内部主要是PIC中低端系列的单片机,我们安装XC8和XC16编译器就可以了。
MPLABXC8编译器提供了三种模式:
免费(Free)、标准(Standard)、专业(PRO)。
标准和专业模式需要序列号来启用。
无序列号的客户可以使用免费模式。
基本的编译器操作、支持的器件和可用的存储器在三种模式中都是相同的,区别仅在于编译器的优化级别。
如果我们要求的优化级别比较高,可以对XC8进行破解,破解方法见:
安装完MPLABXIDE集成开发环境和XC8等编译器以后,接下来就可以打开MPLABXIDE进行相关设置了。
双击MPLABXIDE图标,然后点击顶部菜单栏的Tools-Options,点击“Embedded”图标,
出现图1.2所示界面:
图1.2MPLABXIDE编译环境设置界面
点击“Add”,弹出图1.3:
图1.3MPLABXIDE添加新的编译工具路径设置界面
点击“Browse”,选择XC8及XC16的安装文件路径。
将XC8及XC16编译工具添加进入开发环境中进行管理。
以XC8为例,完成后如下图所示:
图1.4MPLABXIDE编译环境设置界面
至此,已完成PIC单片机的开发及编译环境了。
创建第一个项目:
点击“File”—“NewProject”,弹出如下界面:
图1.5MPLABXIDE新建工程选择界面
点击“Next”,出现如下“SelectDevice”界面,选择我们的目标CPU,这里以PIC16F877A为例:
图1.6MPLABXIDE芯片选择界面
继续点击“Next”,出现“SelectTool”界面,选择我们的下载工具,这里选择“PICKit3”,如果当前选择的下载工具有效的话,会出现SN号,如下图所示:
图1.7MPLABXIDE下载器选择界面
选择“Next”,进入“SelectCompiler”界面,选择我们的编译器,即所谓的语言工具。
这里因为PIC16F877A单片机是8位的,所以我们选择XC8编译器。
图1.8MPLABXIDE编译器选择界面
选择“Next”,进入“SelectProjectNameandFolder”,设置工程名和工程路径。
图1.9MPLABXIDE工程名及路径设置界面
点击“Finish”完成工程的建立。
刚刚建立的工程是没有任何内容的,如下图所示:
图1.10MPLABXIDE新建工程后的界面
接下去,我们就可以新建文件或添加已经存在的文件,完成软件工程的代码编辑工作。
常用的工程设置及工具含义:
创建项目之后,可以在ProjectProperties(项目属性)对话框中查看或更改项目属性。
通过以下任一方式访问该对话框:
•在Projects窗口中右键单击项目名称,然后选择“Properties”(属性)。
•在Projects窗口中单击项目名称,然后选择File>ProjectProperties。
里面有我们经常要设置的目标板的供电方式及编译的优化等级等等。
图1.11MPLABXIDE工程属性设置界面
其它的一些设置基本都在“Tool”-“Options”里面进行设置,如下图所示:
图1.12MPLABXIDE选项设置界面
基于MPLABXIDE配置位设置
MPLABXIDE和MPLABIDE8不同。
MPLABIDE8可以再界限中选择配置位就行。
配置选项可以不写在代码中。
MPLABXIDE如果要配置的话必须在代码中写出配置。
配置字中最重要的配置选项就是:
看门狗配置如:
WDTE<1;0>;一般选择关闭看门狗。
MCLRE复位脚的配置如:
MCLRE;一般选择复位脚作I/O,PIC16F877A无此选项。
不用设置。
震荡器的选择:
如:
FOSC<2:
0>;根据实际情况配置,我这里一般选用XT,即标准的振荡频率1M~4M。
因为如果这三个没有配置好的话程序根本无法运行。
其他配置可以看数据手册此不赘述。
图1.13MPLABXIDE开发环境PIC设置位的设置界面
实例介绍:
打开MPLABXIDE 在菜单栏中点击Window->PIC MemoryVeiws->Configurationbits,如下图所示:
图1.14MPLABXIDE开发环境PIC设置位的设置界面
2在出现的ConfigurationBits中的改变每个配置中的option选项,红色的就是我们改变过的配置选项
图1.15MPLABXIDE开发环境PIC设置位的设置界面
3配置完成后点击GenarateSourceCodetoOutput产生配置源代码。
图1.16MPLABXIDE开发环境PIC设置位的设置界面
将其中的
#include
#pragmaconfigFOSC=XT//OscillatorSelectionbits(XToscillator)
#pragmaconfigWDTE=ON//WatchdogTimerEnablebit(WDTenabled)
#pragmaconfigPWRTE=OFF//Power-upTimerEnablebit(PWRTdisabled)
#pragmaconfigBOREN=OFF//Brown-outResetEnablebit(BORdisabled)
#pragmaconfigLVP=OFF//Low-Voltage(Single-Supply)In-CircuitSerialProgrammingEnablebit(RB3isdigitalI/O,HVonMCLRmustbeusedforprogramming)
#pragmaconfigCPD=OFF//DataEEPROMMemoryCodeProtectionbit(DataEEPROMcodeprotectionoff)
#pragmaconfigWRT=OFF//FlashProgramMemoryWriteEnablebits(Writeprotectionoff;allprogrammemorymaybewrittentobyEECONcontrol)
#pragmaconfigCP=OFF//FlashProgramMemoryCodeProtectionbit(Codeprotectionoff)
上述代码粘贴在main.c中即可。
另外,为了编辑过程中支持中文注释,需要对编码格式进行更改,右键点击工程名,选择“Properties”->“General”,在Encoding下拉选项中选择“GB2312”选项。
如图所示:
图1.17MPLABXIDE开发环境工程属性的设置界面
下面重点介绍一下在MPLABXIDE中如何使用SVN。
在介绍SVN的使用之前,先让我们来了解一下SVN。
SVN是什么?
有一个简单但不十分精确比喻:
SVN=版本控制+备份服务器
简单的说,您可以把SVN当成您的备份服务器,更好的是,他可以帮您记住每次上传到这个服务器的档案内容。
并且自动的赋予每次的变更一个版本。
通常,我们称用来存放上传档案的地方就做Repository。
用中文来说,有点像是档案仓库的意思。
不过,通常我们还是使用Repository这个名词。
基本上,第一次我们需要有一个新增(add)档案的动作,将想要备份的档案放到Repository上面。
日后,当您有任何修改时,都可以上传到Repository上面,上传已经存在且修改过的档案就叫做commit,也就是提交修改给SVNserver的意思。
针对每次的commit,SVNserver都会赋予他一个新的版本。
同时,也会把每次上传的时间记录下来。
日后,因为某些因素,如果您需要从Repository下载曾经提交的档案。
您可以直接选择取得最新的版本,也可以取得任何一个之前的版本。
如果忘记了版本,还是可以靠记忆尝试取得某个日期的版本。
为什么要用SVN?
备份工作档案是十分重要的。
您永远不知道计算机上的硬盘何时会坏掉。
根据经验法则再加上摩菲定理,坏事情往往都发生在最重要的时刻。
例如,要release东西的前一刻,硬盘完全坏掉,无法修复。
所以,常常备份工作数据是非常重要的。
大部分公司的server都会有专门的备份机制,甚至是异地备援。
绝对比放在自己的计算机里头,或是随身碟上面来的安全。
版本控管非常重要。
您无法保证手头上最新版本永远都是对的。
很多时候,在经过数天努力工作后,您才发现走错方向。
需要将所有的修改回复到数天前版本。
没有几个人能够完全记住自己修改过什么东西。
如果没有做好版本控管,那么,最差的状况就是要全部重来。
伙伴间的数据同步也是非常重要的。
很多时候,除了您个人外,还有其它的伙伴也需要您的档案。
怎么把最新的档案提供给伙伴呢?
用e-mail?
根据经验,用e-mail是一个很差的办法。
到了最后,根本就不知道哪一封e-mail才是新的。
因为可能您最新的e-mail已经被当成垃圾信给丢了。
别忘了,现在很多e-mail软件都有anti-spam的功能,说不定这些信件都被当成广告信给处理掉了。
而且,您也应该知道一般档案如果放在e-mail内,档案大小会变得比较大(通常是原来的4/3倍以上)。
如果每天更新一次,恐怕几天没收信的话,信箱就爆了!
如果没有一个好的办法,备份不同版本是很耗费硬盘空间的。
例如:
您有一个总共10MB的目录,使用单纯的档案备份。
如果有10个版本就会变成100MB。
20个版本就有200MB。
如果,不想备份这么多版本,势必就是要减少备份的次数。
拉长备份周期将会导致数据遗失的危险性增高。
把旧的不需要的备份删除?
根据经验,只要时间一拉长,您跟本就不知道一个月以前的版本是重要或者是不重要。
SVN能帮我们解决上面的问题吗?
答案是肯定的:
SVNRepository可以是自己计算机上的一个目录,或者是随身碟(不建议这样用)。
当然也可以是公司的服务器。
SVN有很棒的版本控管机制。
所有上传的版本都会帮您记录下来。
日后您可以随时取得某一个时刻的版本。
而且,也有版本分支及合并等好用的功能。
SVN可以让不同的开发者存取同样的档案,并且利用SVNServer作为档案同步的机制。
也就是说,您有档案更新时,无须将档案寄给您的开发成员。
只需要告诉他新的版本已经在SVNServer上面,请他自己去SVNServer上面就可以取得最新版本。
而且,SVNServer也可以做到当您上传新版本后,自动发信给相关的成员。
SVN的存放档案方式是采用差异备份的方式。
也就是说,他只会备份有不同的地方。
所以很省硬盘空间。
此外,他也可以针对所谓的非文字文件进行差异备份。
MPLABXIDE具有一个内置的本地文件历史记录功能,这是NetBeans平台的补充功能。
该功能为本地项目和文件提供内置的版本控制支持,类似于传统的版本控制系统。
可用工具包括本地DIFF和文件恢复。
在项目或文件窗口右键单击一个文件可以查看本地历史记录选项。
要查看文件的本地历史记录:
•在项目或文件窗口中右键单击文件,并选择LocalHistory(本地历史记录)>ShowLocalHistory(显示本地历史记录)。
此处将会列出过去对文件进行的所有更改。
•在项目或文件窗口中右键单击文件,并选择LocalHistory>Revertto(还原为)。
此时将打开Revertto对话框,列出文档的所有先前版本。
选择一个并单击OK可还原为该版本。
如果更偏好使用完整的版本控制系统,也提供了对于CVS、Subversion和Mercurial的支持。
源代码控制可通过以下方式获取:
•Tools>Options,Miscellaneous(杂项),Versioning(版本控制)——设置版本控制程序。
•Team(团队)菜单——选择版本控制程序子菜单。
•Window>Versioning——打开版本控制窗口。
需要保存到存储库(repository)中的项目文件:
MPLABXIDE项目定义为包含nbproject子目录的目录。
该nbproject子目录包含编译项目映像所需的文件。
nbproject下的一些文件将根据需要重新生成。
因此,不需要将它们提交到版本控制存储库。
将重新生成因而不需要保存在存储库中的文件包括:
•nbproject/Makefile-*
•nbproject/Package-*
•nbproject/private
•nbproject/private/*
其中,private是一个目录。
在MPLABXIDE项目目录中,存在另一个仅在创建项目时创建的Makefile文件;因此应将它提交到存储库中。
更多信息:
关于使用本地文件历史记录和/或源代码控制的更多信息,请参见NetBeans帮助主题IDEBasics>VersionControlandFileHistory(版本控制和文件历史记录)下的目录。
关于以上源代码控制程序的进一步信息,请参见:
•CVS——http:
//www.nongnu.org/cvs/
•Subversion——http:
//subversion.tigris.org/
•Mercurial——
注:
MPLABXIDE最新版本也不能支持SVN1.7及以上版本,故如果使用MPALB内部的集成SVN菜单,只能下载SVN1.6版本到SVN1.5之间的版本。
首先,介绍MPLABXIDE内部集成的Subversion版本控制菜单的使用:
第一步设置Subversion的安装路径及用户名密码等,
依次,Tools->Options,Miscellaneous(杂项),Versioning(版本控制),Subversion,打开如下窗口,按图设置。
图1.18MPLABXIDE开发环境SVN的设置界面
执行Team->Subversion->Checkout…,
图1.19MPLABXIDE开发环境SVN的操作界面
弹出如下界面:
图1.20AMPLABXIDE开发环境SVN环境设置界面
点击“Next”,弹出如下界面:
图1.20BMPLABXIDE开发环境SVN环境设置界面
点击“Finish”,完成文件从服务器到本地的下载,然后就可以添加到工程中,进行相关更改,可以看到,当我们编辑已经纳入到版本控制里面的文件时,再次点击“Team”菜单,里面的内容已经由图1.19变成了图1.20C的形式。
更加方便我们进行版本控制的操作。
图1.20CMPLABXIDE开发环境SVN环境设置界面
下面重点介绍一下单独使用外部SVN来进行版本控制,这种控制方式也是比较推荐的,因为MPLABXIDE支持的SVN版本比较低,基本不是主流的版本了。
而且,经过测试,MPLABXIDE对SVN的支持也不好,在验证SVN的用户名和密码时存在BUG(也许是版本不兼容问题)。
SVN的安装和使用具体可以参见《SVN客户端操作指导》。
当我们新开始一个软件工程开发时,首先申请SVN仓库申请一块空间,也就是得到一个SVN路径,当我们得到SVN路径,就可以进行SVN的版本管理了。
我们先建立一个SVN工作的文件夹,例如,我们先在E盘建立一个SVN_WORK的文件夹,然后再在里面根据我们的工程实际建立一个文件夹,比如PIC16F877A(名称不推荐使用中文)。
右键点击“PIC16F877A”这个文件夹,在弹出的菜单中选择SVNCheckout,弹出图1.21,如下图所示:
图1.21SVNCheckout设置界面
点击“OK”,进入PIC16F877A文件夹,我们就可以发现多了一个.SVN的隐藏属性的文件夹。
打开MPLABXIDE,根据我们上述章节所描述,开始在PIC16F877A文件夹下面建立一个新的软件工程,并且在其工程文件夹中再分别建立Source,Header文件夹,存放我们的C源文件和头文件。
完成后如图1.22所示:
图1.22新建CZF300_KEYBOARD工程目录图
新建我们项目的头文件及源文件,并放入相应的文件夹内。
完成后如图1.23所示:
图1.23MPLABXIDE新建立工程界面
回到PIC16F877A文件夹的上层目录,在PIC16F877A文件夹上点击右键,弹出图1.24所示界面,在红色框框中填写软件提交的备注。
图1.24SVNCommitted界面
以下四类文件因为是在编译过程中产生的文件,因此不需要上传到SNV中:
•nbproject/Makefile-*
•nbproject/Package-*
•nbproject/private
•nbproject/private/*
在软件开发及调试的过程中,建议每天做一次版本的提交,并编写相关版本的备注。
如果是多人开发,在每次软件更改前建议做一次SVNCheckout。