S3C2440裸机实验(3) ----watchdog

发布者:泉地水无痕最新更新时间:2022-02-17 来源: eefocus关键字:S3C2440  裸机实验  watchdog 手机看文章 扫描二维码
随时随地手机看文章

看门狗实质上和其他的定时器功能相似,只是看门狗多了一个时间到就复位的功能,只要将WTCON的【0】设置成0就成了普通的中断,将进入中断处理程序中,如果设置成了1将复位。这样的话,我们可以使用看门狗来实现对程序的监视,定时的去喂狗也就是定时去给WTCNT复制,如果程序跑飞了话就不能定时去喂狗,系统将重启。


下面的程序中我使用了一个中断处理函数,中断处理程序中使蜂窝器响一下,如果开启了喂狗程序的话不会引发中断,


下面是测试程序:(特别注意延时的时间,否则不能正常工作)

#include "watchdog.h"

#include "def.h"

#include "2440addr.h"

#include "uart.h"


void __irq watchdog_isr(void)

{


      uart_printf("Enter interrupt!/n");

      Beep(2000, 100);

       //清中断标志位

       rSRCPND = 0x1<<9;

       rSUBSRCPND = 0x1<<13;

       rINTPND = 0x1<<9;


}




void watchdog_test()

{

// freq=PCLK / (Prescaler value + 1) / Division_factor

prescaler =249  division factor = 16 freq = 12.5kHZ 如果[0]为1,但中断发生时将引起复位,

//这里设置成了普通的中断,中断发生时会进入中断处理程序

rWTCON = (249<<8) | (0<<3) |(0);  //

rWTDAT = 50000;  //看门狗计数4秒(4/(1/12500)

rWTCNT = 50000;   //这两个值必须初始化

rWTCON |=(1<<5) |(1<<2);  //开看门狗中断

rSRCPND = 1<<9;

rSUBSRCPND =1<<13;

rINTPND =1<<9;

rINTSUBMSK = ~(1<<13);   //开中断子屏蔽

rINTMSK =~(1<<9);

pISR_WDT_AC97 = (U32)watchdog_isr;  //安装中断处理句柄

   Delay(1000);


       while(1)


       {


                     Delay(1000);


             // rWTCNT = 50000;         //喂狗,重新赋值,防止中断,果      

                         //把这条语句打开的话,将进行喂狗,不会进入中断


                     Delay(1000);


         }


}


关键字:S3C2440  裸机实验  watchdog 引用地址:S3C2440裸机实验(3) ----watchdog

上一篇:八 s3c2440 linux 触摸屏 驱动代分析
下一篇:S3C2440裸机实验(6) ----NAND FLASH

推荐阅读最新更新时间:2024-11-17 23:16

S3C2440中断代码的深层次分析
在前一段时间分析了ARM异常处理机制的处理方式,分析了在异常产生以后CPU自动完成的相关处理以及程序员应该完成的基本操作。着重分析了异常代码的返回地址分析已经采用通用代码处理各种异常的可能性。 异常处理的基本过程如下:异常产生(在指令的临界中检测CPU的状态,一般实质在这条指令被执行完成,但是还没有执行下一条指令之前检测) 保存状态寄存器,切换状态寄存器,保存LR=PC-4,强制PC跳转到对应异常向量(以上的过程都是CPU自动完成) 》调整返回地址,在栈中保存寄存器,便于恢复寄存器的值 》异常处理函数 》退出异常。 中断处理机制的两种形式: 1、 采用在中断向量中存储简单的跳转指令,跳转到异常处理函数中,但是这种方式存在的缺点
[单片机]
S3C2440开发板学习——如何使用dnw进行数据的USB传输
首先,将开发板的serial和usb接口与PC相连,启动开发板; 其次,通过SecureCRT观察开发板的启动过程,并且按空格键进入开发板的menu菜单,设备管理中出现“SEC S3C2440 Test B/D”设备; 然后,启动禁用驱动程序强制签名的操作,再安装“SEC S3C2440X Test B/D”的驱动程序; 最后,可以发现设备管理中100ASK eBlocks SEC SOC Test Board设备顺利安装,之后就可以正常使用Dnw。 注意问题: 1、在开发板的menu中,可以通过不同选项,进行下载的参数选择,包括:Downloadu-boot to Nand Flash,Download u
[单片机]
ARM历程四-LCD
离上次真正写历程已经有10天的时间了。国庆嘛,自己给自己放了几天假——耍耍游戏下下棋什么的。 其实这次写触屏的驱动和对ARM中中断的过程的了解也花了不少时间和脑力。 我就简单分享一下CPU执行某个中断的条件吧,也是我自己的理解,如果有错还请大家指正(以IRQ中断为例吧):   在程序状态寄存器中(CPSR寄存器)i 位为IRQ中断禁止位,若这一位置1那么所有的IRQ中断都不会被CPU响应,如果这一位被清0,CPU也不一定会响应某一个或某些中断(就像是一个总开关)。所以,要想让CPU执行IRQ中断,CPRS中的i位必须要清0!   在2440的CPU中还有两个中断屏蔽寄存器:INTMSK(中断屏蔽寄存器)和IN
[单片机]
S3c2440裸机-spi编程-2.OLED显示面板
1.OLED显示面板介绍 以QG-2864TMBEG01这款OLED为例,可见它支持Parallel/i2c/SPI这3种方式对它进行控制,这里仅对它进行SPI控制。它的product Specification见附件。 并行接口时序: SPI串行接口时序 Tr/Tf: 表示spi clk上升/下降延不能超过40ns Tclkl/Tclkh: 表示spi clk低/高电平持续至少20ns Tcycle: 表示spi clk一个时钟周期至少100ns Tdsw/Tdhw: 表示spi data的建立/持续时间至少15ms Tcss:片选建立时间至少20ns Tcsh:片选持续时间至少10ns Tas/Tah:地址建立/
[单片机]
<font color='red'>S3c2440</font><font color='red'>裸机</font>-spi编程-2.OLED显示面板
S3C2440地址空间的分配与启动
一、S3C2440地址空间的分配 1. s3c2440A 的存储器控制器有以下特性: 大小端(通过软件选择) 地址空间:每个bank有128M 的字节(总共1G字节/8个banks) 可编程的访问位宽,bank0(16/32 位),其他bank(8/16/32 位) 共8个存储器banks 6个是ROM,SRAM 等类型存储器bank 2个是可以作为ROM、SRAM、SDRAM 等存储器bank 7个固定的存储器bank起始地址 最后一个bank 的起始地址可调整 最后两个bank 大小可编程 所有存储器bank的访问周期可编程 总线访问周期可通过插入外部wait来延长 支持SDRAM 的自刷新和掉电模式 2. 寻
[单片机]
十三、S3C2440 裸机 — 初始化代码及MMU
13.1 NOR FLASH 搬运 把程序从 nor flash 上搬运到 SDRAM 中 程序存储在 nor flash 上,运行时将程序搬运到 SDRAM 中运行 nor flash 启动:nor flash 的地址从 0x0000 0000 开始,CPU 可以直接在 nor flash 上运行程序 在 nor flash 上运行程序很慢 SDRAM:地址为 0x3000 0000,程序烧录在 nor flash 上,运行时,将 nor flash 上的代码搬运至 SDRAM 中运行 nor flash 启动: 初始化寄存器 关闭看门狗 设置存储控制器 复制代码到 SDRAM 中 跳转 main
[单片机]
十三、<font color='red'>S3C2440</font> <font color='red'>裸机</font> — 初始化代码及MMU
s3c2440裸机-LCD编程(三、框架准备和LCD初始化)
1.准备框架 为了让程序更加好扩展,体现出”高内聚、低耦合 的特点,能够兼容各种不同型号的lcd,假如有两款尺寸大小的lcd,如何快速的在两个lcd上切换? 首先我们抽象出lcd_3.5.c和lcd_4.3.c的共同点,比如都有初始化函数init(),我们可以新建一个lcd.c,然后定义一个结构体: struct lcd_opr{ void (*init)(void); }; 用户不接触lcd_3.5.c和lcd_4.3.c,只需要在lcd.c里通过指针访问对应的结构体的函数,也就调用了不同init(),如下图所示: 我们的目的是在LCD显示屏上画线、画圆(geomentry.c)和写字(font.c)其核心是画点
[单片机]
<font color='red'>s3c2440</font><font color='red'>裸机</font>-LCD编程(三、框架准备和LCD初始化)
S3C2440和S3C6410性能比较
比较项目 S3C2440 S3C6410 内核 ARM920T ARM1176JZF-S 主频 400MHZ 533MHZ/667MHZ 处理器类型 16/32-bit RISC 16/32-bit RISC 设计目标 高性能、低功耗 高性能、低功耗、高性价比 主要应用
[单片机]
<font color='red'>S3C2440</font>和S3C6410性能比较
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved