DP-51+开发工具上程序运行及BANK原理和实现方式.PDF

DP-51+开发工具上程序运行及BANK原理和实现方式.PDF

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DP-51+开发工具上程序运行及BANK原理和实现方式.PDF

广州周立功单片机发展有限公司 Tel :(020 Fax http:// DP-51+开发工具上程序运行及 BANK 原理和实现方式 一个标准的 8051 器件能寻址 64KB 的代码地址空间。对于超过 64KB 的代码,单片机系统通常采用代码 分页 (CODE BANKING)的方式来扩展程序空间。本篇文章主要讲述 8051 器件中程序地址指针的运行原理和 方式,并介绍了广州致远电子有限公司的 DP-51+开发工具中程序的运行方式及如何利用代码分页来实现超 过 64KB 代码空间的地址空间扩展。希望读者可以通过在 DP-51+及其 DP 系列开发工具上的实验,理解 8051 系列单片机程序的运行原理,尤其是许多初级读者十分头疼的代码分页实现方式。 一、 8051 程序执行方式及 DP-51+程序的运行模式 程序执行方式是单片机的基本工作方式。所执行的程序可以放在单片机内部 ROM,外部 ROM 或内部外 部 ROM 同时运行。所有程序的开始指针都是从 0X0000 开始。8051 有一个 EA 管脚可以选择程序是在单片机 内部ROM 开始运行还是在片外 ROM 开始运行。当 EA 为高电平时,芯片将从内部 ROM 开始执行程序,如果程 序计数器超过了片内程序存储器的地址指针,芯片开始访问外部程序存储空间。当 EA 为低电平时,芯片将 直接从外部程序存储空间的 0X0000 开始运行程序。对于超过 64K 的地址空间,单纯凭借单片机的 P0,P2 口 已经不能完成这个任务,因此需要采用BANK(代码分页)技术扩充其地址空间。 在 DP-51+开发工具,扩展了一块 AT29C040A 的 512KB FLASH 程序存储器。系统通过一个状态开关 (RUN,MON,LOAD)来选择单片机执行方式,下面分别介绍这三种方式下程序的运行模式: 1. LOAD 方式 LOAD 方式是程序下载方式,它是通过配套的 DPFLASH 工具将 HEX 文件下载到片外 FLASH 中。其原理是 利用单片机内部固化的 LOAD 程序实现其功能。LOAD 程序一方面与 DPFLASH 进行串口通讯,接收 DPFLASH 发过来的的指令和 HEX 文件数据,另一方面按照 DPFLASH 的指令和相应数据对片外 FLASH 程序存储器进行 读写,擦除等操作,并将状态结果反馈给 DPFLASH。因此,LOAD 方式是单片机运行内部程序的过程。注意 单片机内部的 LOAD 程序不可以擦写,否则将影响到开发板的正常运行。 2. MON 方式 MON 方式是开发板仿真调试方式。在这种方式下,首先需要利用DPFLASH 将 MON51 监控程序下载到 FLASH 片外程序存贮器的 0X0000~0X3FFF 地址空间中。MON 方式采用的是单片机运行外部程序的方式。因此 MON 方式开始时单片机首先运行 MON51 监控程序。MON51 的功能一方面接收从Keil C51 发过来的调试信息和相 应数据,另一方面对用户程序进行断点设置、代码运行等调试动作,并将相应信息反馈给 Keil C51,从而 完成调试动作。 需要注意的是,MON51 占用了FLASH 中的 0X0000~0X3FFF 地址空间。因此,用户程序起始地址必须位 于 FLASH 的 0X4000 地址空间以外的区域,否则将可能覆盖 MON51 程序。用户程序的中断向量也需要分配在 0X4000 空间以上,MON51 监控程序将把中断信息映射到用户的中断程序中,从而实现用户中断程序的运行。 3. RUN 方式 RUN 方式就是单片机运行片外程序的过程。在这种方式下,单片机运行从 0X0000 开始的用户程序。因 此,对于刚刚进行完 MON 方式的程序代码,请记住将中断向量分配到 0X0000 开始的空间中,否则将执行不 了用户的中断程序。 正常使用情况下,用户运行的程序都在FLASH 的0X0000~0XFFFF 的地址空间中。如果没有相应的代 码分页 (CODE BANKING )设置,Keil C51 将无法编辑超过 64KB 地址空间的程序。以下将详细的讲解分 页的原理和在 DP-51+ 中的实现过程。 二、 代码分页(CODE BANKING )的原理和实现 一个标准的 8051 器件能寻址 64KB 的代码空间。对于超过 64KB 的代码,单片机系统通常采用代码分 页 (CODE BANKING)的方式来扩展程序空间。代码分页的机理就是将地址空间分成小于或等于 64

文档评论(0)

wendang_12 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档