技术专栏
海思Hi3520DV400 uboot看门狗喂狗
看门狗的功能这里不再介绍,自行百度谷歌搜索。这里记录一下Hi3520DV400看门狗的喂狗设置。首先查 include/watchdog.h中的代码,可以发现,如果需要启用硬看门狗,需要定义宏:CONFIG_HW_WATCHDOG
/*
* Hardware watchdog
*/
#ifdef CONFIG_HW_WATCHDOG
#if defined(__ASSEMBLY__)
#define WATCHDOG_RESET bl hw_watchdog_reset
#else
extern void hw_watchdog_reset(void);
#define WATCHDOG_RESET hw_watchdog_reset
#endif /* __ASSEMBLY__ */
#else
/*
* Maybe a software watchdog?
*/
#if defined(CONFIG_WATCHDOG)
#if defined(__ASSEMBLY__)
#define WATCHDOG_RESET bl watchdog_reset
#else
extern void watchdog_reset(void);
#define WATCHDOG_RESET watchdog_reset
#endif
#else
/*
* No hardware or software watchdog.
*/
#if defined(__ASSEMBLY__)
#define WATCHDOG_RESET /*XXX DO_NOT_DEL_THIS_COMMENT*/
#else
#define WATCHDOG_RESET() {}
#endif /* __ASSEMBLY__ */
#endif /* CONFIG_WATCHDOG && !__ASSEMBLY__ */
#endif /* CONFIG_HW_WATCHDOG */
(一)配置宏
在/include/configs/hi3520dv400.h 中定义宏 CONFIG_HW_WATCHDOG
#define CONFIG_HW_WATCHDOG 1
(二)函数实现
回到最前面的代码我们知道,如果定义了硬件看门狗喂狗,则需要实现函数extern int hw_watchdog_reset(void);
找一个位置添加两个文件:hiwtdog.h,hiwtdog.c,然后将这两个文件编译进Uboot就可以了。
hiwtdog.h
#ifndef _Hiwtdog_H
#define _Hiwtdog_H
#include <common.h>
#include <environment.h>
#include <command.h>
#include <asm/io.h>
#define HI_GPIO_MUTI_BASE_ADDR (0x120F0000)
#define HI_GPIO6_BASE_ADDR (0x121B0000)
#define HI_MUTI_SET_GPIO_WTDOG HI_GPIO_MUTI_BASE_ADDR+0x0F0 // //1:GPIO6_2;
#define GPIO_DATA_WTDOG HI_GPIO6_BASE_ADDR+0x03fc // //6.2
#define GPIO_DIR_WTDOG HI_GPIO6_BASE_ADDR+0x400 // //1:输出
extern int hw_watchdog_reset(void);
#endif
注意:如果是其它平台的芯片,HI_GPIO_MUTI_BASE_ADDR 和 HI_GPIO6_BASE_ADDR根据实际修改就可以。
hiwtdog.c
#include"hiwtdog.h"
int hw_watchdog_reset(void)
{
unsigned int reg_val = 0;
unsigned char bit_val = 0;
reg_val=readl(HI_MUTI_SET_GPIO_WTDOG);
writel(reg_val | (1<<0),HI_MUTI_SET_GPIO_WTDOG);
reg_val=readl(GPIO_DIR_WTDOG);
writel(reg_val | (1<<2),GPIO_DIR_WTDOG);
reg_val=readl(GPIO_DATA_WTDOG);
reg_val = reg_val ^ (1<<2);
writel(reg_val,GPIO_DATA_WTDOG);
return reg_val;
}
uboot 默认ftp ,串口等位置都有添加hw_watchdog_reset()函数进行喂狗,如果启动其它功能时uboot复位了,则可以自己在该功能的合适位置进行喂狗操作就可以了。
原文链接:https://blog.csdn.net/li_wen01/article/details/86015914
相关推荐:
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包
4
收藏
评论
打赏
- 分享
- 举报
评论
0个
手气红包
暂无数据
相关专栏
-
浏览量:1867次2020-05-07 17:16:14
-
浏览量:4593次2020-06-19 15:56:33
-
浏览量:1659次2022-01-15 09:00:28
-
浏览量:4459次2020-07-27 16:34:42
-
浏览量:4552次2017-12-13 10:46:52
-
浏览量:1253次2024-01-08 16:49:01
-
2020-11-09 12:31:13
-
浏览量:2142次2019-07-20 14:05:57
-
浏览量:4777次2021-09-22 16:21:48
-
2018-06-18 22:47:22
-
浏览量:4491次2020-07-31 13:45:09
-
2019-04-10 21:45:38
-
浏览量:1300次2023-11-06 15:17:14
-
浏览量:1087次2024-01-04 17:47:00
-
浏览量:2247次2020-08-31 19:19:06
-
浏览量:5705次2017-11-21 13:45:07
-
浏览量:1394次2023-11-04 15:07:11
-
浏览量:2540次2020-08-14 15:09:41
-
浏览量:1994次2023-10-13 14:34:01
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者
风逝者
您的支持将鼓励我继续创作!
打赏金额:
¥1
¥5
¥10
¥50
¥100
支付方式:
微信支付
打赏成功!
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注