龙芯ls2k1000 看门狗应用程序

在龙芯派二代上验证ls2k1000看门狗

1、源码

ls2k1000 看门狗应用程序 ls_wdt.c

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <fcntl.h>#define LS2K_WDT_BASE   0x1fe00000 //+0x7000
#define LS2K_WDT_CLOCK  125000000static unsigned long long WDT_BASE;void wdt_outw(unsigned int addr, unsigned int data)
{*(volatile unsigned int*)(WDT_BASE+addr)=data;
}
unsigned int wdt_inw(unsigned int addr)
{unsigned int val;val = *(volatile unsigned int*)(WDT_BASE+addr);return val;
}void wdt_feed(void)
{wdt_outw(0x34, 0x01);
}void wdt_disable(void)
{wdt_outw(0x34, 0x01);wdt_outw(0x30, 0x00);
}void wdt_enable(unsigned int timeout)
{unsigned int wdt_time;wdt_time = timeout * LS2K_WDT_CLOCK;wdt_outw(0x38, wdt_time);wdt_outw(0x30, 0x02);wdt_outw(0x34, 0x01);
}void print_usage(char *argv0)
{printf("%s time [1..60 's']\n",argv0);printf("%s stop \n",argv0);printf("%s feed \n",argv0);
}int main(int argc, char **argv)
{int wdt_fd;unsigned char *wdt_map;unsigned char timeout;unsigned int pagesize;if (argc != 2) {print_usage(argv[0]);return 1;}pagesize =  0x10000;wdt_fd = open("/dev/mem", (O_RDWR | O_SYNC));if(wdt_fd == -1){printf("can't open /dev/mem\n");return 0;}wdt_map = (unsigned char*)mmap(0, pagesize, PROT_READ|PROT_WRITE, MAP_SHARED, wdt_fd, LS2K_WDT_BASE);WDT_BASE = (char *)wdt_map + 0x7000; if (strcmp(argv[1],"feed") == 0) {wdt_feed();}else if(strcmp(argv[1],"stop") == 0){wdt_disable();}else {if(( strspn(argv[1],"0123456789") != strlen(argv[1]) )){print_usage(argv[0]);return 1;}timeout = atoi(argv[1]);  //max value 85sif (timeout < 1) {timeout = 1;} else if (timeout > 60) {timeout = 60; }printf("loongson wdt set time : %ds\n",timeout);wdt_enable(timeout);}munmap(wdt_map,pagesize);close(wdt_fd);return 0;
}

2、编译

mips64el-linux-gcc -static ls_wdt.c -o ls_wdt

3、内核下运行

龙芯ls2k1000看门狗应用程序相关推荐

  1. STC单片机看门狗验证程序

    STC单片机看门狗验证程序 #include<reg52.h> #define uchar unsigned char #define uint unsigned int sfr WDT_ ...

  2. linux看门狗kill程序,看门狗在嵌入式 Linux 中的应用

    By Toradex胡珊逢 1).简介 在嵌入式领域中 Watchdog 看门狗通常被作为用于应对系统或者应用意外崩溃的有效手段.其可以在程序执行出错并无法恢复的情况下,自动重启应用甚至复位整个系统, ...

  3. STC89系列单片机看门狗的使用及应用程序

    转载:STC89系列单片机看门狗的使用及应用程序 "看门狗"概念及其应用在由单片机构成的系统中,由于单片机的工作有可能会受到来自外界电磁场的干扰,造成程序的跑飞,从而陷入死循环,程 ...

  4. C# 简单制作一个看门狗程序

    前言 在有些特殊项目中,软件可能是无人值守的,如果程序莫名其妙挂了或者进程被干掉了等等,这时开发一个看门狗程序是非常有必要的,它就像一只打不死的小强,只要程序非正常退出,它就能立即再次将被看护的程序启 ...

  5. 基于龙芯2K1000移植uboot之DDR

    基于龙芯2K1000移植uboot之DDR 移植环境 开始移植 额外说明 移植环境 CPU:LS2K1000 DDR:SCB13H8G162BF-13KI 编译环境:Ubuntu16.04+gcc-4 ...

  6. 【转载】如何使用STM32的窗口看门狗

    STM32F的窗口看门狗中有一个7位的递减计数器,它会在出现下述2种情况之一时产生看门狗复位: 1)当计数器的数值从0x40减到0x3F时 2)当刷新看门狗时计数器的数值大于某一设定数值时,此设定数值 ...

  7. stm32看门狗_「正点原子NANO STM32开发板资料连载」第十一章 独立看门狗实验

    1)实验平台:ALIENTEK NANO STM32F411 V1开发板2)摘自<正点原子STM32F4 开发指南(HAL 库版>关注官方微信号公众号,获取更多资料:正点原子 第十一章 独 ...

  8. stm32 窗口看门狗学习(一)

    什么是窗口看门狗? 1)独立看门狗                限制喂狗时间在0-x内,x由相关寄存器决定.喂狗的时间不能过晚. 2)窗口看门狗               之所以称为窗口就是因为其 ...

  9. 看门狗寄存器c语言代码_「正点原子NANO STM32F103开发板资料连载」第十一章 看门狗实验...

    1)实验平台:[正点原子] NANO STM32F103 开发板 2)摘自<正点原子STM32 F1 开发指南(NANO 板-HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 ...

最新文章

  1. 【Smobiler企业APP开发之一】开发环境部署
  2. The expression except (OSError, e)
  3. MySQL 4.1/5.0/5.1/5.5各版本的主要区别
  4. 前端进阶之路 0.1+0.2 !== 0.3?
  5. 拷贝构造函数的调用以及浅拷贝与深拷贝的理解
  6. mysql locking_Mysql next-key locking,读锁,写锁
  7. 机器学习中倒三角符号_机器学习的三角误差
  8. 回车ajax显示,ajax返回值中有回车换行、空格的解决方法分享
  9. ext Grid(三)
  10. 用python怎样用程序输出文字_如何用Python输出PPT中的文字信息
  11. ALSA ASOC
  12. jQuery:设置body的背景
  13. Java中Collection接口
  14. 基于SSM 技术的服装店管理系统
  15. 华为荣耀10电路原理图
  16. 《C语言程序设计》(谭浩强第五版) 第5章 循环结构程序设计 习题解析与答案
  17. WINCC的一套教程 有视频 有VBS开发基础 Excel导出
  18. Research Mindmap
  19. prisma orm_如何使用Node.js和Prisma构建GraphQL服务器
  20. w ndows7安不上HP1020,Win7安装hp1020打印机后无法使用怎么办(图文)

热门文章

  1. laravel实战化项目之三板斧
  2. css斑马线表格,用CSS3美化表格
  3. 关于嵌入式系统的学习路线图
  4. MongoDB 副本集在 rs.initiate()报错
  5. lotus notes 闪退_为您win7系统Lotus Notes邮箱闪退的途径
  6. Python re 正则:抓取网页上电驴/磁力/迅雷链接
  7. Unity的MonoBehaviour单例设置
  8. 网络流媒体协议之——RTP协议概述
  9. 目标检测simple Faster R-CNN训练自己的数据集
  10. html5车牌效果,快速输入车牌号效果