gpt4 book ai didi

variables - STM32:非初始化变量?

转载 作者:行者123 更新时间:2023-12-02 15:40:14 27 4
gpt4 key购买 nike

使用uvision IDE进行STM32开发,希望有一些定时器变量在启动时不初始化。我试过:

volatile unsigned int system_time __attribute__((section(".noinit")));

__attribute__((zero_init)) volatile int system_timer;

但似乎没有任何效果。根据其他地方的提示,我还检查了 options/target/IRAM1 中的 NoInit。尽管如此,变量在重置后仍设置为零。

有人可以帮忙吗?

最佳答案

您需要按照以下步骤操作。声明你的变量如下:

volatile unsigned int system_time __attribute__((section(".noinit"),zero_init));

然后您必须使用分散文件来声明具有 NOINIT 属性的执行部分,并将其与链接器一起使用。示例分散文件:

LR_IROM1 0x08000000 0x00080000  {    ; load region size_region
ER_IROM1 0x08000000 0x00080000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20000000 UNINIT 0x00000100 { ;no init section
*(.noinit)
}
RW_IRAM2 0x20000100 0x0000FFF0 { ;all other rw data
.ANY(+RW +ZI)
}
}

关于variables - STM32:非初始化变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8361887/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com