第一个驱动程序:at91sam9g45核心板的看门狗驱动

本文详细介绍了如何在AT91SAM9G45核心板上开发看门狗驱动,包括在boot引导、uboot配置和Linux内核中的设置。从关闭boot引导中的禁用设置,到uboot中添加配置和驱动,再到Linux内核的配置和驱动修改,每个步骤都进行了详尽的阐述,展示了看门狗驱动的完整流程。
摘要由CSDN通过智能技术生成

纪念第一个驱动程序:at91sam9g45核心板的看门狗驱动

看门狗的驱动一般来说比较简单,只要做寄存器的设置实现开启、关闭、喂狗功能。本项目中我们使用的是at91sam9g45处理器,带有看门狗定时器。这个看门狗的驱动却比较复杂,应用层想用它的话,将涉及到boot引导设置,uboot配置及驱动,改写驱动程序。下面将逐步说明。

1、boot引导(bootstrap-v1.14)

由于该看门狗的MR寄存器只能写一次(Only a processor reset resets it.),而默认情况下看门狗在boot引导程序中被关闭了,所以在boot引导程序中我们要开启看门狗。在at91sam9g45ekes.c文件的硬件初始化函数hw_init中注释掉下面的配置即可开启看门狗:

/* writel(AT91C_WDTC_WDDIS, AT91C_BASE_WDTC + WDTC_WDMR); */

为了功能设置:我们配置如下:

writel(AT91C_WDTC_WDV | AT91C_WDTC_WDD | AT91C_WDTC_WDRSTEN | AT91C_WDTC_WDFIEN, AT91C_BASE_WDTC + WDTC_WDMR);

2、uboot配置及驱动(uboot-v1.3.4):

默认情况下,看门狗在uboot中没有配置,需要手动添加配置,在文件include/configs/at91sam9m10g45ek.h中添加如下配置

#define CONFIG_HW_WATCHDOG 1

#define CONFIG_AT91SAM9_WATCHDOG 1

此时编译uboot,会提示你找不到hw_watchdog_reset复位函数,这是因为虽然我们配置看门狗,但看门狗的uboot驱动并不存在,下面就来添加uboot下的看门狗驱动。

1)添加 include/asm-arm/arch-at91sam9/at91_wdt.h,内容如下

/*

 * [origin: Linux kernel arch/arm/mach-at91/include/mach/at91_wdt.h]

 *

 * Copyright (C) 2008 Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>

 * Copyright (C) 2007 Andrew Victor

 * Copyright (C) 2007 Atmel Corporation.

 *

 * Watchdog Timer (WDT) - System peripherals regsters.

 * Based on AT91SAM9261 datasheet revision D.

 *

 * This program is free software; you can redistribute it and/or modify

 * it under the terms of the GNU General Public License as published by

 * the Free Software Foundation; either version 2 of the License, or

 * (at your option) any later version.

 */

 

#ifndef AT91_WDT_H

#define AT91_WDT_H

 

#define AT91_WDT_CR (AT91_WDT + 0x00) /* Watchdog Control Register */

#define AT91_WDT_WDRSTT (1    << 0) /* Restart */

#define AT91_WDT_KEY

EB-SAM9G45(原称EM-SAM9G45)开发是英蓓特公司新推出的一款基 于ATMEL公司AT91SAM9G45处理器(ARM926EJ-S内核)的全功能评估。SAM9G45开发主频高达400MHz,可支持 WinCE和Linux操作系统的开发调试,带有256MB NandFlash,2MB NorFlash,512KB EEPROM,4MB DataFlash,以及2个64MB的DDR2 SDRAM,并带有丰富的功能扩展:高速USB2.0(480MHz),音频输入,音频输出, 10/100Mbps网络,JTAG调试接口,DBGU串口,Micro SD卡接口,SD/MMC卡接口,CMOS摄像头接口,支持8位/12位视频数据采集。 芯片说明: AT91SAM9G45芯片使用ARM926EJ-S内核,它带有MMU功能,有一个64KB的内部SRAM和一个64KB的内部ROM,并带有两 个外部 总线接口,总共可支持4块DDR2/LPDDR,SDRAM/LPSDR,静态存储器,CF闪存或带ECC校验的SLC NAND Flash。 AT91SAM9G45芯片把用户接口的功能性和高速数据连接相结合,包括LCD控制器,电阻触摸屏,相机接口,音频,10/100M以太网,高速USB 和SDIO等等。随着处理器运行在400MHz和多个速率超过100Mbps的外设,AT91SAM9G45使用高性能和带宽网络或本地存储媒体来提供良 好的用户体验。 AT91SAM9G45支持最新的DDR2和NAND闪存接口来存储程序和数据。一个与37个DMA通道相关的133M的内部多层总线接口,以及一个双外 部总线接口,和一个能够用来配置紧密耦合内存(TCM)的64K字节的分布式内存,它们用来维持处理器和高速外设通信时所需的带宽。 AT91SAM9G45的电源管理控制器具有高效的时钟门控和电池备份部分,在上电和待机模式时将功耗降低至最少。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值