东莞做网站哪个公司好,互联网运营推广,cpa游戏推广平台,网站建设案例模板存储器
一个单片机中存在rom和ram#xff0c;Soc也有rom和ram#xff08;ddrx#xff09;#xff0c;部分Soc还包含MMU#xff08;Memory Manage Unit 内存管理单元#xff09;— #xff08;用于系统内存管理#xff0c;比如说虚拟内存空间#xff0c;内存区间的…存储器
一个单片机中存在rom和ramSoc也有rom和ramddrx部分Soc还包含MMUMemory Manage Unit 内存管理单元— 用于系统内存管理比如说虚拟内存空间内存区间的分页分块。其rom和ram的设计需要根据所采用的芯片架构来定。不同的芯片架构具有不同的内存映射而且如果芯片架构中支持IMU那么内存映射也变得更加复杂。依最简单的情况来分析Cortex-M3和Cortex-M4 代码和数据共用一块内存且不支持MMU的情况。查询Cortex-M4架构手册可得 可见其内存映射情况不同的芯片架构有不同的内存映射。但实际制作芯片的厂商制作出来的芯片还要根据需求来设计实际的ram和rom以及外设等等内存。比如STM32F4ZGT6 虽然是Cortex-M4架构但是其Ram只有256kRom只有1024k。而不是如其架构所示的512Mb或者说同为Cortex-M4架构的STM32中F4系列的芯片不同型号也有不同大小的RAM和ROM。
那么RAM和ROM在实际编程中是用来干什么的呢在编写C/C程序时将程序分为了不同的段比如keil中的MDK-ARM编译器将程序分为四个部分codero-daterw-datezi-data等等。而不同的段又分别存储于RAM和ROM之中。具体情况如下所示 值得注意的是堆栈段中的变量是随着程序运行不断变化的所以堆栈段在刚刚编译出来是没有已使用的大小的所以需要事先定义一个最大的堆栈空间通常在启动文件中指定其大小。