誌丁|:
泌1却■咕*匕肛讣f
G*ji&rs.leSdwcs-6ktikijmii
图1.13MPLABXIDE开发环境PIC设置位的设置界面
实例介绍:
打开MPLABXIDE在菜单栏中点击Window->PICMemoryVeiws->Configurationbits,如下图所示:
丄
图1.14MPLABXIDE开发环境PIC设置位的设置界面
2在出现的ConfigurationBits中的改变每个配置中的option选项,红色的就是我们改变过的配置选项
图1.16MPLABXIDE开发环境PIC设置位的设置界面
将其中的
#include
#pragmaconfigFOSC=XT
#pragmaconfigWDTE=ON
#pragmaconfigPWRTE=OFF
#pragmaconfigBOREN=OFF
#pragmaconfigLVP=OFF
//OscillatorSelectionbits(XToscillator)
//WatchdogTimerEnablebit(WDTenabled)
//Power-upTimerEnablebit(PWRTdisabled)
//Brown-outResetEnablebit(BORdisabled)
//Low-Voltage(Single-Supply)In-CircuitSerialProgramming
Enablebit(RB3isdigitalI/O,HVonMCLRmustbeusedforprogramming)
#pragmaconfigCPD=OFF//DataEEPROMMemoryCodeProtectionbit(DataEEPROMcode
protectionoff)
#pragmaconfigWRT=OFF//FlashProgramMemoryWriteEnablebits(Writeprotectionoff;all
programmemorymaybewrittentobyEECONcontrol)
#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(还原为)。
此时将打开Revert
to对话框,列岀文档的所有先前版本。
选择一个并单击0K可还原为该版本。
如果更偏好使用完整的版本控制系统,也提供了对于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帮助主题IDE
Basics>VersionControlandFileHistory(版本控制和文件历史记录)下的目录。
关于以上源代码控制程序的进一步信息,请参见:
?
CVShttp:
//www.nongnu.org/cvs/
?
Subversionhttp:
//subversion.tigris.org/
?
Mercurial——:
tp:
//
注:
MPLABXIDE最新版本也不能支持SVN1.7及以上版本,故如果使用MPALB内部的集成SVN菜单,只能下载SVN1.6版本到SVN1.5之间的版本。
首先,介绍MPLABXIDE内部集成的Subversion版本控制菜单的使用:
第一步设置Subversion的安装路径及用户名密码等,
依次,Tools->Options,Miscellaneous(杂项),Versioning(版本控制),Subversion,打开如下窗口,按图设置。
图1.18MPLABXIDE开发环境SVN的设置界面
执行Team->Subversion->Checkout
ITLAB1IOEtL.9EriCIBFBTlA;dcJanH:
EileEditllavlg-tlt5ourctKtfacctrEmQrtu<
|IcclsMt
L>
匚1Mefanlt〔
CVS卜
MeisiLtial.
处B'
FC:
OmC'
tdh
StiitPaa
frit|ec-1>s
9'
7[-
L»ititles
弹岀如下界面:
Kietery
FindI«sv4is
B
R*p^riIs¥U*.
CittileBuillJtls...
Quick5lan
MPIA&IDE^Usws-IPI
r^kearo(x
Import3L£jcsitor,T...
Etlozai.e...
pi
Cjmii...
FirporlJjff?
Llchi
抑讥过BiffFaul..B
COP/g,r
B-org^X...
Ewn..
图1.19MPLABXIDE开发环境SVN的操作界面
图1.20AMPLABXIDE开发环境SVN环境设置界面
点击“Next”,弹出如下界面:
图1.20BMPLABXIDE开发环境SVN环境设置界面
点击“Finish”,完成文件从服务器到本地的下载,然后就可以添加到工程中,进行相关更改,可以看
到,当我们编辑已经纳入到版本控制里面的文件时,再次点击“Team”菜单,里面的内容已经由图1.19变
成了图1.20C的形式。
更加方便我们进行版本控制的操作。
■PLAB蛊IDEvl.9&-PIC16F877A:
default
下面重点介绍一下单独使用外部SVN来进行版本控制,这种控制方式也是比较推荐的,因为MPLABXIDE支持的SVN版本比较低,基本不是主流的版本了。
而且,经过测试,MPLABXIDE对SVN的支持也不
好,在验证SVN的用户名和密码时存在BUG(也许是版本不兼容问题)。
SVN的安装和使用具体可以参见《SVN客户端操作指导》。
当我们新开始一个软件工程开发时,首先申请SVN仓库申请一块空间,也就是得到一个SVN路径,当
我们得到SVN路径,就可以进行SVN的版本管理了。
我们先建立一个SVN工作的文件夹,例如,我们先在E盘建立一个SVN_WORK的文件夹,然后再在里面根据我们的工程实际建立一个文件夹,比如PIC16F877A(名称不推荐使用中文)。
右键点击“PIC16F877A”这个文件夹,在弹出的菜单中选择SVNCheckout,弹出图1.21,如下图所示