请选择 进入手机版 | 继续访问电脑版

2020-12-31

[复制链接]
蝶蝶已蝶已蝶蝶 发表于 2021-1-1 17:45:33 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
目次
 
RKPX30看门狗驱动调试
1、设备树修改
2、设置文件修改
3、驱动代码修改
4、测试
 

RKPX30看门狗驱动调试

1、设备树修改

设备树文件px30-evb-ddr3-lvds-v10.dts中使能watchdog,默认为disabled。
  1. &wdt {    status = "okay";};
复制代码
2、设置文件修改

修改默认设置文件arch/arm64/configs/rockchip_defconfig,增加dw看门狗驱动支持。
  1. CONFIG_DW_WATCHDOG=y
复制代码
3、驱动代码修改

注释掉dw_wdt_release函数中的reset_control相关代码,否则喂狗步伐异常关闭看门狗设备,设备也不会重启。probe函数中增加dw_wdt_set_top、dw_wdt_arm_system_reset,让驱动自动喂狗,应用步伐仍然可以接受喂狗。
  1. --- a/drivers/watchdog/dw_wdt.c+++ b/drivers/watchdog/dw_wdt.c@@ -297,10 +297,10 @@ static int dw_wdt_release(struct inode *inode, struct file *filp)                        pr_crit("watchdog cannot be disabled, system will reboot soon\n");        }-       if (!IS_ERR(dw_wdt.rst)) {-               reset_control_assert(dw_wdt.rst);-               reset_control_deassert(dw_wdt.rst);-       }+       //if (!IS_ERR(dw_wdt.rst)) {+       //      reset_control_assert(dw_wdt.rst);+       //      reset_control_deassert(dw_wdt.rst);+       //}        dw_wdt.expect_close = 0;@@ -391,6 +391,8 @@ static int dw_wdt_drv_probe(struct platform_device *pdev)        if (ret)                pr_warn("cannot register restart handler\n");+       dw_wdt_set_top(DW_WDT_DEFAULT_SECONDS);+       dw_wdt_arm_system_reset();        dw_wdt_set_next_heartbeat();        setup_timer(&dw_wdt.timer, dw_wdt_ping, 0);        mod_timer(&dw_wdt.timer, jiffies + WDT_TIMEOUT);
复制代码
4、测试

运行watchdog应用步伐,按Ctrl+C中止应用步伐。过几秒后设备自动重启,表现看门狗工作正常。
  1. console:/ # watchdogd^C[  931.754996] dw_wdt: unexpected close, system will reboot soon130|console:/ #
复制代码

 

来源:https://blog.csdn.net/zhang6318/article/details/112042970
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )