linux下的ARM看门狗程序

发布者:SereneSunset最新更新时间:2016-12-02 来源: eefocus关键字:linux  ARM  看门狗程序 手机看文章 扫描二维码
随时随地手机看文章

由于LINUX下应用层不能直接访问寄存器,只要通过驱动程序作为桥梁 
 //  驱动程序:
 #ifndef __KERNEL__
 #define __KERNEL__
#endif
#ifdef MODULE
 #define __MODULE__
#endif
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include  
#include
#include
#include
#include
#include
//#define rWTCON   (*(volatile unsigned *)0x53000000)
//#define rWTDAT   (*(volatile unsigned *)0x53000004)
//#define rWTCNT   (*(volatile unsigned *)0x53000008)
#define WATCHDOG_MAJOR 213
#define DEVICE_NAME  "watchdog"
 
static unsigned int r_WTCON,r_WTDAT,r_WTCNT;
devfs_handle_t devfs_wt;
int wt_open(struct inode *,struct file *);
ssize_t wt_write(struct file *,const char *,size_t,loff_t *);
 
static struct file_operations wt_fops={
    owner:    THIS_MODULE,
    open:      wt_open,
 write:     wt_write,
};
 
static int address_map(void)
{
 r_WTCON=(unsigned long)ioremap(0x53000000,4);  //控制寄存器
 r_WTDAT=(unsigned long)ioremap(0x53000004,4);  //计数器重载值
    r_WTCNT=(unsigned long)ioremap(0x53000008,4);  //计数器
    return 0;
}
int __init wt_init(void)
{  
    address_map(); 
    devfs_wt=devfs_register(NULL,DEVICE_NAME,DEVFS_FL_DEFAULT,WATCHDOG_MAJOR, 0, S_IFCHR |S_IRUSR |S_IWUSR |S_IRGRP |S_IWGRP, &wt_fops, NULL);
    return 0;
}
int wt_open(struct inode * inode,struct file * filp)
{
    *(unsigned long *)r_WTCNT=1525 *2;  //2秒
    *(unsigned long *)r_WTCON=0xff39;
    //PCLK=50M
    //Prescaler Value               =255
    // Enable Watchdog              =1  使能看门狗定时器
    //Division_factor                =128(Clock Select=128)
    //Interrupt Generation       =0(不产生中断)
    //Reset                            =1(开启Reset Signal)
    return 0;
}
ssize_t wt_write(struct file *filp,const char * buf ,size_t size,loff_t *offp)
{   
    *(unsigned long *)r_WTCNT=1525 *2;  //2秒
    return 0;
}
void __exit wt_exit(void)
{
   iounmap((void *)r_WTCON);
   iounmap((void *)r_WTDAT);
   iounmap((void *)r_WTCNT);
   devfs_unregister(devfs_wt);
}
module_init(wt_init);
module_exit(wt_exit);
MODULE_LICENSE("watchdog");
MODULE_AUTHOR("<email@mail.com>");
MODULE_DESCRIPTION("watchdog driver for sc2410");
//应用程序:
#include
#include
#include
#include
#include
int main(void)
{
    int wt_fd; 
    wt_fd = open("/dev/watchdog", O_RDWR);
 if(wt_fd<=0)
 {
        printf("open watchdog  device is wrong!\n");
  return 0;
 }
    while (1) {
        sleep(1);
        write(wt_fd,NULL,0);
        printf("feed watchdog!\n");
    }
}

关键字:linux  ARM  看门狗程序 引用地址:linux下的ARM看门狗程序

上一篇:s3c2410时钟信号:FCLK、HCLK和PCLK
下一篇:ARM 系列 -- FS2410 开发板上启用 MMU 实现虚拟内存管理

推荐阅读最新更新时间:2024-03-16 15:22

基于ARM微处理器LPC2132的智能电动机保护器设计
1 引 言 随着电动机控制中心(MCC)技术的发展,模块化的智能电动机保护器得到了越来越广泛的应用,同时也对电动机保护提出了更高的要求。针对电气监控系统自动化程度越来越高的发展趋势,用低压智能电动机保护控制器作为发电厂低压电动机的保护和测控,是提高电气监控系统运行维护水平的重要手段。 目前传统的8/16位的单片机仍然广泛应用于电气保护中,但是他们仅仅具有基本的测量控制功能,在人机界面、数据查询、监控处理能力比较有限,大部分缺少网络通信功能。在实现自动在线监测领域中,ARM芯片在多目标采集,多层次监测和网络化等方面具有强大的优势。由于LPC2132属于ARM7系列处理器,能对多个采样点进行同时测量,具有强大的数据处理功能。同时,
[工业控制]
基于ARM7的蓝牙接入点的设计与应用
  1引言   在工业现场中,由于有些环境比较恶劣,布线不方便等因素可以采用蓝牙无线通信技术来实现数据的通信。同时,工业现场中有很多以不同方式互连的设备,其中包括非智能化简单数据连接单元 (I/O)、智能化设备 (比如智能传感器、单回路控制器和 PLC)和监控系统 (作为 HMI使用,用于数据记录和监控 )等。这些设备大都是以各种不同的通信协议和媒介来互连的,其中有些就可以用蓝牙无线技术代替。本文以 为例,结合 BCM04蓝牙模块开发了基于蓝牙通信的工业接入点,组建了基于蓝牙通信的阀门、流量计、温度变送器测试系统,实现了带有蓝牙通信模块的工业设备和现有的有线网路的通信。       2蓝牙技术简介   蓝牙(bluetoo
[网络通信]
如果没有ARM,未来哪个架构能适合IOT?
  让我们假设一下,不管怎样未来都将有数十亿计的芯片涌入物联网市场。同时,我们继续假设这些芯片使用的是ARM的Cortex-M内核。如今,软银对ARM的收购已然成定局,眼前所呈现的无非是两个未来:一种是软银继续保持ARM的独立性,Cortex-M仍然是占据物联网市场的内核。   另外一种是软银对ARM的发展方向进行了悖于常规的调整,这一来授权用户就很抓狂,他们会到处打探另外一些IP产品。它们是什么呢?   1、MIPS有一些顶级内核,而ImaginaTIon (MIPS的所有者)则通过其PowerVR GPU内核在IP许可方面奠定了坚实的基础及良好的声誉。它虽然没有建立ARM架构那样强大的生态系统,但确实有一些明星,例
[单片机]
如果没有<font color='red'>ARM</font>,未来哪个架构能适合IOT?
基于嵌入式Linux的PMP系统设计与实现
PMP系统简介       便携式多媒体播放器(PMP),也就是通常人们所说的MP4,已成为继MP3以后消费类产品的一个新热点。PMP的主要优点是:携带方便,能够直接播放高品质音/视频文件;也可以浏览图片,以及作为移动硬盘、数字银行使用;此外,还有FM、游戏等功能。PMP播放器不仅需要对机体大小有所限制,更重要的是需要一种压缩效率更高、画面质量更高的视频压缩技术,以及相关编解码芯片。本文介绍了此PMP系统的软、硬件设计,重点在软件设计,此PMP系统方案现在已经进入量产阶段。    PMP系统的硬件设计       现阶段PMP内部核心架构,大多都是采用CPU搭配DSP的方式。其中,DSP负责编/解码工作;CPU则是针对文件
[嵌入式]
吉时利为参数测试系统移植Linux 提供更稳定系统
美国俄亥俄州克利夫兰市2007年7月19日讯 ——新兴测量需求解决方案领袖企业美国吉时利(Keithley)仪器公司(NYSE代码:KEI),日前发布关于其S600系列参数测试系统的一组升级功能。其最主要升级是在每套测试系统中的嵌入式控制电脑上移植Linux操作系统(OS)。本项升级为其控制电脑提供更稳定的OS和更长的服务寿命,减少了用户升级新工作站和软硬件资源的开销。此外,此次固件升级相比原来基于UNIX的系统具有更高的测试产能。新软件授权(license)方法采用USB棒作为每套测试器的硬件钥匙,通过在不同工作站间的迁移缩短维护时间。 吉时利推出的该款采用Linux控制器的参数测试系统迎合了当前利用Linux操作系统控制半导体
[新品]
在塑料上造芯片,每片不到1美分
想象一下,你周围的物体到处充满了智能,一条绷带、一个香蕉皮、一个瓶子等都具有智能。目前来看,这种场景只能出现在科幻电影里。你可能会奇怪,科技飞速发展的今天,为何这一切还没有实现,这是因为人类还没有制造出价格便宜的处理器。全球物联网设备的数量每年以数十亿的速度增长。看起来这是一个巨大的数字,但实际上这个领域的潜力要大得多,而且相当昂贵的硅芯片正在阻碍它。解决方案可能是引入便宜很多倍的塑料芯片。 之前有研究机构进行了各种尝试,例如 2021 年 Arm 重磅推出 PlasticArm M0 新型塑料芯片原型,可以直接在纸张、塑料或织物上打印电路,该芯片没有采用硅作为基底,而是采用塑料处理器核心,这是 Arm 研究了近十年的项目,但
[半导体设计/制造]
在塑料上造芯片,每片不到1美分
ARM的常数表达式
如果说Intel指令中的立即数,相信大家都很熟悉。类似的,Arm指令中的 立即数 就是常数表达式。之所以称为常数表达式,而不称为立即数是有原因的。 Intel指令属于CISC指令集,指令是不定长的,因此可以将任意32位立即数编码到指令内。 Arm指令属于RISC指令集,指令是定长的32字节。众所周知,指令中操作码是必须的字段,如果把32位立即数直接编码到指令内部,操作码就无 容身之地 了 因此,Arm指令中 立即数 的位数必小于32位。那么如何在Arm指令中正常表示立即数呢?我们看看Arm的通用指令格式。 Arm指令中,操作码(opcode)、目的操作数(Rd)、源操作数1(Rn)是必须的字段。条件码(co
[单片机]
<font color='red'>ARM</font>的常数表达式
PowerPC与X86和ARM处理器通用架构有什么区别
在嵌入式领域,存在着三种处理器通用的架构,PowerPC、X86、ARM,本文将对这三种架构进行对比分析。 PowerPC的由来 1975 年, IMB 公司801 小型计算机工程在RISC机体系结构方面做了许多开创性试验。801 计算机与贝克莱大学的RISC处理器引起了RISC机革新运动, 然而801 计算机仅仅是一个用来演示某种概念的原型机。 801 工程的成功致使IBM 公司开发一种商业的RISC工作站产品, 这就是RT PC。RT PC 于1986 年诞生, 它采用了801 的体系结构概念, 成为一个实际产品。RT PC未获得商业成功, 它有许多性能相当或更好的竞争产品。1990 年IBM 公司在总结了801 和R
[单片机]
PowerPC与X86和<font color='red'>ARM</font>处理器通用架构有什么区别
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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