防止编译器生成的代码在初始化时清除位置
Prevent compiler-generated code from clearing a location at initialization
我们在 PIC 微处理器中实现了一个实时时钟,它会增加 RAM 中的秒数。
如果有重置,编译器创建的 C 代码将清除 RAM,并且计数会丢失。 (如果我们使用汇编而不是 C,这不是问题。)
有没有办法告诉编译器不要清除特定的 RAM 位置?
是否有C代码没有清除的RAM区域?
我们是否应该占用一些未使用的寄存器并使用它们而不是使用 RAM?
变量可以声明为__persistent
:
__persistent int counter;
这应该可以防止启动代码对其进行初始化。
我们在 PIC 微处理器中实现了一个实时时钟,它会增加 RAM 中的秒数。
如果有重置,编译器创建的 C 代码将清除 RAM,并且计数会丢失。 (如果我们使用汇编而不是 C,这不是问题。)
有没有办法告诉编译器不要清除特定的 RAM 位置?
是否有C代码没有清除的RAM区域?
我们是否应该占用一些未使用的寄存器并使用它们而不是使用 RAM?
变量可以声明为__persistent
:
__persistent int counter;
这应该可以防止启动代码对其进行初始化。