在 main 中定义和初始化 flash 变量
Define & Iniitialise flash variable in main
在 main.c(IAR Embedded Workbench / TI MSP430F)
中努力定义和初始化闪存变量可能是一个简单的命令
我在一个单独的 C 文件 (Battery_Store.c) 中有一个 flash 例程,它接受一个变量(来自 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 引用它?
Set_Battery_Store
函数的Battery_Status
参数是一个参数,所以它住在栈上。所以当使用 &Battery_Status
时,这个函数实际上不会访问任何闪存。
为参数或全局变量指定一个不同的名称。
在 main.c(IAR Embedded Workbench / TI MSP430F)
中努力定义和初始化闪存变量可能是一个简单的命令我在一个单独的 C 文件 (Battery_Store.c) 中有一个 flash 例程,它接受一个变量(来自 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 引用它?
Set_Battery_Store
函数的Battery_Status
参数是一个参数,所以它住在栈上。所以当使用 &Battery_Status
时,这个函数实际上不会访问任何闪存。
为参数或全局变量指定一个不同的名称。