0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

看门狗在Zynq MPSoC上的使用技巧

FPGA技术江湖 来源:XILINX开发者社区 2023-06-30 09:47 次阅读

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:

8499305e-16d4-11ee-962d-dac502259ad0.png

而在UG1087的寄存器手册里,SWDT有三个代码段CSU_WDT, SWDT, WDT:

84b04eba-16d4-11ee-962d-dac502259ad0.png

所以有很多用户并不清楚这里面的对应关系。工具命名与手册命名的对应关系可以在UG1085里找到:

84d5099e-16d4-11ee-962d-dac502259ad0.png

3

在Petalinux里的使用

Linux里,AMD Xilinx提供了SWDT的驱动,具体的介绍和测试方法可以参考下面wiki页面:

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842055/Cadence+WDT+Driver

只需要按照该页面的方法,去使能驱动,修改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,是系统重启方案的推荐设置以及空间占用情况的总结。

84e5081c-16d4-11ee-962d-dac502259ad0.png

关于ENABLE_RECOVERY,ENABLE_ESCALATION和CHECK_HEALTHY_BOOT的更多介绍,请用户参考 UG1137。

4

CSU 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触发从而产生异常。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 看门狗
    +关注

    关注

    10

    文章

    566

    浏览量

    70999
  • 寄存器
    +关注

    关注

    31

    文章

    5377

    浏览量

    121394
  • PMU
    PMU
    +关注

    关注

    1

    文章

    109

    浏览量

    21735
  • MPSoC
    +关注

    关注

    0

    文章

    199

    浏览量

    24346
  • Vivado
    +关注

    关注

    19

    文章

    815

    浏览量

    66959

原文标题:看门狗 (SWDT) 在Zynq MPSoC 上的使用技巧

文章出处:【微信号:HXSLH1010101010,微信公众号:FPGA技术江湖】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32中的独立看门狗和窗口看门狗是什么

    早期的MCU中是没有看门狗这种东西的,所以产品就很容易出现死机,跑飞的情况。为了避免这种情况的出现,后期的MCU都集成了看门狗的功能。但是目前看门狗发展到今天基本
    的头像 发表于 02-20 17:47 2926次阅读
    STM32中的独立<b class='flag-5'>看门狗</b>和窗口<b class='flag-5'>看门狗</b>是什么

    MCU独立看门狗和窗口看门狗的区别

    早期的MCU没有看门狗,就容易引起有些产品死机了不能重启工作。为了避免这个问题,后期的MCU在内部集成了看门狗的功能。
    发表于 03-03 09:18 837次阅读

    什么是看门狗电路

    看门狗电路 看门狗电路一般有软件看门狗和硬件看门狗两种。软件看门狗不需外接硬件电路,但系统需要出让一个定时器资源,这在许多系统中很
    发表于 10-21 01:40 8252次阅读

    stm32看门狗时间计算 独立看门狗和窗口看门狗的特性是什么

    本文为您讲解STM看门狗时间计算(时限)与频率计算,独立看门狗和窗口看门狗的特性、区别与联系。
    发表于 10-10 10:41 8809次阅读

    什么是stm32看门狗?独立看门狗和窗口看门狗工作原理解析

    stm32有两个看门狗,独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同。 独立看门狗
    的头像 发表于 11-06 11:48 2.8w次阅读
    什么是stm32<b class='flag-5'>看门狗</b>?独立<b class='flag-5'>看门狗</b>和窗口<b class='flag-5'>看门狗</b>工作原理解析

    STM32看门狗配置(独立看门狗IWDG和窗口看门狗WWDG)

    stm32自带两个看门狗模块,独立看门狗IWDG和窗口看门狗WWDG。看门狗主要作用是可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型
    发表于 11-09 17:17 8483次阅读
    STM32<b class='flag-5'>看门狗</b>配置(独立<b class='flag-5'>看门狗</b>IWDG和窗口<b class='flag-5'>看门狗</b>WWDG)

    MCU独立看门狗与窗口看门狗的区别

    早期的MCU没有看门狗,就容易引起有些产品死机了不能重启工作。为了避免这个问题,后期的MCU在内部集成了看门狗的功能。为了满足更多使用场景,现在很多MCU都集成了两个看门狗:独立看门狗
    发表于 10-28 20:06 8次下载
    MCU独立<b class='flag-5'>看门狗</b>与窗口<b class='flag-5'>看门狗</b>的区别

    arduino看门狗

    简介  看门狗定时器是单片机的一个组成部分,单片机程序的调试和运行中都有着重要的意义。看门狗定时器(WDT,Watch Dog Timer)实际是一个计数器,一般给
    发表于 11-15 19:06 18次下载
    arduino<b class='flag-5'>看门狗</b>

    arduino看门狗的使用

    简介  看门狗定时器是单片机的一个组成部分,单片机程序的调试和运行中都有着重要的意义。  看门狗定时器(WDT,Watch Dog Timer)实际是一个计数器,一般给
    发表于 12-09 09:36 7次下载
    arduino<b class='flag-5'>看门狗</b>的使用

    STM32:独立看门狗、窗口看门狗的配置

    STM32单片机的看门狗有独立看门狗和窗口看门狗之分,这两者的工作原理却完全不同。
    发表于 02-08 16:15 18次下载
    STM32:独立<b class='flag-5'>看门狗</b>、窗口<b class='flag-5'>看门狗</b>的配置

    STM32中的独立看门狗和窗口看门狗

    一、前言 早期的MCU中是没有看门狗这种东西的,所以产品就很容易出现死机,跑飞的情况。为了避免这种情况的出现,后期的MCU都集成了看门狗的功能。但是目前看门狗发展到今天基本
    的头像 发表于 12-22 16:58 2255次阅读

    STM32中的独立看门狗和窗口看门狗

    早期的MCU中是没有看门狗这种东西的,所以产品就很容易出现死机,跑飞的情况。为了避免这种情况的出现,后期的MCU都集成了看门狗的功能。但是目前看门狗发展到今天基本
    的头像 发表于 01-30 14:38 1444次阅读
    STM32中的独立<b class='flag-5'>看门狗</b>和窗口<b class='flag-5'>看门狗</b>

    MCU如何集成看门狗的功能

    一、前言 早期的MCU中是没有看门狗这种东西的,所以产品就很容易出现死机,跑飞的情况。为了避免这种情况的出现,后期的MCU都集成了看门狗的功能。但是目前看门狗发展到今天基本
    的头像 发表于 06-22 09:09 1924次阅读
    MCU如何集成<b class='flag-5'>看门狗</b>的功能

    什么是看门狗,工业路由器看门狗技术的功能优势

    工业路由器大多都会配备看门狗技术,它是保证工业路由器传输过程中连续24小时不宕机的重要保护技术,那么,什么是看门狗呢?▍看门狗功能看门狗,又叫watchdog,从本质上来说就是一个定时
    的头像 发表于 03-27 10:16 1959次阅读
    什么是<b class='flag-5'>看门狗</b>,工业路由器<b class='flag-5'>看门狗</b>技术的功能优势

    软件看门狗和硬件看门狗的区别

    系统出现了故障或死锁,软件看门狗会自动重启系统或执行其他预定义的操作。软件看门狗通常用于嵌入式系统中,可以方便地进行编程和控制。硬件看门狗则是一种独立的硬件设备,它与计算机主板的芯片
    的头像 发表于 04-16 15:10 1219次阅读