AM335X外部看门狗及LINUX系统驱动移植(二)

本文详细介绍了看门狗定时器(WDT)在AM335x平台上的使用,包括EVB-D335的原理设计、TPL5010的配置、u-boot和Linux内核的喂狗操作,以及用户空间的应用程序调试。在u-boot中启用WATCHDOG,Linux内核驱动中进行喂狗设置,并通过用户空间API进行交互,确保系统在异常情况下能够复位,从而保证系统稳定性。

看门狗定时器(WDT,Watch Dog Timer)是嵌入式系统的的一个组成部分,它实际上是一个计数器,一般给看门狗设置复位时间间隔,程序开始运行后看门狗开始计数。如果程序运行正常,过一段时间CPU应发出指令让看门狗置零,重新开始计数。如果看门狗增加到设定值就认为程序没有正常工作,强制整个系统复位。

所以,当开启看门狗后,需要在看门狗超时(计数减到0)前,对其进行喂狗(复位)操作,否则看门狗会发出复位信号,当CPU接收到该信号将复位系统。

以TPL5010为例,介绍在AM335x平台上的使用,主要内容有:

1、原理简介;

2、u-boot喂狗操作;

3、linux内核驱动程序喂狗操作;

4、应用程序访问看门狗。

1. EVB-D335 原理设计

EVB-D335的原理设计如图1-7所示,根据1.1.3节的中介绍,时间间隔(tIP)的值取决图1-5中的R129与R130的并联电阻的阻值(REXT),REXT = 11.199,查表1-3得tIP 的值为10s 。取值10s是为能保证Linux内核正常引导,当在u-boot中喂狗,距离下一次喂狗间隔时长最多不能超过20s,这个时长能正常引导Linux内核,Linux内核接管看门狗设备后在设备管理层实现“喂狗”操作,保证系统正常运行情况下复位。

另外,可以软件或硬件禁用看门狗复位信号,软硬件禁用的原理一样——使三态门处于无效状态,即EN脚置高。硬件禁用,只需接上J3跳线;软件禁用,通过操作系统内核空间或用户空间将WDG_SHDN置高,WDG_SHDN连接至GPIO3_21。

注:目前Linux内核驱动与应用程序都未使用WDG_SHDN,留待后续开发。

图1-7

2. TPL5010调试

在EVB-D335上,TPL5010复位时间间隔为10s。根据第1章的原理,若第二次TPL5010 WAKE信号的上升沿到来之前20ms,未接收到MPU发来DONE信号,系统将复位。在不同的阶段,均需要对看门的信号进行处理,其流程如图2-1所示:

图2-1

  1. u-boot中打开“CONFIG_HW_WATCHDOG”宏,使能“hw_watchdog_reset”函数在各种循环中调用喂狗。
  2. 在内核空间,使用驱动喂狗。
  3. 在user space,应用程序调用内核API操作看门狗。

3.EVB-D335简要介绍:

EVB-D335是DIM-335X/IoT-335X工控模块的评估系统,为客户提供DIM-335X/IoT-335X的原始参考设计,方便客户快速评估和应用DIM-335X/IoT-335X核心模块。

DIM-335X工控模块产品集成了 ARM Cortex-A8 1GHz(MAX) TI AM335X 处理器,该模块使用了TPS65217作为电源管理芯片,板载大容量电子盘(NAND FLASH或者EMMC),支持三种启动方式(NAND/EMMC/QSPI NOR,通过开关SW1选择),目前唯一支持GPMC总线的SODIMM模式核心板,稳定运行WindowsCE 7.0 和Linux 4.14(支持DTB)。 该核心模块使用SODIMM204接口件与工程底板相连,并带螺钉锁定,保证系统抗震性能。DIM-335X提供了3.3V I/O接口,可提供宽温的工业组件,运行于条件恶劣的工业现场!

DIM-335X核心板实物图:

EVB-D335功能图:

4. u-boot调试

据u-boot文档介绍,“CONFIG_HW_WATCHDOG”宏使能hw_watchdog_reset函数被各种循环调用,包括等待串口输入字符,板级代码中调用hw_watchdog_init函数,实现喂狗。

在EVB-D335上,函数的调用关系如图2-2:

                                                                               图2-2

 代码明细如下:

① board/embfly/evb-d335/board.c 

调用板级初始化代码中,调用hw_watchdog_init函数。

② drivers/watchdog/omap_wdt.c

/* TPL5010 DONE pin , GPIO3_15 */

#define TPL5010_WATCHDOG_FEED 111

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值