代码中有什么简单的方法可以使 ESM 组2事件测试 ESM 组2处理程序是否正常工作?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
代码中有什么简单的方法可以使 ESM 组2事件测试 ESM 组2处理程序是否正常工作?
我已经尝试使用 safeTI 诊断测试来生成一个 ESM 2事件、但运气不好。 我已尝试在 SAFERTI 中针对 CCMR4提供的每个测试。 下面是我尝试的其中一项测试的示例代码。 我在这里做了些什么问题吗?
SL_CCMR4F_FailInfo failInfoCCMR4F;
RetVal = sl_SelfTest_CCMR4F (CCMR4F_selfTest_error_Forcing、true、&failInfoCCMR4F);
此代码是我在 main()内部运行的第一个代码。
请注意、我实时运行代码、而不是调试器模式。 我有一个在 ESM 处理程序内部递增的简单计数器、这些计数器被发送到终端以供查看。 此接口工作正常、我能够以这种方式跟踪 esm1和 ESM3事件。
您好 James、
生成 ESM 组2错误的一种简单方法是向 RTIWDKEY 寄存器写入错误的密钥、或者不在时间窗口内给看门狗(DWWD)馈送。
我刚刚经过测试、并设置了 ESM2.24。 以下是我的测试代码:
1.启用 RTI compare0 INT,并将 RTI 比较周期设置为200ms
/*包含文件*/
#include "sys_common.h"
/*用户代码开始(1)*/
#include "rti.h"
#include "ESM.h"
/*用户代码结束*/
/**@fn void main (void)
* @应用程序主函数简介
* @请注意、默认情况下、此函数为空。
*
* 此函数在启动后调用。
* 用户可以使用此函数来实现应用程序。
*
/*用户代码开始(2)*/
INT CTR = 0;
/*用户代码结束*/
int main (空)
{
/*用户代码开始(3)*/
_enable_IRQ ();
/*初始化 RTI */
rtiInit();
/*启用 RTI 比较0通知*/
rtiEnableNotification (rtiNOTIFICATION_COMPARE0);
/*开始计数器*/
rtiStartCounter (rtiCOUNTER_BLOCK0);
/*初始化并启动 DWD */
dwwdInit (generate_NMI、4095、size_100_percent);
dwdCounterEnable();
/*在 RTI 中断中为 DWD 提供服务*/
/*延迟*/
while (CTR < 5);
/*停止服务 DWD */
rtiDisableNotification (rtiNOTIFICATION_COMPARE0);
while (1);
/*用户代码结束*/
返回0;
}
/*用户代码开始(4)*/
void rtiNotification (uint32通知)
{
CTR ++;
dwdReset();
}
/*用户代码结束*/