watdog(3)

原创 2013年12月05日 17:02:34

把watdog一直开着,当来一个watdog 中断,打印一句话,当灯亮/灯灭。

*********************************************************************************

watdog.h:

//interrupt

#define VIC0INTENABLE(*(volatile unsigned long *)0x71200010

#define VIC0INTSELECT (*(volatile unsigned long *)0x7120000C)

//模拟watdog
#define VIC0SOFTINT (*(volatile unsigned long *)0x71200018)
#define VIC0SOFTINTCLAR (*(volatile unsigned long *)0x7120001C)
//watdog
#define WTCON    (*(volatile unsigned long *)0x7E004000) 
#define WTDAT    (*(volatile unsigned long *)0x7E004004) 
#define WTCNT    (*(volatile unsigned long *)0x7E004008) 
#define WTCLRINT (*(volatile unsigned long *)0x7E00400C)
//led
#define GPMCON (*(volatile unsigned long *)0x7F008820)
#define GPMDAT (*(volatile unsigned long *)0x7F008824)

*****************************************************************************

test.c:

#include "watdog.h"
void hander_irq();
int (*printf)(char *,...) = (void *)0x57e11d4c;
int tmp=0;
int main()
{
*(volatile unsigned long *)0x56000000 = hander_irq;
//cpsr
__asm__ __volatile__(


"mrs r0,cpsr\n"
"bic r0,r0,#0x80\n"
"msr cpsr,r0\n"
:
:
:"r0","memory"
);
//enable
VIC0INTENABLE |=(1<<26);
//select
VIC0INTSELECT &=~(1<<26);
  //softirq
// VIC0SOFTINT |=(1<<26);


//watdog
WTCON = (1<<2)|(0<<3)|(1<<5)|(255<<8);

//如果WTCON=(1<<0)|(1<<2)|(0<<3)|(1<<5)|(255<<8);中断来的时候就是重启
WTCNT = 0x8000;
WTDAT = 0x8000;
//led
GPMCON = (1<<0)|(1<<4)|(1<<8)|(1<<12);
}
void hander_irq()
{
WTCLRINT = 0;//清楚watdog,wadcnt减完了又会来一次中断,watdat又填充watcnt
printf("this is wat_dong:wang wang\n");
if(tmp == 0)
{
GPMDAT = 0;
tmp = 1;
}
else
{
GPMDAT = 0xf;
tmp = 0;
}
}

*********************************************************************************

vector.s

b reset
b und
b swi
b pre_abt
b data_abt
.word 0x0
b irq
b firq
reset:
und:
mov sp,#0x56000000
mov ip,sp
stmdb sp!,{fp,ip,lr}
sub fp,ip,#4

ldr r0,=string_und
ldr r1,printf
blx r1

mov sp,#0x56000000
ldmdb sp,{fp,sp,pc}^
swi:
mov sp,#0x56000000
mov ip,sp
stmdb sp!,{fp,ip,lr}
sub fp,ip,#4

ldr r0,=string_swi
ldr r1,printf
blx r1

mov sp,#0x56000000
ldmdb sp,{fp,sp,pc}^
pre_abt:
data_abt:
mov sp,#0x56000000
mov ip,sp
sub lr,lr,#4
stmdb sp!,{fp,ip,lr}
sub fp,ip,#4

ldr r0,=string_pre_abt
ldr r1,printf
blx r1

mov sp,#0x56000000
ldmdb sp,{fp,sp,pc}^
irq:
mov sp,#0x56000000
mov ip,sp
sub lr,lr,#4
stmdb sp!,{fp,ip,lr}
sub fp,ip,#4
# 调用函数
mov r0,#0x56000000
ldr r1,[r0]
blx r1

mov sp,#0x56000000
ldmdb sp,{fp,sp,pc}^
firq:
printf:
.word 0x57e11d4c
string_und:
.asciz "hello undefine \n"
.align 2
string_swi:
.asciz "hello swi\n"
.align 2
string_pre_abt:
.asciz "hell data_abt\n"
.align 2
string_irq:
.asciz "hello irq ,wang wang wang  \n"
.align 2

*******************************************************************


makefile同以前。


版权声明:本文为博主原创文章,未经博主允许不得转载。

(1)内部中断—watdog

还有几天的时间,反反复复,借这个机会,重来一下bootloader,一直以来是一个yihan. 也复习一下,6410的裸版开发。这么些天没有学习,大概一个月的时间,好好整理一下心情,进入工作了!加油啊...
  • youhaibo1990
  • youhaibo1990
  • 2013年12月05日 15:39
  • 416

3*3卷积核实例

(转)3x3 convolution kernels with online demo 3x3 convolution kernels with online demo Which are t...
  • tina_ttl
  • tina_ttl
  • 2016年04月01日 10:33
  • 1560

代数问题3*3矩阵的逆矩阵

问题描述: 方阵A的逆矩阵表示为A-1,满足A* A-1=I,其中I是所有对角线上的值为1而其他所有值为0的单位矩阵。例如矩阵的逆矩阵是: 也就是: 对于一个3*3的矩阵: 使用下面的公式可以得到...
  • qq_35495953
  • qq_35495953
  • 2017年01月26日 22:29
  • 220

免费的虚幻3引擎其实不好用啊

摘要:看来是要停止对UDK的研究了,不太适合。对于这个所谓的免费UE3引擎,有几点感想,和大家分享一下。 内容:11月初,UDK免费发布的时候的确是很兴奋,正好赶上考虑是否继续使用Quest3D的时...
  • Chinamming
  • Chinamming
  • 2013年11月21日 16:17
  • 3221

关于Random(47)和nextint(3)的问题

 import java.util.Random; public class T {   static void test() {     Random r = new Random(20...
  • jianbo2233
  • jianbo2233
  • 2015年12月07日 17:25
  • 448

kill -3 pid打印trace原理笔记

做系统稳定性问题分析,当遇到系统卡死时,我们经常要使用“kill -3 pid”来打印System_Server进程各个线程的Java调用栈,根据线程状态及调用栈来更进一步定位问题点,当然某个应该界面...
  • guoqifa29
  • guoqifa29
  • 2015年09月22日 17:43
  • 4467

3 字节的 UTF-8 序列的字节 3 无效

关键错误信息如下所示: Context initialization failed org.springframework.beans.factory.BeanDefinitionStoreExce...
  • fei1990811
  • fei1990811
  • 2016年05月27日 15:57
  • 12691

【最短路径入门专题1】K - Wormholes POJ3259 【SPFA】【Bellman-Ford】

While exploring his many farms, Farmer John has discovered a number of amazing wormholes. A wormhole...
  • hello_sheep
  • hello_sheep
  • 2017年08月05日 23:51
  • 97

3线 spi 总线设计

1  SPI总线协议 射频芯片的SPI接口具有两个主要特征:Slave工作模式和半双工方式通讯。 SPI接口信号描述如表1。 接口时序要求如下: 1)输出时序 当...
  • books_world
  • books_world
  • 2016年10月09日 10:25
  • 680

崩坏3角色渲染分析

渲染逆向方法: 用Adreno Profiler抓帧, 并且分析其中的OpenGL调用及相关资源(顶点数据、纹理、Shader代码等) 其中Shader代码和在Unity里...
  • liumazi
  • liumazi
  • 2017年12月20日 23:28
  • 762
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:watdog(3)
举报原因:
原因补充:

(最多只允许输入30个字)