防止编译器生成的代码在初始化时清除位置

Prevent compiler-generated code from clearing a location at initialization

我们在 PIC 微处理器中实现了一个实时时钟,它会增加 RAM 中的秒数。

如果有重置,编译器创建的 C 代码将清除 RAM,并且计数会丢失。 (如果我们使用汇编而不是 C,这不是问题。)

有没有办法告诉编译器不要清除特定的 RAM 位置?

是否有C代码没有清除的RAM区域?

我们是否应该占用一些未使用的寄存器并使用它们而不是使用 RAM?

变量可以声明为__persistent:

__persistent int counter;

这应该可以防止启动代码对其进行初始化。