工具/软件:Code Composer Studio
我需要在我的应用中使用系统异常状态寄存器(SYSESR)的值来帮助诊断虚假系统故障。 例如、了解是由于看门狗计时器超时还是上电复位而发生复位将非常有用。 不幸的是、在 HalCoGen-generated _c_int00 ()中、这个寄存器中能够提供这个信息的位被清除。 例如、
if ((SYS_EXception & powerON_RESET)!= 0U)
{
/*用户代码开始(12)*/
/*用户代码结束*/
/*清除所有复位状态标志*/
SYS_EXception = 0xFFFFFFU;
/*用户代码开始(13)*/
/*用户代码结束*/
/*用户代码开始(14)*/
/*用户代码结束*/
/*用户代码开始(15)*/
/*用户代码结束*/
/*继续正常启动序列*/
}
我可以使用适当的用户代码块禁用此代码、但我想知道这样做是否安全。 或者,我是否可以通过其他方法来存储 SYSESR 的启动值以便以后在 main()中使用? 我尝试简单地将其写入全局变量、但当然、这会被后续的内存测试所吹走。