代码拉取完成,页面将自动刷新
WDT(watchdog timer)看门狗定时器是一种监控系统运行状况的手段,软件需在运行过程中定时向看门狗发送喂狗信号。
若看门狗定时器在一段时间内没有收到来自软件的喂狗信号,则认为系统故障,会强制系统复位。
WDT 驱动支持的平台包括 FT2000/4、D2000、E2000。
WDT 驱动程序主要完成WDT模块的初始化、超时时间设置和超时中断函数,该驱动程序具备以下功能:
相关源文件为:
fwdt
├── fwdt.c
├── fwdt.h
├── fwdt_g.c
├── fwdt_hw.c
├── fwdt_hw.h
├── fwdt_intr.c
└── fwdt_sinit.c
以下部分将指导您完成 WDT 驱动的软件配置:
drivers/wdt/fwdt/fwdt.h
wdt实例配置
typedef struct
{
u32 instance_id;/* wdt id */
uintptr refresh_base_addr;/* wdt refresh base addr */
uintptr control_base_addr;/* wdt control base addr */
u32 irq_num; /* wdt ir num */
u32 irq_prority;/* wdt irq priority */
const char *instance_name;/* instance name */
}FWdtConfig;/* wdt config */
const FWdtConfig *FWdtLookupConfig(u32 instance_id);
Note:
- 用户需要修改配置参数时,可以通过修改返回的FWdtConfig副本,作为后续使用函数的入参,
Input:
- u32 instance_id, 当前控制的WDT控制器实例号
Return:
- const FWdtConfig *, 返回驱动默认参数, NULL表示失败
u32 FWdtSetTimeout(FWdtCtrl *pCtrl, u32 timeout);
Note:
- 此函数会根据传入的超时时间初始化WDT寄存器;
- WDT两次超时后,才执行系统复位操作;例如希望WDT 6s后复位,则应设置timeout=3;
Input:
- FWdtCtrl *pCtrl, WDT驱动实例数据
- u32 timeout, 设置的WDT超时时间,最大不超过89
Return:
- u32, 参考5.2章错误码定义
u32 FWdtRefresh(FWdtCtrl *pCtrl);
Note:
- 此函数会刷新wdt寄存器,重新开始计时
Input:
- FWdtCtrl *pCtrl, WDT驱动实例数据
Return:
- u32, 参考5.2章错误码定义
u32 FWdtStart(FWdtCtrl *pCtrl);
Note:
- 此函数会使能wdt
Input:
- FWdtCtrl *pCtrl, WDT驱动实例数据
Return:
- u32, 参考5.2章错误码定义
u32 FWdtStop(FWdtCtrl *pCtrl);
Note:
- 此函数会停止wdt
Input:
- FWdtCtrl *pCtrl, WDT驱动实例数据
Return:
- u32, 参考5.2章错误码定义
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。