尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

嵌入式完整内存占用计算

嵌入式完整内存占用计算 三段回顾精简版.text:程序代码(编译后的机器码)、const 常量、字符串常量 →存 Flash,只读.data:全局 /static 带初始值变量。初始样板存在 Flash,运行拷贝到 RAM.bss:全局 /static 未初始化变量。只占用 RAM,不占用 Flash 镜像局部变量:栈 (Stack);动态 malloc:堆 (Heap),不属于 text/data/bss一、计算公式(重中之重)1)FLASH 总占用(固件烧录大小,elf/bin 文件大小)Flash_Size = .text _Size + .data_Size✅解释:.bss 全部是 0,bin 文件不会存储这些零数据,不计入 Flashconst 常量属于.text,算进 Flash2)运行时 RAM 最小静态占用RAM_Static = .data + .bss✅解释: 上电后.data 拷贝到 RAM、.bss 内存清零,这两块是永久占用的静态内存。3)系统完整 RAM 总需求(产品硬件选型必须算这个!)RAM_TotalNeeded = .data + .bss + Stack + HeapStack:栈,局部变量、函数调用、中断现场Heap:堆,malloc/free 动态内存(不用 malloc 可以 Heap=0)二、实例演算假设编译器 map 文件输出:.text = 128KB .data =
返回列表