我正在使用GCC for ARM V4.8.3开发一个嵌入式C项目.我想要实现的是将结构放入MCU的FLASH(ROM)存储器中.自从我上一篇文章以来,我认为每个被定义为constant(const)的对象标识符都被放入到该.rodata部分中,在我的情况下(根据liker脚本)嵌套.text在另一方面嵌入在FLASH内存区域中.
我倾向于这么认为,因为我检查了一个我的对象定义,这是一个常量指针:
const char * const project_stringInvalidCharacter = "Invalid Character! \n";
Run Code Online (Sandbox Code Playgroud)
如果限定为常量,则指针位于FLASH中.
但是,当我定义一个int(const uint_8 myObj;)类型的常量对象时,我看到它的地址代表一个属于RAM或.bss 区域的数字.
换句话说const适用于指针,但不适用于整数类型.通过工作我的意思是它做了我所期望的,从我之前的帖子推断,即将标识符"放置"到FLASH(ROM)中.