变量的 const 关键字(SRAM 或片上闪存)?

标签 c embedded

代码中声明的变量(静态或全局)首先与整个应用程序代码一起复制到片上闪存 (ROM)。然后它们依次复制到 SRAM 中。 静态和全局变量在 SRAM(不是堆栈)中分配地址,而函数中的局部变量则在堆栈(SRAM 的一部分)中分配地址。 我的疑问:通过将变量声明为“const”类型,是否会将变量放置在片上闪存(ROM)中,以便我可以保存SRAM,或者const数据也复制到SRAM中,尽管它们的值没有改变? (LPC17xx 内存架构,Keil IDE 编码)?

Update: const in ROM- In this link,the answer given by Mike Kleshov confirms that const data is placed in the Onchip Flash(using Keil compiler).

最佳答案

是的 - 在大多数微 Controller 上,将变量声明为 const 会导致它存储在只读存储器中。

关于变量的 const 关键字(SRAM 或片上闪存)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34758183/

相关文章:

c - 使用 AVR 红外传感器发光 LED 的这段代码有什么问题?

c - 如何在Digi Module Connect me 9210中实现Modbus RTU Master

c - 在 C 中的引号之间读取带有空格的用户输入字符串

c++ - 这个 "print a heart"程序在 C 语言中是如何工作的?

c - 尝试在 'C' 编程中输入 1 个字符,程序按字符数量跳过步骤

c - 模幂不适用于 C 中的大数

c++ - 内存使用检查

c++ - 搜索位域模板(密码本)

c - 模拟 getchar() 的 UART 驱动程序

c - 强制两个结构在编译时具有相同的大小?