推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

固件常量变量内存分配.docx

资料介绍

固件里的"常量"和"变量":编译器怎么分配它们

一、常量和变量占不同的内存

固件里"常量"(不变的值)和"变量"(会变的值),编译器分配的位置不同:常量通常放Flash(只读区),变量放RAM(可读写区)。理解编译器怎么分配,才能合理规划内存(RAM紧张时把常量放Flash省RAM)。

很多人没想过常量和变量放哪的区别,结果大常量数组占了RAM(本可以放Flash),RAM不够用。

二、常量的分配

1. 字面量(写死的值):编译时编进代码,放Flash(不占RAM)

2. const变量:编译器通常放Flash只读区(不占RAM),但某些情况(取地址、编译器选择)可能放RAM

3. const数组/表:放Flash只读区(不占RAM)

所以常量默认放Flash(不占RAM),除非编译器优化选择或你强制。

三、变量的分配

1. 全局/静态变量:放RAM的静态区(一直占RAM)

2. 局部变量:放栈(RAM)或寄存器(速度快但数量有限)

3. 动态内存(malloc):放堆(RAM)

所以变量占RAM(全局一直占、局部占栈)。


部分文件列表

文件名 大小
固件常量变量内存分配.docx 37K

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载