【发布时间】:2017-11-27 11:14:37
【问题描述】:
在 main.c (IAR Embedded Workbench / TI MSP430F) 中定义和初始化闪存变量可能是一个简单的命令
我在一个单独的 C 文件 (Battery_Store.c) 中有一个闪存例程,它接受一个变量(来自 main)并将其存储在一个设定的位置。 flash 例程函数。
void Set_Battery_Store( unsigned int Battery_Status )
{
Flash_Start() ;
Flash_Erase_Segment( (unsigned int *)&Battery_Status ) ;
Flash_Write_Word( (unsigned int *)&Battery_Status, Battery_Status ) ;
Flash_Finish() ;
}
我在同一个 C 文件中定义变量并初始化它
const volatile unsigned int Battery_Status @ 0x1070 = 1 ;
在.h中
extern const volatile unsigned int Battery_Status ;
当然,每次我从 main 调用 Battery_Store(System_Flags.Battery_Status 是 main 中处理的不同变量)。即
Set_Battery_Store (System_Flags.Battery_Status) ;
Battery_Status 再次变为 1,大概是因为
const volatile unsigned int Battery_Status @ 0x1070 = 1 ;
如何在 main.c(而不是 Battery_Store.c 和 Battery_Store.h)中设置和初始化 Battery_Status 并让 Battery_Store.c 引用它?
【问题讨论】: