根據(jù)韋東山修改的mini2440中斷的裸機(jī)代碼
以下是5個(gè)文件的所有內(nèi)容:
@是注釋符??!
head.S文件內(nèi)容:
@**************************************************************************
@
@
@**************************************************************************
.extern
.text
.global
_start:
@**************************************************************************
@
@**************************************************************************
@0x00地址處的指令為"b Reset",在系統(tǒng)復(fù)位后,這條指令將跳去執(zhí)行標(biāo)號(hào)"Reset"開(kāi)始的代碼
@0x04:未定義指令終止模式的向量地址
HandleUndef:
@0x08:管理模式的向量地址,通過(guò)SWI指令進(jìn)入此模式
HandleSWI:
@0x0c:指令預(yù)取終止導(dǎo)致的異常的向量地址
HandlePrefetchAbort:
@0x10:數(shù)據(jù)訪問(wèn)終止導(dǎo)致的異常的向量地址
HandleDataAbort:
@0x14:保留
HandleNotUsed:
@0x18:中斷模式的向量地址
@0x1c:快中斷模式的向量地址
HandleFIQ:
Reset:
@設(shè)置棧指針,以下都是C函數(shù),調(diào)用前需要設(shè)好棧。棧是用
halt_loop:
HandleIRQ:
int_return:
#define
#define
#define
#define
#define GPB5_out
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
void disable_watch_dog(void)
{
}
void init_led(void)
{
}
void init_irq()
{
}
interrupt.c文件內(nèi)容:
#define
#define INTOFFSET
#define
#define
#define
void EINT_Handle()
{
}
main.c文件內(nèi)容:
int main()
{
}
Makfile文件內(nèi)容:
objs:=head.o
int.bin:$(objs)
%.o:%.c
%.o:%.S
clean:
評(píng)論