当前位置: 首页 > news >正文

Keil MDK 编译输出内存分段详解

Program Size: Code=12976 RO-data=252 RW-data=4 ZI-data=1004

这是 ARM 单片机(Keil)标准内存统计,对应 Flash、RAM 两大块存储。

1. 各字段对应存储段

Code = 12976

只读程序代码段(.text)

  • 存放:所有函数指令、if/for/while 逻辑、中断服务函数
  • 存储位置:Flash(ROM),掉电不丢失
  • 单位:字节,这里占用 12976 字节 Flash

RO-data = 252

只读常量数据段(.rodata)RO = Read Only 存放:

  1. const全局 / 静态常量
  2. 字符串字面量(你代码里LOG("val= %d\n")这类字符串)
  3. 只读数组常量
  • 存储位置:Flash
  • 只读,运行中不可修改

RW-data = 4

已初始化全局 / 静态变量(.data)RW = Read Write 存放:全局 /static 局部、初始值≠0的变量 例:

c

运行

int g_a = 100; static int s_b = 5;
  • 编译时:初始值存在 Flash;
  • 上电启动时:拷贝到 RAM 中运行;
  • 占用:Flash 存初始值 4 字节,RAM 占用 4 字节。

ZI-data = 1004

零初始化数据段(.bss)ZI = Zero Initialized 存放两类:

  1. 全局 /static 局部变量,未初始化 或 初始值 = 0
  2. 全局大数组、静态缓冲区 上电后启动代码自动全部清 0,Flash 不占用空间,只占用 RAM 1004 字节

2. RAM 总占用计算公式

运行时芯片 RAM 总开销 = RW-data + ZI-data 这里:4 + 1004 =1008 字节 RAM

3. Flash 总占用计算公式

固件烧录 Flash 总大小 = Code + RO-data + RW-data 12976 + 252 + 4 =13232 字节 Flash

4. 补充区分

  1. 函数内普通局部变量(unsigned int val=100;):栈 Stack
    • 不计入 Code/RO/RW/ZI,栈是运行时动态分配,编译统计不体现;
  2. static unsigned int val=100;:计入 RW-data;
  3. static unsigned int val;:计入 ZI-data;
  4. const char str[]="abc";:计入 RO-data。

5. 总结

  • Flash 固件大小:13232 字节
  • 全局静态变量占用 RAM:1008 字节
  • 代码 + 常量字符串:12976+252 字节存在 Flash
  • RW=4:只有 4 字节带初始值的全局静态变量
  • ZI=1004:大量未初始化全局 / 静态数组、变量
http://www.jsqmd.com/news/1093895/

相关文章:

  • 收藏!小白程序员必看:手把手教你搭建可评测的RAG大模型系统
  • ManageEngine卓豪-企业为什么需要AD域审计工具?
  • AI FDE培训:让AI从能演示,到能干活
  • 高活性浓缩洗衣液怎么选?两款家用高性价比品牌实测
  • 千匠智元AI斩获第八届创新发展论坛金i奖,领跑产业AI创新
  • 新160个CrackMe039-eKH.1、040-DaNiEl-RJ.1、041-genocide1逆向分析
  • AI 赋能训练推理平台 Java + SpringBoot MySQL Maven EasyAI FFmpeg支持人脸识别、门禁、人员入出检测、人员跌倒检测等功能 基于深度学习模型,可自定义训练数据
  • VSCode插件变黑客后门!GitHub 3800个仓库被攻破
  • 湖北工业大学《线性代数》期末试卷及答案2016-2024学年PDF
  • 【从0到1构建一个ClaudeAgent】协作-团队协议
  • 2026年智泊第23期AGI大模型应用开发实践班v6.0,智泊-最新AGI大模型全栈课12期|2025年9月
  • 提示词三要素:角色锚定、任务边界与输出契约
  • 文科生怎么转型科创赛道-硕士进修选择与交大MTT培养路径详解
  • 基于Appium与Python的拼多多百亿补贴商品价格自动化监控方案
  • 老板周五17:30丢了个网页让我“照着做一版“,这次我只用了3分钟
  • 2026 电子轴凹版印刷机方案制作逻辑,专业生产厂家国伟机械定制服务解读
  • 万维盈创 CCEP 持证扬尘(噪声)在线监测仪|建筑工地、道路扬尘、工业无组织排放合规监测优选设备
  • 企业微信双动作更新:5.0.9新版+企微AI大圆来了
  • CRMEB多商户系统(PHP)v4.1更新预告:年卡/月卡/多次体验卡,服务行业要锁客,就用它!
  • Python 字符串数组元素替换全攻略
  • GitHub导航菜单全解析:涵盖平台功能、解决方案、资源,探讨排除敏感文件方法
  • TI BOOSTXL-ULN2003驱动板实战:3/8引脚模式驱动步进电机与外围设备
  • IvorySQL 深度解析:融合 PostgreSQL 生态与 Oracle 兼容性的革新之路
  • 企业网络管理综合实训:CentOS7 纯终端完整部署 OpenStack IaaS 云平台(Keystone/Neutron/Cinder/Swift 全组件 + Dashboard 实操)
  • 北京蓝伟博达曾工实操:联想拯救者高负载蓝屏重启 显卡虚焊故障讲解
  • 虚拟化技术中的容器编排资源隔离与性能优化
  • 外文论文辅导哪个好?外文论文辅导平台测评
  • 2026年地产新营销服务商选型指南:从迷茫到笃定,谁在为房企解决真问题?
  • UDP Socket 回声服务代码全疑点深度手册:结构体本质・bind 内核逻辑・收发设计全拆解
  • NR CSI学习笔记【1】PMI的理解