工具与软件:
您好!
我想知道如何定义 RAM 的 noinit 段、该段通过软重启保持不变。 到目前为止、我已经在链接器文件中将 ram 的一段定义为 noinit、然后使用属性 将对象放置在 ram 的该段中。 我在映射文件中看到它被放置在那里、然而、当我执行 sysreset 时、该值看起来像是复位回0、即使我在每次启动时都会递增。 下面我将编辑内容附加到了项目使用 project_zero 作为基础的.cmd 文件。
* Memory Sizes
*/
#define NOINIT_SIZE 0x00001000
/*******************************************************************************
* Memory Definitions
******************************************************************************/
/*******************************************************************************
* RAM
*/
#define NOINIT_START (RAM_END - NOINIT_SIZE)
/*******************************************************************************
* System Memory Map
******************************************************************************/
MEMORY
{
SRAM (RWX) : origin = RAM_START, length = (RAM_END - NOINIT_SIZE - RAM_START + 1)
NOINIT (RWX) : origin = RAM_END - NOINIT_SIZE + 1, length = NOINIT_SIZE
/*******************************************************************************
* Section Allocation in Memory
******************************************************************************/
SECTIONS
{
.noinit (NOLOAD):
{
*(.noinit)
} > NOINIT
谢谢