how to trigger HSM reset

[AURIX HSM] 如何通过HSM触发复位动作

概要

HSM如何触发系统复位

整体架构流程

对应UCB_HSMCOTP0内容HSMENRES,Enable HSM Triggering Resets。从HSM内核中允许通过bridge寄存器触发应用/系统复位功能(application reset Or system reset)。

  1. RSTPWD 寄存器写入对应password
  2. 置位RSTCTRL 复位请求类型寄存器

主核侧感知HSM引发的复位可通过读取SCU寄存器获得,SCU_RSTSTAT,区分应用复位和系统复位两种复位类型:
• if bit 26 is set the last reset was a system reset triggered by the HSM.
• if bit 27 is set the last reset was an application reset triggered by the HSM.`

技术名词解释

/*! HSM software reset password /
#define VHSM_HAL_HW_RSTPWD (0x55AA00FFu)
/
Reset Control Register Definitions /
#define RSTCTRL_APPRST_Pos 0 /
RSTCTRL: APPRST Position /
#define RSTCTRL_APPRST_Msk (0x1ul << RSTCTRL_APPRST_Pos) /
RSTCTRL: APPRST Mask /
#define RSTCTRL_SYSRST_Pos 1 /
RSTCTRL: SYSRST Position /
#define RSTCTRL_SYSRST_Msk (0x1ul << RSTCTRL_SYSRST_Pos) /
RSTCTRL: SYSRST Mask */

技术细节

void vHsm_Hal_TriggerSoftwareReset(void) /* COV_VHSM_HAL_TRIGGER_SOFTWARE_RESET */
{
  volatile boolean loop = TRUE;

    /* Clear Hsm2Host register */
    HSM2HOST = 0u; /* PRQA S 0306 */ /* MD_VHSM_HAL_0306_REGISTER_ACCESS */

  /* Trigger software reset */
  HSM_BRIDGE->RSTPWD = VHSM_HAL_HW_RSTPWD; /* PRQA S 0306 */ /* MD_VHSM_HAL_0306_REGISTER_ACCESS */
  HSM_BRIDGE->RSTCTRL = (RSTCTRL_SYSRST_Msk | RSTCTRL_APPRST_Msk); /* PRQA S 0306 */ /* MD_VHSM_HAL_0306_REGISTER_ACCESS */

  while (loop)
  {
    /* If reset was not successful stay here */
  }
} /* vHsm_Hal_TriggerSoftwareReset() */
#endif /* (VHSM_HAL_CALLOUT_TRIGGERSOFTWARERESET == STD_ON) */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值