基于Keil的51单片机汇编程序多文件编译

来源 :中国电子商情 | 被引量 : 0次 | 上传用户:yangzb5
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  引言:本文结合Keil μVision2程序开发流程,描述了51单片机汇编程序多文件编译的实现方法。通过多文件编译的使用,大大提高了汇编程序代码的可读性、可扩展性,同时也很大程度地提高程序代码的执行效率以及内存空间的使用率,避免内存空间的浪费。
  一、序言
  近年来,随着C语言的进一步推广使用,绝大多数的工程师都倾向于使用C语言进行单片机系统开发,汇编语言由于可读性、通用性、可移植性差的原因,很难满足产品开发的需求。但是汇编语言具有执行效率高、占用内存空间小等特点,在某些应用领域还是具有无可替代的作用。
  本文结合Keil μVision2程序开发流程,描述了51单片机汇编程序多文件编译的实现方法。通过多文件编译的使用,大大提高了汇编程序代码的可读性、可扩展性,同时也很大程度地提高程序代码的执行效率以及内存空间的使用率,避免内存空间的浪费。
  二、Keil μVision2程序开发流程简介
  Keil μVision2是美国Keil Software公司出品的51系列兼容单片机软件集成开发环境,该软件提供宏汇编器、链接/定位器、库管理器、调试器以及目标文件转换器等工具,是51单片机系统开发的首选工具。
  Keil μVision2集成开发环境的编译流程如下:首先宏汇编器对汇编源程序文件进行编译,生成扩展名为.OBJ的目标文件和扩展名为.LST的列表文件,紧接着链接/定位器将所有的.OBJ文件进行绝对地址分配,链接生成包含绝对地址的目标文件和扩展名为.M51的地址文件,最后由目标文件转换器生成可用于编程器烧写、扩展名为.HEX的可执行文件。
  三、汇编程序多文件编译实现
  在Keil μVision2集成开发环境下,我们可以根据不同的硬件模块、功能模块分开编写应用子程序,进行模块化管理,实现多文件编译,这样就可以大大提高汇编程序代码的可读性、可扩展性。以下首先对段和模块的概念进行描述。
  一个段可以是一块程序代码或者是一个数据块。根据其地址空间是否可以被链接/定位器更改,段可以分为可定位段和绝对地址段。在定义可重定位段的时候需要对其段名、类型及其属性进行定义。一个段可以分在不同的程序模块中,只要具有相同的段名,在编译过程中链接/定位器会把它们合并到一起。在定义绝对地址段的时候直接人为分配绝对地址,链接/定位器不能对改地址进行更改。绝对地址段没有段名,也不能给其他段结合。
  模块是一个可以被单独编译的代码单元,可以包含一个或多个段或者部分段,一个模块既可以是单个文本文件,也可以通过INCLUDE指令把几个文本文件合并在一起。在程序编译过程中,汇编器会把一个模块编译为一个目标文件,也就是一个模块对应一个.OBJ文件。
  根据以上对段和模块的描述,汇编程序的多文件编译可以通过以下三个方法来实现:
  1、通过INCLUDE指令合并源文件
  在代码编写时,通过INCLUDE指令可以将一个源文件插入到当前源文件中,这样汇编器在编译的时候就会将INCLUDE指令之后的文件合并到当前文件进行编译,生成一个扩展名为.OBJ的目标文件。INCLUDE指令的格式如下:
  $ INCLUDE (文件名)
  通过该方式实现多文件编译时,插入的源文件既可以是扩展名为.ASM的汇编源程序文件,也可以是扩展名为.INC的包含文件。注意在被包含的源文件结尾不能有END指令,否则编译会停止运行。
  2、通过绝对地址段实现多文件编译
  Keil μVision2中提供以下定义绝对地址段的指令,通过这些指令可以定义代码段和各种数据段,并指定其绝对地址。
  由于绝对地址段在定义的时候对地址进行了分配,链接/定位器不能够对其地址进行更改,因此很容易造成地址重叠或者内存空间浪费,而且在后续对程序进行维护、升级的时候很有可能需要重新对地址进行分配,非常不利于程序的扩展和维护。因此绝对地址段通常是用在某些特定的场合,例如确定中断向量的入口地址、数据存储空间等。
  3、通过可重定位段实现多文件编译
  在Keil μVision2中,通过SEGMENT指令即可定义可重定位段。定义可重定位段时必须指定段的名称和存储类型,其格式如下:
  四、总结
  通过以上三种方式,均可以实现多文件编译,但是在实际使用过程中,INCLUDE指令通常用于包含特殊功能寄存器的定义等;绝对地址段则通常用于确定中断向量的入口地址、数据存储空间;而可重定位段的方式则广泛地用于各种代码段或数据段的定义。
  通过多文件编译的方式,解决了单文件编译会导致程序文件过于臃肿、可读性差、不便于维护等缺点,大大提高汇编程序代码的可读性以及可维护性。
  参考文献
  [1] Keil Software. A51/AX51/A251 Macro Assembler and Utilities.2001.
  [2]孙涵芳,徐爱卿.MCS-51/96系列单片机原理及应用(修订版).1996.
  (作者单位:1、珠海格力电器股份有限公司;2、格力电器(合肥)有限公司)
其他文献
引言:目前,语音、数据与视频的“三网融合”已经成为有线网络发展的趋势,要完成三者的有效融合,必须构建双向化的有线电视。为完成这一双向化改造任务,选择了EPON系统作为双向改造的首选。本文结合有线电视网络双向改造实践,简单介绍了EPON系统中的光网络和物理层传输,探讨了有关EPON系统ODN设计的有关对策及管理要求。  EPON系统凭借其带宽大、效率高、性价较高等优势,成为我国有线电视进行双向化改造
期刊
摘要:随着手机硬件性能的提高,现在手机上可以运行相对复杂的程序,这就为在手机平台上开发游戏提供了可能性。另外,手机具有便携性和可连接互联网等优点,使得开发手机游戏有比较好的前景。  一、项目需求分析  本章主要是说明推理猜谜手机游戏项目的需求分析。推理猜谜手机游戏项目的需求分析阶段是游戏项目的最初阶段。游戏能否取得成功,和需求分析阶段是密不可分的。  (一)需求分析流程  1.项目流程的分析  (
期刊
引言:当整个社会迈入电子信息时代后,智能表在许多方面都表现出了重要的作用。但在雷电入侵后,智能表往往会受到损坏,这是由于雷电会涌入智能表中导致其内部通讯与计算机连接发生故障,而当电涌超过计算机的承受能力时,智能表就会出现数据乱码、芯片损坏甚至影响到整个智能表的软件系统导致智能表发生故障。因而需要了解到智能表遭受雷击的原因以及其有效的防护措施。  一、雷击灾害现状  1、雷电作用的种类  雷电会通过
期刊
引言:信息技术的快速发展,视频通信的高可用性已经成为研究的一个重点。无线视频通信作为一个新的通信技术,与传统技术相比具有更明显的特点,对容错技术的应用带来了新的挑战。移动通信中大部分都是采取电波来完成视频传输,但是传输环境相对恶劣,经常会造成无线传播的耗损,为保证视频传播质量,需要对容错技术的应用进行更全面的研究。本文对无线视频通信的容错技术进行了分析。  传统的视频编码主要是围绕着比特流的概念组
期刊
引言:从介绍第四代移动通信基本概念入手,着重研究了可能采用的OFDM、软件无线电、智能天线、MIMO、基于IP的核心网技术,这些都是通信技术在实际当中的应用。通过对4G通信技术主要优势的分析,探讨了4G的基本特征,将为4G带来的更为广阔的应用领域和市场。  一、4G通信技术的发展趋势  4G通信技术的应用已经表现出了极大的优势,在未来的发展过程中,4G通信技术势必能够完全取代2G、3G通信技术,成
期刊
一、会计电算化相关理论  (一)会计电算化的概念  会计电算化是以电子计算机为主要工具的当代电子技术、信息技术应用到会计实务中的简称,是一个运用电子计算机实现的会计信息系统。它实现了财务数据处理的自动化,使传统的手工会计信息系统演变为电算化会计信息系统。更重要的是会计电算化是会计发展史上的一次重大革命,它不仅仅是会计发展的需要,而且是经济和科技对会计工作发展提出的要求。会计电算化系统的具体工作是用
期刊
引言:在整机装联中,布线是一个相当重要的环节,良好的布线会使得设备产品避免许多不必要的干扰,提高设备产品的抗干扰能力。然而,在整机装联中会遇到许多相应布线的问题,本文主要介绍了整机布线的原则以及常见问题及其处理情况。  整机布线设计就是将机箱中各种电零、部件之间进行电连接的布线设计,为生产提供工艺性设计文件,以保证布线位置与结构的合理性,实现整个机箱内元器件组合之间的电连接并且满足整机的电性能指标
期刊
引言:在经济飞速发展的今天,人民的生活水平不断提高、科学技术也在不断的发展进步,无线电通讯技术已经渗透到人民的生产生活中,从而迫使无线电技术不断的创新,开创出新的业务。近年来,随着电信市场的逐渐扩大,商家在巨大的利益面前,选择经营无线电业务,设台数量的增加导致频谱和卫星轨道资源供不应求。因此,要重视无线电台站的规范化管理,做好无线电的安全保障工作。  前言  当今世界面临的一个重大问题就是人们对无
期刊
引言:随着科技的进步,计算机技术也在飞速的发展,近些年越来越多的领域开始应用分布式的缓存技术,使其并受到了学术界的一致好评。但是分布式缓存技术在云环境下也面临着许多问题。分布式缓存技术推动了计算机的蓬勃发展,建立了一个在云计算环境下的计算机领域。本文就从分布式缓存技术的特点、现状、存在的问题和面临的挑战进行阐述[1]。  前言:二十一世纪人类进入了互联网时代,在信息技术快速发展的今天,计算平台成为
期刊
1、县级监测工作面临的主要问题  1.1大部分县级监测站监测经费不足,日常工作难以运转。近年来,由于县级监测站的日常工作量成倍增加,加上人员工资补贴、各类物品、仪器及其维修价格大幅度上扬,县级监测站财政不堪重负。目前,维持县级监测站工作正常运转,人均事业费支出大约需5万元。但我国很多县级监测站连起码的运行经费都得不到保证,大多数县级监测站把服务性监测、创收经营性收入当作第一要务来抓,以便用经营性监
期刊