电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
文章
Zynq 7000系列 PS 软件复位,原来是这么回事?
分 享
扫描二维码分享
Zynq 7000系列 PS 软件复位,原来是这么回事?
软件复位
ARM
李肖遥
关注
发布时间: 2020-08-14
丨
阅读: 936
## 复位系统 复位系统包括由硬件,看门狗定时器,JTAG控制器和软件产生的复位。 Zynq-7000 SoC器件中的每个模块和系统都包含一个由复位系统驱动的复位。 硬件复位由上电复位信号(PS_POR_B)和系统复位信号(PS_SRST_B)驱动。 ## 看门狗定时器 PS 中有三个看门狗定时器,它们可以产生复位。 JTAG控制器可以生成一个重置,该重置仅重置PS的调试部分和系统级重置。 软件可以生成单个子模块重置或系统级别重置。 重置是由许多不同的来源引起的,并且到达许多不同的目的地。 本章确定所有重置,并说明其功能或提供指向另一章或另一文档的指针 ## 重置系统的主要功能 - 从硬件,看门狗定时器,JTAG控制器和软件收集复位 - 驱动每个模块和子系统的复位 - 是设备安全系统的组成部分 - 执行三个阶段的序列:开机,内存清除和系统启用 ![](https://cf03.ickimg.com/bbsimages/202008/0360cd58a78555cd75975de85bae6182.png) ## 系统软件复位 用户可以通过断言软件重置来重置整个系统。 通过断言PSS_RST_CTRL [SOFT_RST],整个系统被重置,最终结果与用户按下PS_SRST_B引脚(REBOOT_STATUS寄存器的值不同)。 就像其他系统重置一样,所有RAM都将清除,PL也将重置。 ## 怎么实现呢? ![](https://cf03.ickimg.com/bbsimages/202008/5a088c1a1bcb675daf1887be937aefdc.png) Register SLCR_UNLOCK 写入解锁密钥0xDF0D,以允许写入slcr寄存器。 所有slcr寄存器0xF800_0000可以写入0xF800_0B74,直到使用锁定为止SLCR_LOCK寄存器。读该寄存器返回零。 Register PSS_RST_CTRL处理系统软件复位控制信号。 - 0:无影响 - 1:置位PS软件复位脉冲(整个系统时钟发生器除外)不需要写0,硬件每次写入1都会产生一个脉冲。 ## 代码实现 ``` //PSS_RST_CTRL寄存器,绝对地址, #define PSS_RST_CTRL_REG 0xF8000200 //SLCR_UNLOCK寄存器,绝对地址, #define SLCR_UNLOCK_ADDR 0xF8000008 #define UNLOCK_KEY 0xDF0D //使能码 #define PSS_RST_MASK 0x01 //复位码 void PsSoftwareReset(void) { Xil_Out32(SLCR_UNLOCK_ADDR, UNLOCK_KEY); //写使能 Xil_Out32(PSS_RST_CTRL_REG, PSS_RST_MASK); //复位 } ``` ## 总结 那么就实现了系统软件复位了,只要在需要的地方调用PsSoftwareReset()函数了。 最后说下ug585是很好的资料,在需要解决问题的时候是需要详细解析的。
原创作品,未经权利人授权禁止转载。详情见
转载须知
。
举报文章
点赞
(
0
)
李肖遥
关注
评论
(0)
登录后可评论,请
登录
或
注册
相关文章推荐
MK-米客方德推出工业级存储卡
Beetle ESP32 C3 蓝牙数据收发
Beetle ESP32 C3 wifi联网获取实时天气信息
开箱测评Beetle ESP32-C3 (RISC-V芯片)模块
正点原子数控电源DP100测评
DP100试用评测-----开箱+初体验
Beetle ESP32 C3环境搭建
【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏之二
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回
我要举报该内容理由
×
广告及垃圾信息
抄袭或未经授权
其它举报理由
请输入您举报的理由(50字以内)
取消
提交