• 收藏
  • 评论(0)
分享到
微博
QQ
微信
LinkedIn
Keil Cx51编译器提供三条编译模式控制命令:SMALL,COMPACT,LARGE,它们对变量存储器空间的影响如下。

SMALL:所有变量都被定义在8051单片机的片内RAM中,对这种变量的访问速度最快。另外,堆栈也必须位于片内RAM中,而堆栈的长度是很重要的,实际栈长取决与不同函数的嵌套深度。采用SMALL编译模式与定义变量时指定data存储器类型具有相同效果。

COMPACT:所有变量被定义在分页寻址的片外XRAM中,每一页片外XRAM的长度为256字节:即所有变量存储在片外XRAM的某一页中。这时对变量的访问是通过寄存器间接寻址(MOVX @R0,MOVX @R1)进行的,变量的低8位地址由R0和R1确定,变量的高8位地址由P2口确定。采用这种模式时,必须适当改变配置文件STARTUP.A51中的参数:PDATASTART和PDATALEN;同时还必须对uVision2的“Options选项/BL51 Locator 标签页/Pdata框”中键入合适的地址参数,以确保P2口能输出所需要的高8位地址。采用COMPACT编译模式与定义变量时指定pdata存储器类型具有相同效果。

LARGE:所有变量被定义在片外XRAM中(最大可达64KB),使用数据指针DPTR来间接访问变量(MOVX @DPTR),这种编译模式对数据访问的效率最低,而且将增加程序的代码长度。采用LARGE编译模式与定义变量时指定xdata存储器类型具有相同效果。

Note:
1、在程序中定义的变量,若不指定其存储区域(data、idata、xdata等),则系统自动存放到上述编译模式指定的存储区。
2、在指定编译器编译模式情况下,要想将变量存放在其他区域,可指定变量修饰类型。(假设指定为small模式,则默认变量存储在片内RAM区,此时可指定变量为idata类型,即可将其存放在片外RAM中)
3、同一段代码,在不同编译模式下,编译出的代码code大小为:small < compact < large。
4、同一编译模式下,变量存储区域不同,编译出的代码code大小为:data < idata < xdata。

Keil的三种编译模式:smal、compact、large相关推荐

  1. 三种工厂模式的分析以及C++实现

    三种工厂模式的分析以及C++实现 简单工厂模式 简单工厂模式是工厂模式中最简单的一种,他可以用比较简单的方式隐藏创建对象的细节,一般只需要告诉工厂类所需要的类型,工厂类就会返回需要的产品类,但客户端看 ...

  2. hadoop离线阶段(第十三节)数据仓库、hive简介、hive安装和hive的三种交互模式

    目录 数据仓库 数据仓库的基本概念 数据仓库的主要特征 数据仓库与数据库区别 数据仓库分层架构 数据仓库元数据管理 Hive简介 什么是Hive Hive的特点 Hive架构 Hive与Hadoop的 ...

  3. STM32的三种BOOT模式

    文章目录 一.三种BOOT模式的对比 1.内部 FLASH 启动方式 2.内部 SRAM 启动方式 3.系统存储器启动方式 二.BOOT模式下代码运行后所在地址分析 1.从内部 FLASH 启动 2. ...

  4. 【云计算学习教程】IaaS、PaaS和SaaS:云计算的三种服务模式(精讲)

    文章目录 云计算IaaS服务模式精讲 第一层(云管理器) 第二层(集群管理器) 第三层(计算机管理器) 云计算PaaS服务模式精讲 1)半平台 PaaS 2)全平台 PaaS 云计算SaaS服务模式精 ...

  5. ASP.NET的三种开发模式

    前言 ASP.NET 是一个免费的Web开发框架,是由微软在.NET Framework框架中所提供的,或者说ASP.NET是开发Web应用程序的类库,封装在System.Web.dll 文件中.AS ...

  6. 原生 APP、Web、混合 APP,三种开发模式有何不同?

    前言 原生 App 又称Native App,该开发针对 IOS.Android.Windows 等不同的手机操作系统要采用不同的语言和框架进行开发:无论是从开发难度,价格还是周期来看,原生开发都更复 ...

  7. 2021年大数据Hive(二):Hive的三种安装模式和MySQL搭配使用

    全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive的三种安装模式和MySQL搭配使用 一.Hive的安装方 ...

  8. sqlserver 三种恢复模式

    sql server数据库提供了三种恢复模式:完整,简单和大容量日志,这些模式决定了sql server如何使用事务日志,如何选择它要记录的操作,以及是否截断日志.截断事务日志是删除己执行事务并把该日 ...

  9. 开关电源三种控制模式:PWM/PFM/PSM

    1. PWM/PFM/PSM 三种控制模式的定义 通常来说﹐开关电源(DC-DC)有三种最常见的调制方式分别为: 脉冲宽度调制(PWM) 脉冲频率调制(PFM) 脉冲跨周期调制(PSM) 在功率集成电 ...

最新文章

  1. MongoDB · 引擎特性 · MongoDB索引原理
  2. Leetcode 210. 课程表 II 解题思路及C++实现
  3. apache.camel_Apache Camel 3.1 –即将推出更多骆驼核心优化
  4. Encapsulate Collection(封装集合)
  5. Android开机广播和关机广播
  6. 实战经验:Oracle Lost Write Detection机制导致Select产生大量Redo
  7. python pil 模块将随机字符生成验证码
  8. Uva 11491 暴力贪心
  9. table固定表头行及列,其中行包含合并单元格
  10. python编写学生管理系统设计感想-python案例----学生管理系统(实现学员的增删改查功能)...
  11. 入门级CC(Smart3D)照片建模
  12. matlab的数字图像处理,基于MATLAB的数字图像处理分析及应用.pdf
  13. 神州数码:我国市民卡发展之路探讨
  14. 网络教育本科统考计算机和英语作文,远程教育本科统考英语真题及答案
  15. Opencv中视频播放与进度控制
  16. xticklabel 显示下划线_[转载]matlab坐标轴属性及标注
  17. 案例07:纹理金字塔
  18. 概率论 —— 随机事件与概率
  19. 思迪博软件在2021 Gartner主数据管理解决方案 魔力象限中被评为挑战者
  20. 恩墨学院举办OCM联盟活动BDA大数据联盟春季活动

热门文章

  1. 关于微信支付,退款操作,原路返回
  2. 提高自信的30个小方法
  3. 数据结构与算法分析 作业讲解文档目录
  4. VIM 显示行号方法
  5. python租房_爬虫深圳租房网站租房分析(python)
  6. python创建数组
  7. 异步height:calc_异步:您尚不知道的承诺(第1部分)
  8. 判断一个对象是否为空
  9. python怎么做笔记本(文本编辑器)
  10. 说是一种能力,不说是一种智慧