Thread 中讨论的其他器件:IEC60730SWPACKAGES
工具与软件:
IEC60730SWPACKAGES:STL_HWBIST_runMicro ()
我想询问有关 HWBIST 功能的信息。
我将使用 TI 提供的示例程序在 Micom 自检中检查 CPU。
但是、当执行 STL_HWBIST_runMicro 函数时、会发生 NMI、主循环和中断停止。
由于禁用了"看门狗"、因此不会重复进行重新引导。
我想知道 NMI 的原因以及解决方法。
未详细介绍相关文档。 我想知道如何使用它。
此外、我按原样使用示例程序、并且我没有更改初始设置函数。
我想知道我是否需要更改初始设置。
*请说明以下函数的寄存器设置值对于每行的含义。
void STL_HWBIST_init (const STL_HWBIST_Coverage 覆盖范围)
{
EALLOW;
//
//对 HWBIST 控制器进行软复位以将其置于已知状态。
//
HWREG (HWBIST_BASE + HWBIST_O_CSTCGCR5)= 0x80000000UL;
//
//清除 HWBIST 软复位位。
//
HWREG (HWBIST_BASE + HWBIST_O_CSTCGCR5)= 0x0000UL;
//
//加载目标覆盖度量。
// DID_01_11
//
/*LDRA_Inspected 93 S MR:R.10.1,R.10.3,R.10.4,R.10.1,R.11."LDRA Tool
问题、运算的两侧是相同的(uint32_t)*/
HWREG (HWBIST_BASE + HWBIST_O_CSTCGCR6)=(uint32_t)覆盖;
//
//重新启动 HWBIST。
//
HWREG (HWBIST_BASE + HWBIST_O_CSTCGCR5)= 0x000AUL;
//
// DID_01_12
//
if (覆盖率=STL_HWBIST_95_LOS)
{
//
//加载46周期计数的微运行。
// DID_01_10
//
HWREG (HWBIST_BASE + HWBIST_O_CSTCGCR1)= 46UL;
//
//在时钟分频为1的情况下运行移位启动。
//
HWREG (HWBIST_BASE + HWBIST_O_CSTCGCR7)= 0x0013UL;
//
//支持此测试的负载。
//
HWREG (HWBIST_BASE + HWBIST_O_CSTCGCR8)= 0x0032UL;
HWREG (HWBIST_BASE + HWBIST_O_CSTCSADDR)= 0x4E340000UL;
}
//
// DID_01_12
//
设计
{
//
//加载61周期计数的微运行。
// DID_01_10
//
HWREG (HWBIST_BASE + HWBIST_O_CSTCGCR1)= 61UL;
//
//在时钟分频为1的情况下运行固定测试。
//
HWREG (HWBIST_BASE + HWBIST_O_CSTCGCR7)= 0x00010F13UL;
//
//支持此测试的负载。
//
HWREG (HWBIST_BASE + HWBIST_O_CSTCGCR8)= 0x0032UL;
HWREG (HWBIST_BASE + HWBIST_O_CSTCSADDR)= 0x4F4C4272UL;
}
//
//设置图形计数。
// DID_01_13
//
HWREG (HWBIST_BASE + HWBIST_O_CSTCPCNT)= 0x012C06A4UL;
//
//配置完成。
//
HWREG (HWBIST_BASE + HWBIST_O_CSTCONFIG)= 0x0005UL;
//
//设置返回地址。
//
HWREG (HWBIST_BASE + HWBIST_O_CSTCRET)= 0x0000UL;
EDIS;
}