本文作者:赛灵思工程师 longley zhang
1简介
在zynq mpsoc的器件里,ps (processing system )集成了三个看门狗,分别是csu swdt,lpd swdt和fpd swdt。
csu swdt用于保护csu与pmu及其相关连接。
lpd swdt主要用于保护rpu系统及其相关连接。
fpd swdt主要用于保护apu系统及其相关连接。
如果你的程序跑在apu上,并且你需要使用两个看门狗,那么除了fpd swdt外,你是可以使用lpd swdt。
2对应关系
lpd swdt和fpd swdt是提供给用户的应用程序使用的,csu swdt主要是由pmufw和csu bootrom使用的。所以通常情况下,用户可以在自己的应用程序里使用lpd swdt和fpd swdt。当客户需要使用时,需要在vivado里需要使能相关的swdt。但vivado里的命名是swdt0和swdt1:
而在ug1087的寄存器手册里,swdt有三个代码段csu_wdt, swdt, wdt:
所以有很多用户并不清楚这里面的对应关系。工具命名与手册命名的对应关系可以在ug1085里找到:
3在petalinux里的使用
在linux里,amd xilinx提供了swdt的驱动,具体的介绍和测试方法可以参考下面wiki页面。
只需要按照该页面的方法,去使能驱动,修改dts和使能enable_em, 就能在linux里使用lpd swdt或fpd swdt,这里不再详述。
当lpd或fpd swdt超时后,swdt并不会直接复位整个系统,而是把超时错误传达给pmu,由pmu决定下一步的错误处理方式(关于pmu的错误处理机制,可以参考ug1085的第6章)。而enable_em就是使能pmufw里的错误处理模块,如果不使能该模块,当swdt超时后,什么操作也不会发生。
pmufw提供了一套完整的swdt复位方案。当用户使能enable_recovery后,如果fsbl跑在apu上,pmufw会初始化fpd swdt,默认设定时间为60秒。这样在fsbl执行完后,用户自动获取swdt的监控,通常60秒足够用户启动后续的u-boot或linux。如果60秒不够,用户可以在u-boot阶段喂一次狗(重启swdt),或者在pmufw工程里添加一个定义recovery_timeout,把需要的时间定义成recovery_timeout。(注意,这里需要在vivado工程里使能ttc。)
如果cpu在复位过程中出现挂死现象,建议用户把enable_escalation也添加上。如果pmufw还有空间的话,建议把check_healthy_boot也使能上。下表来自ug1137,是系统重启方案的推荐设置以及空间占用情况的总结。
关于enable_recovery,enable_escalation和check_healthy_boot的更多介绍,请用户参考 ug1137。
4csu wdt的使用
csu wdt的使用比较简单,只需要在pmufw里使能enable_wdt,就能让csu wdt监测pmu的运行。fsbl启动后,csu wdt会设置为90毫秒超时,而pmufw会有一个task每50毫秒喂一次狗。
请注意,如果用户在pmufw里添加了自己的代码,并且使能了csu wdt,那需要注意csu wdt的超时时间。因为如果你在你的代码里添加了延迟(比如sleep),如果延时超过90毫秒,会导致csu wdt触发从而产生异常。
5参考文档
本文只是简单的介绍了看门狗(swdt)在zynq mpsoc在使用上的一下简单技巧,帮助用户快速地使用看门狗功能。如果想了解看门狗(swdt)的完整功能,请仔细阅读下面的参考文档。
原文标题:开发者分享|看门狗 (swdt) 在zynq mpsoc 上的使用技巧
文章出处:【微信公众号:xilinx开发者社区】欢迎添加关注!文章转载请注明出处。
常压锅炉自动温度控制器电路
印刷电路板的前沿应用
苹果iPhone降速信息披露遭调查 苹果回应不是刻意为之
苹果发布刘海屏MacBookPro 性能爆表
TLC27L4组成的信号调理电路中的放大电路
CSU SWDT、LPD SWDT和FPD SWDT的关系与使用
铜端子与铜线点焊机的注意事项
新能源汽车补贴政策尘埃落地 或于12月上旬发布
详解米勒平台的米勒效应和形成原理
西安交通大学与NI合作建立联合创新实验基地
AI种的草莓,确实没有人工的甜
基于Android的Linux内核的电源管理:Early Suspend
英飞凌针对中国市场推出全新XMC1000工业和消费类单片机家族
摩托罗拉XT701 3G手机开始预售
外资PCB厂商处于领先地位,内资PCB厂商迎头赶上
智慧路灯如何实现盈利
三相异步电动机转差率及公式
使用NVIDIA CloudXR和PCoIP的XR体验
数字通信协议中,什么是I2C和SPI总线协议?
利用Java写开源库 覆盖70多种推荐算法