这是一个ADuC ARM (ARM7TDMI)芯片.我已经做了:
char WD_Track __attribute__( ( section( "NoInit"),zero_init) );并检查NoInit复选框中的IRAM2.在启动时,它仍然被初始化为0(我不希望这个初始化--我想看看它在做什么,当看门狗咬我的时候)。
我看到了另一篇关于在另一个问题中使用__at__的文章,但我真的应该这么做吗(我不在乎编译器把它放在哪里,只要它单独使用。OTOH,我在闪存中有一个使用__at__位的部分,因为我需要在操作期间擦除该页面)?
发布于 2013-11-05 11:10:34
您还需要告诉链接器将该数据放入IRAM2中。"NoInit“只是一个节名,您可以提供一个链接器分散文件(您将不得不禁用从目标对话框中的内存布局)来将具有该名称的部分放在IRAM2中。参见http://www.keil.com/support/docs/3480.htm中的示例分散文件(但它使用IRAM1作为UNINIT区域)。
或者,如果整个.c文件是uninit数据,那么您可以使用每个文件选项将.c文件放置到IRAM2中(而不是使用手动分散文件)。
https://stackoverflow.com/questions/19771829
复制相似问题