精华内容
下载资源
问答
  • /*2000H外部RAM数据送入3000H外部RAM单元,数据个数已在内部RAM85单元中*/ MOV DPTR,#2000H ;源数据区首地址 PUSH DPL ;源首地址暂存堆栈 PUSH DPL MOV DPTR,#3000H ;目的数据区首址 MOV R2,DPL ;目的首址暂存...

    /*2000H外部RAM数据送入3000H外部RAM单元,数据个数已在内部RAM85单元中*/
         MOV  DPTR,#2000H  ;源数据区首地址
         PUSH DPL         ;源首地址暂存堆栈
         PUSH DPL         
         MOV  DPTR,#3000H ;目的数据区首址
         MOV  R2,DPL      ;目的首址暂存寄存器
         moV  R3,DPH      
    LOOP:
         POP  DPH         ;取回源地址
         POP  DPL         
         MOVX A,@DPTR     ;取出数据
         INC  DPTR        ;源地址增量
         PUSH DPL
         PUSH DPH
         MOV DPL,R2      ;取回目的地址
         MOV DPH,R3      
         MOVX @DPTR,A    ;数据送目的区
         INC DPTR        ;目的地址增量
         MOV R2,DPL      ;目的地址暂存寄存器
         MOV R3,DPH 
         DJNZ 85H,LOOP   ;没完,继续循环
         RET             ;返回主程序

    展开全文
  • ESP32有520kB的内部RAM空间可以使用,这对于一般的情况是够用的,但是如果设备需要涉及音频或者显示图像等处理时,需要更大的内存空间来处理这些数据。ESP32支持扩展外部RAM,其实乐鑫已经在其ESP32 WROVER系列模组...

    一,为什么需要外部RAM

    ESP32有520kB的内部RAM空间可以使用,这对于一般的情况是够用的,但是如果设备需要涉及音频或者显示图像等处理时,需要更大的内存空间来处理这些数据。ESP32支持扩展外部RAM,其实乐鑫已经在其ESP32 WROVER系列模组中集成了一个4M大小的外部PSRAM。乐鑫官网文档对外部RAM作了详解:片外RAM

    乐鑫对于ESP32 WROVER的介绍也是:

    ESP32-WROVER 系列模组基于 ESP32-D0WD 双核芯片设计,其强大的双核性能适用于对内存需求大的应用场景,例如多样的 AIoT 应用和网关应用。

    如果你的设备需要使用大内存,例如wifi与ble并存,音频处理和图像显示功能,推荐使用这个模组。

    二 快速上手外部RAM

    2.1 使能外部RAM

    首先必须确保你的芯片是有外部RAM的。例如ESP32 WROVER模组。
    进入idf.py menuconfig->component config->ESP32-specific
    在下图的Support for external,SPI-connected RAM选项中按y选中,这样就使能了外部RAM。

    在这里插入图片描述

    2.2 配置外部RAM

    进入下一行的SPI RAM config进行配置更多的细节。这里讲一下比较重要的配置选项。

    在这里插入图片描述

    2.2.1 第二项配置系统的动态内存分配功能

    有三个选项,当选择Make RAM allocatable using heap_caps_malloc(..., M时,需要在代码中使用heap_caps_malloc()函数才能在外部RAM中分配内存。

    当选择Make RAM allocatable using malloc() as well时,代码中malloc()函数会自动从外部RAM中分配内存。
    当使能这个选项时,还能配置第九行Maximum malloc() size, in bytes, to always put in internal memory,该配置设置了一个阈值,这里我设置的是1024bytes,当使用malloc()分配内存时,如果分配的内存小于1024字节,就会从内部RAM中分配,否则从外部RAM中分配。

    2.2.2 将BSS段添加到外部RAM

    第13行中选择Allow .bss segment placed in external memory,可以将BSS段的lwip、net80211、libpp 和 bluedroid ESP-IDF 库中零初始化的数据存入外部RAM。此外全局变量,静态变量也可以放到外部RAM中,只需要在变量声明的地方加上宏EXT_RAM_ATTR,并将变量初始化为0。

    EXT_RAM_ATTR static int num[1024]={0};
     
    

    2.2.3 其他可放入外部RAM的数据

    第十行Try to allocate memories of WiFi and LWIP in SPIRAM firstly. If failed, allocate inter会尝试优先使用外部RAM给wifi与lwip协议栈分配内存,如果失败则会使用内部RAM分配。

    2.2.4 创建静态任务

    xTaskCreate()会使用内部RAM给任务分配任务堆栈。而使用xTaskCreateStatic()系统会检查传入的buff数组是否是属于内部RAM的。

    但对于不以任何方式直接或间接调用 ROM 中代码的任务,选项 Allow external memory as an argument to xTaskCreateStatic 将解除 xTaskCreateStatic 中的检查,从而允许任务堆栈存储在外部 RAM 中。但是,不建议使用此方法。

    实际使用过程中我也发现使用该函数创建任务会出现assert error的错误,不知道具体的原因是什么,希望了解的大佬解答一下。

    2.2.5 修改分区表

    由于使用了外部RAM会使partitionstable.bin增加,0x8000的偏移地址会出现覆盖,所以需要修改分区表和partitionstable.bin的偏移地址:
    idf.py menuconfig->Partition Table修改成0x10000
    如果使用本地的分区表,还需要将分区表修改如下

    这是由于partitionstable.bin默认是起始地址0x8000修改成0x10000后,由于其占用0xc00大小的空间,而nvs要实现内存对齐,至少要在0x11000处开始.

    # Espressif ESP32 Partition Table
    # Name,   Type, SubType, Offset,  Size
    nvs,      data, nvs,     0x11000,  0x4000,
    phy_init, data, phy,     0x15000,  0x1000,
    factory,  app,  factory, 0x20000, 0x300000,
    flash_tone,data, 0x04,   0x320000,  50k,
    

    在这里插入图片描述

    三 深度解放内部RAM

    IRAM是内部RAM,当我使用wifi+ble+ASR组成的一个工程时,编译后出现Section .iram0.text will not fit in region iram0_0_seg的错误,原因是IRAM的内存空间仍然不够,这是因为任务堆栈等数据是不能存放在外部RAM中的,所以IRAM中的内存依然紧张。

    解决办法是参考 https://github.com/espressif/esp-idf/issues/2566

    原理就是关闭一些网络功能的优化来减少IRAM的使用
    按照这位老哥的说法,将wifi,lwip的优化功能关闭,以减少IRAM的占用,这样下来能省出大约37KB的内存。这样就能正常的编译运行了。
    在这里插入图片描述
    具体步骤如下
    idf.py menuconfig->component config->Wi-Fi,将箭头所指的两项按n取消选择
    在这里插入图片描述
    lwip部分同理:进入idf.py menuconfig->component config->LWIP,取消箭头所指。

    在这里插入图片描述

    四 使用效果

    使用外部RAM前,可用的内存只有几十K,开启外部RAM后,可用的内存增加了几十倍,我使用内存获取函数,打印出内存的使用情况:

    下图表示SPI RAM初始化成功。
    在这里插入图片描述

    下图信息说明,外部RAM可用的内存为4049k bytes,当freertos开始运行,进入main函数后,esp_get_free_heap_size()获取到的可用内存为4253k bytes,这是由内部RAM和外部RAM的所有可用的内存的总和,大概可知道可用的内部RAM只有约200k bytes。可见外部RAM极大的扩展了可用内存。

    在这里插入图片描述

    五,小结

    由于外部RAM足足有4M 大小,使得esp32在应对语音,图像时依然能应对,对于一个使用了wifi,ble,lwip或者语音识别的程序来说,这4M的内存是必须的。

    在这里插入图片描述

    展开全文
  • Android内部存储和外部存储,参考http://blog.csdn.net/sinat_32955803/article/details/51259556及http://blog.csdn.net/fancylovejava/article/details/49490663 内部存储┐ 系统存储├─物理位置是位于手机...

    Android内部存储和外部存储,参考http://blog.csdn.net/sinat_32955803/article/details/51259556及http://blog.csdn.net/fancylovejava/article/details/49490663

    内部存储
    系统存储├─物理位置是位于手机内部的非易失性存储器上,就是俗称的ROM(机身内存),他们三个分别位于不同的分区上,
    系统缓存


    内部存储是辅助存储器(ROM机身内存)的一部分。内部存储所指的就是 “/data”这个文件夹,对于普通用户是不可见的,我们一般的应用程序都是安装在这个分区下的。应该就是安装内存。
    把手机连接电脑,能被电脑识别的部分就一定是外部存储,就是平时看到的手机存储空间。
    所有的安卓设备都有外部存储和内部存储,这两个名称来源于安卓的早期设备。
    用代码获得手机内部存储2.92G/11.85G,外部存储2.87G/11.85G;平板内部存储4.92G/5.33G,外部存储4.77G/5.18G。手机总的16G,有4.14G应该是系统存储,但看内部的11.85、5.33也应该少了一部分,不知道是什么。还是没有搞得很清楚

    Android读取RAM,ROM,SD卡容量

    参考http://www.cnblogs.com/dongdong230/p/4183080.html
    1. /**
    2. *显示RAM的可用和总容量
    3. */   
    4.     private void showRAMInfo(){  
    5.         ActivityManager am=(ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);  
    6.         MemoryInfo mi=new MemoryInfo();  
    7.         am.getMemoryInfo(mi);  
    8.         String[] available=fileSize(mi.availMem);  
    9.         String[] total=fileSize(mi.totalMem);  
    10.         rAMTextView.setText("RAM "+available[0]+available[1]+"/"+total[0]+total[1]);     
    11.     }  
    12. /**
    13. *显示ROM的可用和总容量 获取手机内部存储空间
    14. */
    15.     private void showROMInfo(){  
    16.         File file=Environment.getDataDirectory();   
    17.         StatFs statFs=new StatFs(file.getPath());    
    18.         long blockSize=statFs.getBlockSize();    
    19.         long totalBlocks=statFs.getBlockCount();    
    20.         long availableBlocks=statFs.getAvailableBlocks();    
    21.             
    22.         String[] total=fileSize(totalBlocks*blockSize);    
    23.         String[] available=fileSize(availableBlocks*blockSize);    
    24.             
    25.         rOMTextView.setText("ROM "+available[0]+available[1]+"/"+total[0]+total[1]);     
    26.     }  
    27. /**
    28. *显示SD卡的可用和总容量,获取手机外部存储空间
    29. */
    30.     private void showSDInfo(){  
    31.         if(Environment.getExternalStorageState().equals    
    32.         (Environment.MEDIA_MOUNTED)){//sd卡是否可用
    33.             File file=Environment.getExternalStorageDirectory();    
    34.             StatFs statFs=new StatFs(file.getPath());    
    35.             long blockSize=statFs.getBlockSize();    
    36.             long totalBlocks=statFs.getBlockCount();    
    37.             long availableBlocks=statFs.getAvailableBlocks();    
    38.                 
    39.             String[] total=fileSize(totalBlocks*blockSize);    
    40.             String[] available=fileSize(availableBlocks*blockSize);    
    41.                 
    42.             sDTextView.setText("SD "+available[0]+available[1]+"/"+total[0]+total[1]);    
    43.         }else {    
    44.             sDTextView.setText("SD CARD 已删除");    
    45.         }    
    46.     }  
    47.     /*返回为字符串数组[0]为大小[1]为单位KB或者MB*/    
    48.     private String[] fileSize(long size){  
    49.         float sizef = size;
    50.         int kmg = 1024;  
    51.         String str="";    
    52.         if(sizef>=kmg ){    
    53.             str="KB";    
    54.             sizef/=kmg ;    
    55.             if(sizef>=kmg ){    
    56.                 str="MB";    
    57.                 sizef/=kmg 
    58.                 if(sizef>=kmg){
    59.                     str="G";
    60.                     sizef/=kmg;    
    61.                 }          
    62.             }    
    63.         }    
    64.         /*将每3个数字用,分隔如:1,000*/    
    65.         DecimalFormat formatter=new DecimalFormat();    
    66.         formatter.setGroupingSize(3);    
    67.         String result[]=new String[2];    
    68.         result[0]=formatter.format(size);    
    69.         result[1]=str;    
    70.         return result;    
    71.     }    
    72.     @Override  
    73.     public boolean onCreateOptionsMenu(Menu menu) {  
    74.         // Inflate the menu; this adds items to the action bar if it is present.  
    75.         getMenuInflater().inflate(R.menu.main, menu);  
    76.         return true;  
    77.     }
    展开全文
  • ESP32 官方文档(十三)外部 RAM

    千次阅读 2018-09-02 17:03:34
    外部 RAM 介绍 ESP32 有几百 KiB 的内部 RAM,与... 外部存储器包含在存储器映射中,并且在某些限制内,可以与内部数据 RAM 相同的方式使用。 硬件 ESP32 支持与 SPI Flash 芯片并联的SPI(P)SRAM。 虽...

    外部 RAM

    介绍

    ESP32 有几百 KiB 的内部 RAM,与 ESP32 的其余部分位于同一个芯片上。 出于某些目的,这是不够的,因此ESP32还能够使用高达 4MB 的外部 SPI RAM 存储器作为存储器。 外部存储器包含在存储器映射中,并且在某些限制内,可以与内部数据 RAM 相同的方式使用。

    硬件

    ESP32 支持与 SPI Flash 芯片并联的SPI(P)SRAM。 虽然 ESP32 能够支持多种类型的 RAM 芯片,但 ESP32 SDK 目前仅支持 ESP-PSRAM32 芯片。

    ESP-PSRAM32 芯片是 1.8V 器件,只能与 1.8V 闪存器件并联使用。 确保在启动时将 MTDI 引脚设置为高信号电平,或者将 ESP32 中的保险丝编程为始终使用 1.8V 的 VDD_SIO 电平。 不这样做有损坏 PSRAM 和/或 Flash 芯片的风险。

    *要将 ESP-PSRAM 芯片连接到 ESP32D0W ,请连接以下信号:

    • PSRAM /CE (pin 1) - ESP32 GPIO 16
    • PSRAM SO (pin 2) - flash DO
    • PSRAM SIO[2] (pin 3) - flash WP
    • PSRAM SI (pin 5) - flash DI
    • PSRAM SCLK (pin 6) - ESP32 GPIO 17
    • PSRAM SIO[3] (pin 7) - flash HOLD
    • PSRAM Vcc (pin 8) - ESP32 VCC_SDIO

    ESP32D2W * 芯片的连接是 TBD。

    Espressif 销售 ESP-WROVER 模块,该模块包含 ESP32,1.8V Flash 和集成在模块中的 ESP-PSRAM32,可以包含在最终产品 PCB 中。

    软件

    ESP-IDF 完全支持将外部存储器集成到您的应用程序中。 ESP-IDF 可以配置为以多种方式处理外部 RAM:

    • 只初始化 RAM。 这允许应用程序通过解除指向外部 RAM 存储器区域(0x3F800000 及以上)的指针来手动放置数据。
    • 初始化 RAM 并将其添加到功能分配器。 这允许程序使用 heap_caps_malloc(size,MALLOC_CAP_SPIRAM) 专门分配一块外部 RAM。 可以使用此内存,然后使用正常的 free() 调用释放。
    • 初始化 RAM,将其添加到功能分配器,并将内存添加到可由 malloc() 返回的 RAM 池中。 这允许任何应用程序使用外部 RAM 而无需重写代码以使用 heap_caps_malloc

    可以从 menuconfig 菜单中选择所有这些选项。

    限制

    使用外部 RAM 有一些限制:

    • 禁用闪存缓存时(例如,因为正在写闪存),外部 RAM 也变得无法访问;对它的任何读取或写入都将导致非法的缓存访问异常。这也是 ESP-IDF 永远不会在外部 RAM 中分配任务堆栈的原因。
    • 外部 RAM 不能用作存储 DMA 事务描述符的位置,也不能用作 DMA 传输的读取或写入缓冲区。必须使用 heap_caps_malloc(size,MALLOC_CAP_DMA) 分配将与 DMA 结合使用的任何缓冲区(并且可以使用标准的 free() 调用释放。)
    • 外部 RAM 使用与外部闪存相同的缓存区域。这意味着外部 RAM 中经常访问的变量几乎可以像内部 RAM 一样快速地读取和修改。但是,当访问大块数据(>32K)时,缓存可能不足,速度将回落到外部 RAM 的访问速度。此外,访问大块数据可以“推出”缓存的闪存,可能会使代码执行速度变慢。
    • 外部 RAM 不能用作任务堆栈内存;因此,xTaskCreate 和类似函数将始终为堆栈和任务 TCB 分配内部存储器,而 xTaskCreateStatic 类型函数将检查传递的缓冲区是否是内部的。但是,对于不以任何方式直接或间接调用 ROM 中的代码的任务, menuconfig 选项 CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY 将消除 xTaskCreateStatic 中的检查,从而允许外部 RAM 中的任务堆栈。但是,不建议使用此方法。

    因为有一些对内部存储器有特定需求的情况,但也可以使用 malloc() 来耗尽内部存储器,因此有一个专门为无法从外部存储器中解析的请求而保留的池;分配任务堆栈,DMA 缓冲区和在禁用缓存时仍可访问的内存从此池中提取。此池的大小可在 menuconfig 中配置。

    芯片版本

    ESP32 的某些修订存在一些问题,这些问题会对外部 RAM 的使用产生影响。 这些内容记录在 ESP32 ECO 文档中。 特别是, ESP-IDF 以下列方式处理提到的错误:

    ESP32 rev v0

    ESP-IDF 没有针对此版本硅片中的错误的解决方法,它不能用于将外部 PSRAM 映射到 ESP32s 主存储器映射中。

    ESP32 rev v1

    当某些机器指令序列在外部存储器位置 (ESP32 ECO 3.2) 上运行时,此芯片版本中的错误会带来危险。 为了解决这个问题,编译 ESP-IDF 的 gcc 编译器已经扩展了一个标志: -mfix-esp32-psram-cache-issue。 将此标志传递给命令行上的 gcc,编译器可以解决这些序列,并只输出可以安全执行的代码。

    在 ESP-IDF 中,当您选择 CONFIG_SPIRAM_CACHE_WORKAROUND 时,将启用此标志。 ESP-IDF 还采取其他措施确保不使用 PSRAM 访问和违规指令集的组合:它链接到使用 gcc 标志重新编译的 Newlib 版本,不使用某些 ROM 函数并为 WiFi 分配静态内存叠加。

    参考资料

    展开全文
  • 谈程序在RAM,FLASH 和外部RAM中运行的速度   以TMS320F28335芯片为例 在内部RAM中程序能够,达到150MHZ,也即150MIPS.   用下面这段程序测试:    for(;;)
  • 问题背景:stm32F103zd芯片开发代码,内部RAM不足,...修改目的:同时使用内部RAM和外部RAM。 以下为内部RAM内存分配文件:   图中RAM的地址为:0x20000000-0x20010000,一共64K。 修改方案:  增加一块...
  • NORNAND flash区别,RAM ROM区别

    千次阅读 2015-01-17 12:31:38
    RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。另一种称为动态RAM(Dynamic RAM...
  • 单片机ram和rom的区别

    千次阅读 2017-01-02 11:13:15
    单片机运行时需要调用某个程序/函数/固定数据时就需要读取ROM,然后在RAM中执行这些程序/函数的功能,所产生的临时数据也都存在RAM内,断电后这些临时数据就丢失了。ROM:(Read Only Memory) 程序存储器在单片机中...
  • 在使用emwin的时候由于占用的变量较多,出现了STM32F207内部RAM不够用的尴尬局面,开发板自带了4M的外部SRAM,因此考虑速度存储的平衡,使用芯片内部RAM作为堆栈区使用,则用来存储其他变量 修改内容: 启动文件...
  • 51单片机经常要使用一些外部器件,有些器件内部有寄存器,一般都把这些寄存器当做外部RAM读写。以IC卡读卡芯片RC500为例,这个芯片有D0-D7共8个数据线,接在51的P0口,D0-D7既做地址线也做数据线。RC500的NWR、NRD、...
  • keil程序在外部RAM中调试的问题总结

    千次阅读 2018-07-14 22:48:41
    但是有些时候内部RAM并不够用,这就需要将程序装入外部RAM中调试,而在这个过程中可能会出现各种各样的问题,在这里我将会把我遇到过的一些问题需要注意的地方总结一下,希望能够对大家有所帮助。有错误的地方也...
  • 51汇编笔记-与外部RAM交换数据

    千次阅读 2017-01-15 11:47:32
    累加器A与片外RAM之间的数据传递类指令  MOVX A,@Ri  MOVX @Ri,A  MOVX #9; A,@DPTR ... 0)@符号修饰的寄存 会把寄存器的内容当做地址来看,movx与外部RAM传递数据的指令,内部只需要mov
  • 51单片机的片内RAM和片外RAM区别

    千次阅读 2020-05-16 19:27:44
    但是单片机的这 512 字节的 RAM在地位上并不都是平等的,而是分块的,块与块之间在物理结构用法上都是有区别的,因此我们在使用的时候,也要注意一些问题。 51 单片机的 RAM 分为两个部分,一块是片内 RAM,一块是...
  • NOR flashNAND flash区别,RAM ROM区别

    千次阅读 2017-09-11 11:35:41
    ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。  ...
  • http://blog.lehu.shu.edu.cn/Lucifer/A21903.html  (1)数据传送类指令(7种助记符) MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送; MOVC(Move Code)读取程序存储器数据表格
  • ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。...
  • 单片机外部RAM的数据传送

    千次阅读 2016-01-25 11:31:45
    单片机传送数据将存储器中 0000H--00FFH 中的数据传送到 2000H--20FFH中 悬赏分:30 - 解决时间:2009-10-4 09:42 =======================================其他回答:如果是51单片机,应该这样: MOV DPL, #00H ...
  • 单片机内部扩展RAM

    千次阅读 2015-07-15 12:18:52
    51单片机内部只有128字节的RAM(8051),而8052有256字节的RAM,低128字节RAM直接或间接寻址都可以,高128字节RAM与SRF特殊功能寄存器共用地址,SFR只能直接寻址,高128...这个RAM还是叫外部RAM,不过在芯片内部,之
  •  * 获取手机内部剩余存储空间  *  * @return  */  public static long getAvailableInternalMemorySize() {  File path = Environment.getDataDirectory();  StatFs stat = new StatFs(path.getPath());  ...
  • 51单片机内部ram

    千次阅读 2013-08-20 17:55:54
    51单片机默认的内部RAM只有128字节,52单片机增加至256字节,STC89C...现在新出的51单片机都在内部扩展了外部RAM,通常的情况是256B+1024B的RAM组合,不过在芯片内部之所以还叫外部RAM是因为是用外部总线连接的,访问方
  • keil将程序装入外部RAM中调试的方法,以及在实际项目中遇到的实际问题相应的解决方案,希望对大家有所帮助。
  • 程序下载到NORFLASH中后,选择从NORFLASH启动,自动执行,NORFLASH中执行代码,内部RAM分配变量;NORFLASH本身地址映射为0X0000000,内存选用内部RAM。 程序下载到NANDFLASH中后,选择从NANDFLASH启动,会自动搬运4K...
  • 一直以来对手机设置中的RAM内部存储空间不理解,做手机三年了别人问起来我都是稀里糊涂的,在加上今天老板让我将nand区域划分出一块作为手机内部存储使用,我彻底糊了,遂下决心搞懂了下面几个概念: 以下概念都...
  • Ram和Rom

    千次阅读 2015-09-14 16:36:55
    惯例: 我是温浩然: 转载文章,要在明显位置标注转载来源:...随机存取存储器(random access memory,RAM)又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读
  • ARM中FLASH和RAM、ROM的区别

    千次阅读 2019-03-14 08:49:27
    RAM(Random Access Memory )随机存取存储器,主要作用是存储代码数据供CPU 需要时调用,跟计算机里面的内存差不多,主要是用来存放程序运行中的过程数据,掉电后就会丢失之前的数据,所以程序在上电时需要进行初始...
  • ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。 本文引用地址:http://www.eepw.com.cn/article/275436.htm  ROM在系统停止供电的时候仍然可以保持数据,而RAM...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,299
精华内容 15,319
关键字:

外部ram和内部ram的区别