单片机RAM和ROM
数据存储空间RAM
内存地址 | 增长方式 | 读写性 | 内容 |
---|---|---|---|
最高内存地址 | |||
stack栈段 | 向下增长 | 可读可写可执行 | 存放局部变量 函数参数 函数返回值 编译器自动分配和释放 |
heap堆段 | 向上增长 | 可读可写可执行 | 动态内存分配,程序员控制分配释放 |
.bss段 | 向上增长 | 可读可写可执行 | 存放未初始化数据 |
.data数据段 | 向上增长 | 可读可写可执行 | 存放常量 全局变量 静态变量 |
.text代码段 | 向上增长 | 可读不可写可执行 | 存放代码 |
最低内存地址 |
程序存储空间ROM
存储我们烧录的代码。
烧录的代码有多种格式:axf文件最大,hex文件次之,bin文件最小。
axf文件:包含调试信息,debug使用的是此文件。
hex文件:包含地址信息下载器可以根据这些信息辅助下载。
bin文件:直接的代码映像。
Keil中RAM和ROM分析
Code 表示程序代码指令部分 存放在Flash区
RO-data 表示 程序定义的常量 ,存放在Flash区
RW-data 表示 已初始化的全局变量、静态变量,值存放在Flash,变量存放RAM区
ZI-data 表示 未初始化的全局变量,变量存放RAM区
最终占用的Flash为 : Code + RO-data + RW-data
最终占用的RAM为 : RW-data + ZI-data
单片机RAM和ROM相关推荐
- 单片机ram和rom的区别
单片机运行时需要调用某个程序/函数/固定数据时就需要读取ROM,然后在RAM中执行这些程序/函数的功能,所产生的临时数据也都存在RAM内,断电后这些临时数据就丢失了.ROM:(Read Only Me ...
- 如何通过8051单片机与片外存储器的连接来解决8051片内RAM和ROM容量不够用的问题
系列文章目录 上期文章回归: <你真的熟悉8051单片机的引脚功能及其使用吗?> 提示:读本文前可先阅读上期文章回归下51单片机的引脚,以便更好的阅读本文. 文章目录 系列文章目录 前言 ...
- 51单片机外扩RAM,ROM操作。
这是51单片机内置的功能,可以让我们少写很多时序,让代码变的整洁好看. 这里先拓展点小知识:RAM,ROM的区别,地址数据总线,控制总线. 1.RAM是一种掉电会丢失数据的可读可写的存储器.//其实题 ...
- 以STM32F103RCT6为例分析单片机的RAM以及ROM使用情况
1.stm32f103rct6的RAM:48k,ROM:256k 2.如果使用了原子的内存管理,在malloc.h中可以设置一片内存为动态内存,程序中用到的数组或为指针开辟内存就可以使用mymallo ...
- 51单片机 同时扩展ROM,RAM的具体实现及kiel的具体设置
51MCU内部有RAM,ROM,不同于8031.尽管如今的增强行51MCU的内部RAM,ROM可能已经很大的空间.但就技术而言,扩展RAM,ROM还是需要学会的. 对于不同 ...
- 怎么查看单片机程序占多少RAM 、ROM
Code = 121550 字节--程序代码段的 flash 大小 RO-data = 12154 字节--程序中所定义的指令和常量大小( read only ) RW-data = 1896 字节 ...
- 关于RAM,ROM,EEPROM,FLASH,DDR,CACHE
今天来讲讲RAM和ROM,以及一大堆它们的后代 手机和电脑的RAM和ROM概念是差不多的,由于RAM被称为随机存取内存,也就是运行内存,就是我们说的电脑8G内存,或者是手机6G内存,RAM它支撑的是手 ...
- Flash、RAM、ROM的区别
一. ROM(Read Only Memory) ROM(Read Only Memory),只读存储器.用来存储和保存数据.ROM数据不能随意更新,但是在任何时候都可以读取.即使是断电,RO ...
- 【51拓展】KeilC51访问RAM、ROM指定地址内存的两种方法(指针访问+绝对地址访问)
文章目录 1 指针访问方法 1.1 关键词及解释 1.2 代码及调试 1.3 51单片机数据在内存中的存储模式 2 绝对地址访问方法 2.1 绝对宏 2.2 关键词`_at_` 1 指针访问方法 1. ...
最新文章
- atlas mysql 数据库同步_atlas+mysql实现主从复制和读写分离(二)
- thymeleaf依赖_玩转SpringBoot集成 Thymeleaf 模版引擎
- Redis集群搭建-韩国庆
- phpstorm遍历PHP数组,使用PHPStorm对齐数组的键值对
- c语言五子棋排行榜代码,C语言案例:控制台版本的五子棋游戏【代码】
- C和指针之二维字符串数组用指针数组、数组指针、二级指针打印
- 紧急整理了 20 道 Spring Boot 面试题,我经常拿来面试别人
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 基于数据库资源的多语言实现...
- jeecg 数据修改历史日志对比方法
- Delphi天气预报查询
- php中的each()用法和list()用法
- MFC异形窗口-多边形窗口-根据图片自定义窗口形状-CRgn
- 如何批量Ping N个IP地址
- 智慧工厂建设方案(智慧工厂涉及业务系统)
- matlab四节点矩形单元的应变,四节点矩形单元有限元分析
- uc手机浏览器 手机模拟_UC浏览器开发者版调试手机页面
- 下面哪些不是java的原始数据类型_以下哪个不是Java的原始数据类型()A? – 手机爱问...
- 苹果App Store审核指南中文翻译
- python软件是免费的吗-python免费吗
- python 函数式编程及递归
热门文章
- python使用BytesIO或StringIO读写文件
- html css图片展开动画,8个实用炫酷的HTML5图片动画应用
- 如何有效开展小组教学_新型教学方法,小组合作教学,有效的提升了学生的合作技能...
- android adb音频采集,android adb
- 小程序引入的echarts过大如何解决_智慧虎超:为服装行业带来3倍收益?小程序如何解决销售难题?...
- qt5 交叉编译webkit_Qtwebkit配置,设置交叉编译环境 - croop520的专栏 - 博客频道 - CSDN.NET...
- vue-router判断页面未登录时,自动跳转到登录页
- react.js从入门到精通(六)——路由的使用
- asp.net 分页
- GARFIELD@11-11-2004