主题中讨论的其他器件:MOTORWARE
为此、我使用 Motorware 18 proj_lab09a。
我正在尝试使用保存在闪存中的数据在启动时初始化结构。 我在闪存中创建了一个 const 结构、我使用包含默认参数的宏进行初始化、然后在对电路板进行编程时写入该结构。 然后、当运行程序时、闪存中结构的数据被复制到 RAM 中的结构。 如果我想保留 RAM 中的结构、我会通过 Flash_Program ()(闪存 API 函数)将数据保存到闪存中的结构。
问题:当我在向闪存写入与宏中定义的数据不同的数据后启动电路板时,程序会崩溃到 PIE_illegalIsr()。
我假设问题源于尝试使用宏初始化闪存结构的程序、但数据不匹配、无法写入闪存、因此会崩溃。
是否有办法解决这个问题? 我希望在刷写电路板时写入默认数据、但如果需要、可以使用更改的值。
它当前看起来是这样的(不是实际代码、只是为了让您了解操作序列):
#pragma DATA_SECTION (gUserParams_flash、"persistent_memory"); #define USER_Params_init{/* default params*/} const USER_Params_flash = USER_Params_init;USER_Params_init ; void main (* default params*) {UsergUserParams=gUserParams_uFlash (void);US_Params&UCPlums (US_U16);US_UCPlash_UCPh&User&UCPlums (US_Params);US_U16);User_UCPh&Us_Params&Us_Params (UCPlums (US_Params)