嵌入式实验报告
实验名称
中断向量
姓名
XXX
学号
XXX
一、 实验目的
理解中断向量表的结构
理解中断处理的过程
学习中断处理程序的方法
二、 实验原理
打开 cache,地址为 0x01c00000
嵌入式实验报告
实验名称
中断向量
姓名
XXX
学号
XXX
一、 实验目的
理解中断向量表的结构
理解中断处理的过程
学习中断处理程序的方法
二、 实验原理
打开 cache,地址为 0x01c00000
初始化LED灯:PCONB[4-5]=0b00 ;使LED7和led8的控制孔为输出口
初始化定时器
TCFG0 = 199;
TCFG1 = 3; //1/16
TCMPB0 = 0;
TCNTB0 = 9375;
TCON = 0x2;
TCON = 0x9;
初始化中断:关中断,即cpsr寄存器的第七位置为1
INTCON = 0x5;
INTMOD = 0x0;
工作在IRQ中断模式下
INTMSK = 0x7ffffff & ~(1 << 26 ) & ~(1 << 13 );
timer0中断允许
而后,开中断,即cpsr寄存器的第七位置0
设置0x18处的指令 b函数名
设置程序从0x0处运行,并使用之生成elf格式文件,以便烧写。
三、 实验内容
写一个关于timer0中断的实验,使LED7,LED8可以交替亮
将中断程序进行烧写
四、 实验代码
export interrupt_start
export interrupt_stop
area mysection,code,readonly entry
interrupt_start
mrs r0,cpsr
bic r0,r0,#0x80
msr cpsr_c,r0
mov pc,lr
interrupt_stop
mrs r0,cpsr
orr r0,r0,#0x80
msr cpsr_c,r0
mov pc,lr
End
Main函数主要代码如下:
void interrupt_init( void );
void interrupt_start( void );
void interrupt_stop( void );
void led_init( void );
void timer_init( void );
void __irq timer_isr( void );
int flag=1;
#define PCONB
#define PDATB
*((volatile unsigned int *)0x01D20008)
*((volatile unsigned int *)0x01D2000c)
#define TCFG0
#define TCFG1
#define TCON
#define TCNTB0
#define TCMPB0
*((volatile unsigned int *)0x01D50000)
*((volatile unsigned int *)0x01D50004)
*((volatile unsigned int *)0x01D50008)
*((volatile u
嵌入式中断实验报告 来自淘豆网m.daumloan.com转载请标明出处.