嵌入式开发:安全架构核心组件之SMU

在实际的工程中,大家时常听到Alarm Alarm Alarm,什么看门狗超时触发了Alarm,PLL异常触发了Alarm…为什么需要这些Alarm?这些Alarm由谁管理?Alarm发生了,需要如何处理?带着这些困惑,本文聊聊安全框架的核心组件—SMU(Safety Management Unit)。

提示:本文基于TC375讨论

1、为什么需要Alarm?

我们知道,对于一款芯片,除了CPU(Central Processing Unit),还有大量的外设模块,他们相互配合,实现预期功能。既然是独立的硬件个体,在某些工况下,就会存在失效的可能性。为了便于管理这些失效场景,需要一个统一的大总管收集这些异常信息,之后,在对这些异常模块进行对应的处理策略。而收集异常信息的大总管就是SMU,上报异常信息的单元通过Alarm将信息通知给SMU,示意如下:


所以,设计Alarm的目的就是为监控芯片运行状态,并对故障状态进行对应的后处理。

2、Alarm由谁管理

上一小节已经给出答案,Alarm由SMU管理,SMU与其他模块地接口交互,如下所示:


SMU主要包含:SMU_CORE和SMU_STDBY,SMU的架构如下所示:

SMU_CORE侧重处理硬件监控的alarm以及Safety相关的Alarm,SMU_STDBY侧重处理clock alarm、电源alarm,以及温度相关的alarm。

3、Alarm发生时,如何处理?

参考手册,检测到Alarm以后,可以触发多种类型动作,具体描述如下:


**实际工程中,触发Reset,是最常用的alarm处理行为。**注意,系统的Reset类型有多种,而alarm可以产生的复位类型有Application Reset和System Reset。如果选择SMU_RESET(System Reset),则需要软件提前配置好复位类型,具体软件设置操作如下:


提示:如果选择Reset处理,推荐选择System Reset,相比于Application Reset,System Reset的更彻底,使得程序初始化更鲁棒。
对应软件处理,示意如下:

在这里插入图片描述

4、程序源码

参考官方示例,本文源码链接如下:

https://github.com/Kaixinguo2021/Tasking_TC375_SMU_Reset_Alarm.git

参考资料

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值