我使用 CCS v12.2.0、TI v21.6.0.LTS 编译器。
固件需要决定何时发出软件重启。 有些工程配置不需要使用此重启、我有一个针对该选择的工程预定义。 一个工程库决定是否重新启动:
#if !defined (WDtoBMS_MFG_BOARD_TEST) if (fault){ setVMBBRestart(1); } #endif
其中一个工程库中有一个具有此内联函数定义的头文件:
inline void setVMBBRestart(uint8_t input){ VMBB_doRestart = (input == 1) ? 1:0; return; }
在主循环中:
while (1) { if ((isVMBBRestart() == 1)){ WDTCTL = 0xDEAD; } ….. }
如果不选中预定义、此重新启动将按预期运行。 但是、我无法通过预定义检查使重启生效。 是否有更好的方法发出软件复位? 或者一种更好的方法来避免为某些工程配置编译固件部分?
普里亚