首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止MDK (Keil)初始化变量?

如何防止MDK (Keil)初始化变量?
EN

Stack Overflow用户
提问于 2013-11-04 16:04:20
回答 1查看 4.3K关注 0票数 0

这是一个ADuC ARM (ARM7TDMI)芯片.我已经做了:

代码语言:javascript
复制
char WD_Track __attribute__( ( section( "NoInit"),zero_init) );

并检查NoInit复选框中的IRAM2.在启动时,它仍然被初始化为0(我不希望这个初始化--我想看看它在做什么,当看门狗咬我的时候)。

我看到了另一篇关于在另一个问题中使用__at__的文章,但我真的应该这么做吗(我不在乎编译器把它放在哪里,只要它单独使用。OTOH,我在闪存中有一个使用__at__位的部分,因为我需要在操作期间擦除该页面)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-05 11:10:34

您还需要告诉链接器将该数据放入IRAM2中。"NoInit“只是一个节名,您可以提供一个链接器分散文件(您将不得不禁用从目标对话框中的内存布局)来将具有该名称的部分放在IRAM2中。参见http://www.keil.com/support/docs/3480.htm中的示例分散文件(但它使用IRAM1作为UNINIT区域)。

或者,如果整个.c文件是uninit数据,那么您可以使用每个文件选项将.c文件放置到IRAM2中(而不是使用手动分散文件)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19771829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档