在“target\config\”下,建立自己的BSP目录,将原all目录文件复制到allS3C44BOX。将原wrSbcArm7目录下的文件复制到bspS3C44BOX。同时为了精简,去掉一些不用的文件,包括flashMem.c、sngks32cEnd.c等。
4.2中断处理的实现
romlnit.s文件是系统上电后执行的第一个程序,它由ARM汇编写成,并放在Flash的起始空间上。基于上面的中断处理讨论,应在这里建一个异常向量表。代码如下:
/*在Flash存储器的开始处添加硬件中断入口*/
rotnTn;t.
B cold /*上电复位后执行的第1条指令,也可看作是复位向量*/
B Undef
B Swi
B Pabort
B Dabort
B .
B Irq
B .
/*Irq函数定义,其他Undef、Swi等几个函数也做类似定义*/
Irq:
SUB sp,sp,#4
STMFD sp!,{r1)
LDR rl·veelrq /*装载中断向量到寄存器R1*/
STR rl,[sp,#4]
/*把寄存器R1的内容压入堆栈*/
LDMFD sp!,{rl,pc)
/*从堆栈弹出寄存器R1和PC(即跳转到中断服务程序)*/
/*Irq指向RAM中的位置*/
vecIrq:
.10ng VEC_BASE_ADRS+0x18
#define VEC_BASE_ADRS 0x0C000000
/*RAM的起始地址*/