全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com)
前面为了缓解自己的学习压力,一次学习笔记大概也就是看10页文档整理一下。这一次其实是看了几十页,但是里面过掉了一些信息,而且这部分内容不是很好拆分。因此,这一次做一个加强版本的笔记总结。
- SMU的寄存器中有相应的位字段来修改PAD控制,这个功能主要是用于SMU对外采用针脚输出信号而设计。
- SMU关于这部分主要是实现了一个PAD状态不受应用复位或者系统复位影响的功能,这的确是让我对这个SMU的故障输出PIN的功能有了全新的认识。之前一直觉得这个可以用一个普通的GPIO来替代,现在看上去这个功能还是很特殊的。
在上一页中看到了一个触发器的概念,看起来这个触发器的行为有一个比较详细的配置,因此这里还有一部分寄存器的说明。
- 用于SMU输出的PORT在分配给SMU之前应该先进行相应的IO配置,具体的步骤这里给出来了说明。
- 给SMU进行管脚配置的生效操作是一次性的,只有第一次相关字段从0变成1的时候能够令其有效,其他的时候无法再次令其生效。
多个预警Alarm可以进行组合,最终组合成一个信号给SMU。几个信号的关系是进行取或,决定最后的信号值。
预警Alarm,也就是PreAlarm的输入信号映射关系在MCU的设计中是固定了相应关系的。
不符合SMU处理机制规则的Alarm,先经由PreAlarm处理周转,之后报到SMU。
处理处理来自MCU各个部门的Alarm之外,SMU还可以报出属于自己的Alarm信号。这个表格给出来的是SMU本身支持的四个Alarm。
- 在接下来给出的表中,粗体代表着SMU级别的Alarm。表格在本页中没有给出。
- 关于寄存器的访问保护以及总结级别的MPU保护,这里给出了一个多术语表达的解释说明。
- 最后几条就是前一页提到的粗体,代表了SMU级别的Alarm。
- 接下来会有大篇幅的信息,展示这样的对应关系,现在我并不进行软件调试因此先跳过。
- SMU处理了整个MCU系统的Alarm,因此必然会有跨时钟域的问题产生。但是,SMU这方面本身的处理机制比较完善,不会有这方面的问题。
- SMU支持的Alarm配置中,内部以及外部的响应行为都是可以配置的。其中,外部的Alarm与FSP相关,内部的行为不涉及FSP。
这里列出来了几种行为配置,猜测这里的0、1、2其实是对应了三个不同的CPU的。
- SMU在运行模式下,会对内部以及外部的Alarm及其行为设定进行扫描。
- SMU运行时候对各个Alarm的扫描是有一个固定的顺序的,从Group0开始进行扫描。
当SMU的Alarm状态寄存器的Alarm处理状态位START状态的时候,可以模拟故障对SMU进行测试。
- SMU急停功能与SCU的交互有:请求复位、生成一个内部Alarm事件、生成一个外部Alarm事件。
- SMU有两个恢复定时器可以用于监控Alarm NMI或者中断的动作执行时间。
- 两个恢复定时器中的RT0默认是开启的,因为这个是看门狗处理的必要条件。
- 恢复定时器仅能够用于NMI以及中断等内部行为的处理。
- 如果一个内部Alarm没有配置任何行为,那么恢复寄存器也是不可用的。
- 这一组恢复定时器主要是用来监控相应的行为的执行时间的。
看门狗相关的SMU处理需要有专门的处理,在看门狗超时的预警阶段软件还可以继续处理一些关键信息。
如果MCU系统中所有的看门狗超时的Alarm动作都是一样的,建议组合多个Alarm预警信号来触发一个动作以释放一些SMU行为配置接口资源。
这样,在这几十页的文档翻阅中大概看了下SMU的故障处理的一些功能以及原则。后面,关于信号的配置映射可能会是实际操作中比较常用的一些信息。