精华内容
下载资源
问答
  • 本文档是适用于KEPServer6,用于对DataLogger的配置说明,里面已经所有英文部分都进行中文对应的解释,提升有使用KEPServer的用户的工作绩效。
  • data存储类型

    千次阅读 2019-07-13 16:36:26
    DATA区域寻址最快,应该把经常使用的变量放在DATA区,但是其存储空间有限, DATA区除了包含程序变量外,还包括了堆栈和寄存器组。 unsigned int data xx[8]; BDATA区是DATA中的位寻址区,这个区中声明变量就...

    DATA区域寻址最快,应该把经常使用的变量放在DATA区,但是其存储空间有限,
    DATA区除了包含程序变量外,还包括了堆栈和寄存器组。

    unsigned int data xx[8];

    BDATA区是DATA中的位寻址区,在这个区中声明变量就可以进行位寻址。
     

    unsigned int bdata status_byte;

    IDATA区使用寄存器作为指针来进行间接寻址,常用来存放使用比较频繁的变量。
    与外部寄存器相比,它的指令执行周期和代码长度相对较短。
     

     unsigned int idata xx[8];

    访问片外数据存储区比访问片内存储区慢,因为片外数据存储区是通过数据指针加载地址来间接
    寻址访问的。C51提供两种不同的数据类型xdata和pdata来访问片外数据存储区。
    pdata区只有256字节,仅指定256字节的外部数据存储区。但xdata区最多可达64KB,
    对应的xdata存储类型标识符可以指定外部数据区64KB内的任务地址。
     

     unsigned int pdata xx[8];   
     char xdata string[16];

    程序存储区只能读不能写,51单片机的内部或者外部,或者内外部都有,
    由单片机的硬件决定,C51提供了code存储类型来访问程序存储区。
     

    unsigner char code a[]={0x00,0x01,0x02,0x03,0x04,0x05,...};

     


    data :可直接寻址的内部数据存储区(128B)       可寻址片内ram
    idata:不可直接寻址的内部数据存储区(256B)    可寻址片内ram,允许访问全部内部ram
    bdata:可位寻址内部数据存储区(16B)               可位寻址的片内ram
    xdata:外部数据存储区(64KB)                           可寻址片外ram(64k地址范围)
    pdata:分页的外部数据存储区                                分页寻址片外ram(MOVX@R0)(256 BYTE/页),最好不用,据说有BUG

    code :程序存储区(64KB)               程序存储区(64k地址范围),对应MOVC@DPTR

     

    data 定义的是芯片的内核RAM,如51系列的前0X00-0X7F,和4个分组的R1-R7,所占用的区域.
    xdata 定义的芯片内核外部的扩展RAM,包括芯片外扩展的RAM,和芯片内扩展的RAM.

    展开全文
  • 文章目录存储类型使用方法详细说明内部RAM结构dataidatabdatapdataxdatacode关于作者 参考来源:Keil > Help > uVision Help > Cx51 Compiler User’s Guide > Language Extensions > Memory Types ...

    参考来源:Keil > Help > uVision Help > Cx51 Compiler User’s Guide > Language Extensions > Memory Types

    存储类型

    Cx51编译器可以访问8051的所有存储区域,声明变量时可以指定分配的存储区,也可以基于内存模型配置进行隐式分配。

    关键字存储空间地址范围访问方式
    data内部RAM(低位128 bytes)0x00~0x7F直接寻址
    idata内部RAM(全部256 bytes)0x00~0xFF间接寻址
    bdata内部RAM(指定 16 bytes)0x20~0x2F位寻址/直接寻址
    pdata扩展RAM(低位256 bytes)0x00~0xFF间接寻址
    xdata扩展RAM(最大64K bytes)0x0000~0xFFFF间接寻址
    codeFlash(最大64K bytes)0x0000~0xFFFF间接寻址

    实际项目中经常用到的是 xdata, code

    使用方法

    变量声明/定义时,添加关键字data,idata,bdata,pdata,xdata,code。

    unsigned char data  var1;
    unsigned char code  text[] = "ENTER PARAMETER:";
    unsigned char xdata array[100];
    unsigned char idata x,y,z;
    unsigned char pdata dimension;
    unsigned char xdata vector[10][4][4];
    unsigned char bdata flags;
    

    MCU访问内部RAM时,读写速度比扩展RAM速度快。

    因此在编写应用代码时,把频繁使用的变量放在内部RAM,使用较少的变量放在外部RAM。

    Flash中的变量,只能进行读操作,掉电保存。

    RAM中的变量,可以读写操作,掉电不保存。

    详细说明

    8051存储器结构

    在这里插入图片描述

    data

    data只能声明变量,不能声明函数。

    读写data变量时,MCU使用8位地址直接寻址内部RAM(低位128字节)。

    优点是读写速度最快,缺点是可用空间太小。

    idata

    idata只能声明变量,不能声明函数。

    读写idata变量时,MCU使用8位地址间接寻址内部RAM(全部256字节)。

    可访问空间为内部RAM的全部256字节,其中低位128字节和data空间重复,只是访问方式不同。

    bdata

    bdata只能声明变量,不能声明函数。

    读写bdata变量时,MCU使用8位地址位寻址/直接寻址内部RAM(部分16字节)。

    可访问空间为内部RAM的16字节,地址范围为0x20~0x2F,位于data空间内部。

    pdata

    pdata只能声明变量,不能声明函数。

    读写pdata变量时,MCU使用8位地址间接寻址扩展RAM(低位256字节,一个页)。

    xdata

    xdata只能声明变量,不能声明函数。

    读写xdata变量时,MCU使用16位地址间接寻址扩展RAM(全部地址,最大64K字节)。

    code

    code可以声明常量,也可以声明函数。

    读code常量时,MCU使用16位地址间接寻址Flash空间(最大64K字节)。

    声明函数时,编译器默认隐式添加code关键字,用户不用处理。


    本文完~

    关于作者

    微信公众号:萤火虫的电子笔记

    分享电子产品开发软、硬件方面知识,51单片机、STM32、ARM、AltiumDesigner PCB设计、开发平台、软件工具等知识分享。

    欢迎转发,请注明出处及作者。关注微信公众号,获取最新文章动态。
    在这里插入图片描述

    展开全文
  •  SQL Server中的分配单元分为三种,分别为存储行内数据的In_Row_Data存储Lob对象的LOB_Data存储溢出数据的Row_Overflow_data。下面我们通过一个更具体的例子来理解这三种分配单元。  我建立如图2所示的表。 ...
  • 通常存储数据存储库中的数据通常分为以下两个部分: 业务元数据 技术元数据 操作元数据 业务元数据 业务元数据包括以下内容: 商业词汇和术语 数据元素的业务定义 规则,指标KPI和其他更高级别的数据抽象 ...
  • data xdata code 存储类型与存储区关系

    万次阅读 多人点赞 2018-08-04 13:43:26
    存储类型与存储区关系 data —> 可寻址片内ram bdata —> 可位寻址的片内ram idata —> 可寻址片内ram,允许访问全部内部ram pdata —> 分页...

    存储类型与存储区关系
    data —>   可寻址片内ram
    bdata —>   可位寻址的片内ram
    idata —>  可寻址片内ram,允许访问全部内部ram
    pdata —> 分页寻址片外ram (MOVX @R0) (256 BYTE/页)
    xdata —> 可寻址片外ram (64k 地址范围FFFFH)
    code —> 程序存储区 (64k 地址范围),对应MOVC @DPTR

    uchar 和uchar code ,前面是可以改变的,后面是固定的,如表格。
    看看下面你就明白了!
    uchar aa[5];
    uchar code bb[5];
    在以上语句中,数组aa[5]中的内容是存放在数据存储区(RAM)中的,在程序运行工程中各个数组元素的值可以被修改,掉电后aa[5]中的数据无法保存。
    而数组bb[5]中的内容是存放在程序存储区(如flash)中的,只有在烧写程序时,才能改变bb[5]中的各元素的值,在程序运行工程中无法修改,并且掉电后bb[5]中的数据不消失。

    data 定义的是芯片的内核RAM,如51系列的前0X00-0X7F,和4个分组的R1-R7,所占用的区域.
    xdata 定义的芯片内核外部的扩展RAM,包括芯片外扩展的RAM,和芯片内扩展的RAM.

    data是指存储在内部RAM中的数据,xdata是指存储在外部RAM中的数据,code是存储在ROM中的数据。

    展开全文
  • 1.jQuery读取data-*会自动做数据类型转换,如果不想要这种转换只能使用attr()去获取原始的属性值。 2.jQuery读取data-*属性是懒惰的、按需的,只有真正使用这些属性的时候,jQuery才会将其加载到内存。 3.jQuery修改...

    "HTML5新特性:自定义数据属性data-*" 和 "jQuery数据缓存方案详解:$.data()的使用" 这2篇文章,分别介绍了不同的缓存方案,现在我们看下jQuery对HTML5中data-*的支持与差别。


    我们先看下$.fn.data()的使用,这个和$.data()是不一样的,前者是和某个jquery对象相关,后者则是全局方法。主要有data()和removeData()这2个实例方法。通过下面的例子和执行结果可以看到:$.fn.data()和$.fn.removeData()跟$.data的使用方式没有什么差别。

    // 支持任何数据类型
    $( "body" ).data( "name", "xx" );
    $( "body" ).data( "sex", "male" );
    $( "body" ).data( "foo", 100 );
    $( "body" ).data( "object", {myType: "test", count: 40 } );
    $( "body" ).data("array", [ 1, 2, 3 ]);
    
    
    // data()获取单个属性
    console.log($( "body" ).data( "foo" ));
    
    // 获取所有属性
    console.log($( "body" ).data());
    
    // 删除属性
    $( "body" ).removeData("foo");
    
    console.log($( "body" ).data());
    
    // 批量修改属性
    $( "body" ).data({"new" : 123, "name":"yy", "sex" : "female"});
    
    console.log($( "body" ).data());

    接着我们看下:jquery数据缓存方案与HTML5中data-*的关系。如果html元素有自定义属性data-*,那么调用$.fn.data()的时候会获取这些属性的值。
    <div id="one" data-role="page" data-last-value="43" data-hidden="true" data-options='{"name":"John"}'></div>
    <script>
    	console.log($("#one").data("role" ) === "page");
    	console.log($("#one").data("lastValue" ) === 43);
    	console.log($("#one").data("hidden" ) === true);
    	console.log($("#one").data("options" ).name === "John");
    </script>

    可以看到:jQuery获取data-*属性的时候,会自动进行数据类型转换,支持数字、对象和数组等类型。如果我们不想做这种自动类型转换,那么可以使用attr()函数获取原始值。


    代码1:

    <div id="one" data-role="page" data-last-value="43" data-hidden="true" data-options='{"name":"John"}'></div>
    <script>
    	var domOne = $("#one")[0];
    	
    	console.log($.data(domOne));
    	
    	console.log($("#one").data("role" ) === "page");
    	console.log($.data(domOne));
    	
    	console.log($("#one").data("lastValue" ) === 43);
    	console.log($.data(domOne));
    	
    	console.log($("#one").data("hidden" ) === true);
    	console.log($.data(domOne));
    	
    	console.log($("#one").data("options" ).name === "John");
    	console.log($.data(domOne));
    </script>

    通过代码1的执行结果,可以得出2点结论:

    1.HTML5中的data-*属性,会被jQuery附加到HTMLElement对象上,这就是为什么我们可以通过$.data()获取HTML5自定义属性值的原因。

    2.jQuery获取data-*是懒惰的、按需的。如果代码中没有使用这些HTML5自定义属性,那么jQuery是不会附加这些属性到HTMLElement对象上的。


    代码2:

    <div id="one" data-role="page" data-last-value="43" data-hidden="true" data-options='{"name":"John"}'></div>
    <script>
    	var domOne = $("#one")[0];
    	
    	console.log($("#one").data("role" ) === "page");
    	console.log($.data(domOne));
    	console.log($.data($("#one")[0]));
    	console.log($.data($("#one")));
    </script>

    更加可以证实:data-*是被绑定到HTMLElement对象上的,而不是jQuery封装后的对象上。


    代码3:

    <div id="b" data-name="b" data-hobby="swim"></div>
    <script>
    	// 试图使用jQuery修改name属性
    	$("#b").data("name","newb");
    	
    	// 使用DOM修改
    	$("#b")[0].dataset.hobby = "run";
    	
    	console.log(document.getElementById("b").dataset.name);
    	console.log(document.getElementById("b").dataset.hobby);
    </script>

    可以看到:使用jQuery修改属性只是在内存中的操作,并不会刷新dom。但是通过js中的dataset修改时候,会刷新DOM,这是两者最大的不同。


    代码4:

    <div id="a" data-name="a" data-hobby="books"></div>
    <script>
    	var domA = document.getElementById("a");
    	
    	console.log(domA.dataset.name);//a
    	console.log($("#a").data("name"));//a
    	
    	// 修改name
    	domA.dataset.name = "aty";
    	
    	console.log(domA.dataset.name);//aty
    	console.log($("#a").data("name"));//结果是a,不是我们期望的aty
    
    	// 修改hobby
    	domA.dataset.hobby = "run";
    	
    	console.log(domA.dataset.hobby);//run
    	console.log($("#a").data("hobby"));//run
    </script>

    这里需要特别注意:jQuery只会在第一次访问data-*的时候,将属性值加载到内存中;之后就和data-*无关了。The data-attributes are pulled in the first time the data property is accessed and then are no longer accessed or mutated (all data values are then stored internally in jQuery)。也就是说:data-*属性只是起初始化的作用。


    至此:jQuery数据缓存和HTML5 data-*属性介绍完毕,简单总结下比较关键的几点:

    1.jQuery读取data-*会自动做数据类型转换,如果不想要这种转换只能使用attr()去获取原始的属性值。

    2.jQuery读取data-*属性是懒惰的、按需的,只有真正使用这些属性的时候,jQuery才会将其加载到内存。

    3.jQuery修改属性值,都是在内存中进行的,并不会修改 DOM。

    4.data-*会被jQuery绑定到HTMLElement对象上,而不是jQuery封装后的对象上。

    5.最重要的一点:jQuery只会在data-*第一次被访问的时候将其加载到内存,之后再也不会重新读取了。


    展开全文
  • Android数据存储基础:

    2021-01-03 22:11:43
    1.1.Android 数据存储路径: 内部存储:  /data/data/packageName/databases: 数据库  /data/data/packageName/file: 内部存储  /data/data/packageName/shared_prefs : sp键值对存储  sdcard下:  /...
  • Kafka的数据存储

    千次阅读 2020-04-23 18:10:56
    四、数据存储原理分析 1、说明 (1)生产环境中,kafkaData-0下不会只存在一个index、log、timeindex文件;而是像这样: (2)、我们将index文件称为索引文件,里面存储着大量元数据;log文件称为数据文件,里面存储...
  • 这些资产存储源格式的几乎精确甚至精确的副本中,并且是原始数据存储的补充“- 根据Amazon的说法:“数据湖是一个集中式存储库,可让您以任何规模存储所有结构化和非结构化数据。您可以按原样存储数据,而不必先...
  • 数据类型(data type)

    千次阅读 2020-12-06 15:45:20
    计算机内部,一个字节可以表示一个数据或者一个英文字母,但是一个汉字需要两个字节表示。 1B=8bit 1Byte=8bit 1KB=1024Byte(字节)=8*1024bit 1MB=1024KB 1GB=1024MB 1TB=1024GB Java的数据类型分为两大类: ...
  • iOS SQLite存储blob类型data数据

    千次阅读 2015-05-23 21:27:26
    今天遇到一个问题,把NSData类型存到数据库,但是之前没有这么干过,所以也不知道是怎么操作的。之前往数据库里存的都是int、 NSString这种类型,对应的就是C语言的int 、和字符串。NSString 是OC的对象类型,想存...
  • Postgresql - Data types 数据类型

    千次阅读 2018-07-27 18:53:08
    PG有着最丰富的数据类型。我们看一下都有那种。摘自官网。 https://www.postgresql.org/docs/10/static/datatype.html   1. Numeric Name Storage Size Description ...
  • original_Data:原始数据存储库包含有关所学概念的实践示例,同时学习如何使用Java .data类型.data结构进行编码以及如何使用它们,以及所有这些方法均IntelliJ IDEA IDE和Java开发编辑器上编写的方法
  • 内部数据存储空间中 20H .. 2FH 区域中一个位的地址,或者 8051 位可寻址 SFR 的一个位地址。 code 是 0000H .. 0FFFFH 之间的一个代码地址。 data 0 到 127 之间的一个数据存储器地址,或者 128 .. ...
  • Spring Data JPA 数据加密存储

    千次阅读 2019-05-11 10:15:55
    用户数据存储到数据库中,如果不采取加密手段,那么只要有权限访问数据库的人,都能直接明了的看到用户所有的隐私数据,尤其中小型公司中,对于数据库权限的管理基本上都是由开发人员直接进行维护管理,这样对于...
  • 数据湖是较新的技术,拥有不断演变的架构。
  • 第三章:抽象数据类型(ADT)和面向对象编程(OOP)第一节:数据类型数据类型检查问题一:java中数据类型的分类基本数据类型(primitive types)对象数据类型(object types)二者不比较:先下图(*基本数据类型...
  • C51-数据存储类型

    千次阅读 2011-03-29 12:10:00
    它定义的任何数据类型必须以一定的存储类型的方式定位8051的存储区 中,否则便没有任何的实际意义。该编译器通过将变量、常量定义成不同的存储类型data,bdata,idata,pdata,xdata,code) 的方法,将他们定位...
  • 归纳一下python中不同数据保存格式的存储和读取,旨在方法整理和速度比较。 从数据角度分两种,一是ndarray格式的纯数值数据的读写,二是对象(数据结构)如dict的文件存取。 数值数据的读写 .bin格式,np.to...
  • VUE的data数据对象

    千次阅读 2020-04-26 09:47:43
    ◆Vue中用到的数据定义在data中 ◆data中可以写复杂类型数据 ◆渲染复杂类型数据时,遵守js的语法即可 结果: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8...
  • HBase数据检索流程与数据存储

    千次阅读 2017-08-17 09:20:21
    一、HBase数据检索流程  上图中,我们可以看出不管客户端读或写一个表的数据,首先链接Zookeeper,因为需要到Zookeeper中找读的数据,表是通过Region来管理,每个Region由RegionServer管理...
  • 什么是数据结构?

    千次阅读 2019-06-19 20:25:39
    数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术...
  • 说明:虽然没图,但文字表述很清楚,自己做...依照excel数据模版格式准备好建表语句,将中间过渡表对应12家村行数据库中分别建立。(二步骤中的第2小步) 将excel补录数据转换成txt文件导入中间过渡表。(二步骤中...
  • C++数据类型data type)介绍

    千次阅读 2019-07-14 12:08:00
    编写程序时,数据类型data type)定义了使用存储空间的(内存)的方式。  程序员通过定义数据类型data type),告诉特定存储空间这里要存储数据类型是什么,以及你即将操作他的方式。(注:存储空间有:堆...
  • 数据在堆栈中的存储方式 JavaScript数据类型分为: 分类 类型 原始数据类型(7种) Number、String、Boolean、Null、Undefined、Symbol(ES6)、BigInt(ES9) 引用数据类型 Object 先看两段代码 let num = ...
  • 数组可以存储引用类型数据吗 基础 (The basics) 只是为了使我们都同一页面上,我们假设您要执行上述情况,但是您没有可用于将数据保存表中的Access权限,或者您不想处理开销,或者您不能Excel中使用工作表,...
  • sequelize.define方法定义模型时,我们一般会为模型属性(列)指定类型type,它表示数据类型,Sequelize会按指定的类型在数据库中创建字段。这些类型被定义到了sequelize模块的DataTypes类中,它是一个静态类可以...
  • 直接贴代码了: Page({ data: { text: 'test', array: [{text: 'a'}], object: { text: 'blue' }, name: 'alipay', }, changeTitle() { ...不要直接去修改 data 里的数据 // this.data.text ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 767,283
精华内容 306,913
关键字:

数据的存储类型data在哪里