山东大学嵌入式实验报告 下载本文

#define INTMSK (*(volatile unsigned long *)0x4A000008) #define PRIORITY (*(volatile unsigned long *)0x4A00000c) #define INTPND (*(volatile unsigned long *)0x4A000010) #define INTOFFSET (*(volatile unsigned long *)0x4A000014) #define SUBSRCPND (*(volatile unsigned long *)0x4A000018) #define INTSUBMSK (*(volatile unsigned long *)0x4A00001c) /*external interrupt registers*/

#define EINTMASK (*(volatile unsigned long *)0x560000a4) #define EINTPEND (*(volatile unsigned long *)0x560000a8)

经分析知,s2440addr.h文件中的主要内容是定义了一些看门狗,SDRAM,GPIO等的寄存器地址,并定义了串口通讯和中段的寄存器地址。 2)分析中断控制程序的结构。

首先要对中段进行初始化,并对端口功能设定。继而进行相应中段使能,打开有关中段屏蔽位,并进入主函数等待中断,直到中段产生,由中段向量表进入中段执行中段程序。最后退出中断,清除当前中段标志位,等待下次中段。

3)仔细分析中断初始化程序和中断处理程序中寄存器的设置方法,并理解其含义。 对寄存器的设置是通过位运算,先将想要改变的数值移至相应位时,再通过与,或,非来达到相应改变寄存器某一位值的目的。 4)总结中断程序的设计方法。

首先,在初始化汇编程序中切换至用户模式,并进入中断模式设置相应指针等;并在汇编中调用main函数和中断函数。建立中断入口矢量表,同时关闭卡门狗定时器;编写中断处理函数,和main函数,在main函数中等待中断的产生。 ........忽略此处.......