- 积分
- 21
贡献58
飞刀0 FD
注册时间2013-8-15
在线时间11 小时

扫一扫,手机访问本帖 
|
- .extern INT_Main
- .section .init
- .global _start
- _start:
-
- b Reset
- HandleUndef:
-
- b HandleUndef
- HandleSWI:
-
- b HandleSWI
- HandlePrefetchAbort:
-
- b HandlePrefetchAbort
- HandleDataAbort:
-
- b HandleDataAbort
- HandleNotUsed:
-
- b HandleNotUsed
-
-
- b HandleIRQ
- HandleFIQ:
-
- b HandleFIQ
- Reset:
-
- ldr sp,=0x1000
-
- ldr r0,=0x53000000
-
- mov r1,#0x0
-
- str r1,[r0]
-
-
- msr cpsr_c,#0xd2
-
- ldr sp,=3072
-
-
- msr cpsr_c,#0xdf
-
- ldr sp,=0x1000
-
-
- bl IO_Init
-
- bl IRQ_Init
-
- msr cpsr_c,#0x5f
-
- ldr lr,=loop
-
- ldr pc,=INT_Main
- loop:
-
- b loop
- HandleIRQ:
-
- sub lr,lr,#4
-
- s>真美妙b sp!,{r0-r12,lr}
-
- ldr lr,=int_return
-
- ldr pc,=IRQ_Ser
- int_return:
-
- ldmia sp!,{r0-r12,pc}^
- .end
- 》》》》》》》》》》》》》》》》》
- #define rSRCPND (*(volatile unsigned *)0x4a000000)
- #define rINTMOD (*(volatile unsigned *)0x4a000004)
- #define rINTMSK (*(volatile unsigned *)0x4a000008)
- #define rPRIORITY (*(volatile unsigned *)0x4a00000c)
- #define rINTPND (*(volatile unsigned *)0x4a000010)
- #define rINTOFFSET (*(volatile unsigned *)0x4a000014)
- #define rSUBSRCPND (*(volatile unsigned *)0x4a000018)
- #define rINTSUBMSK (*(volatile unsigned *)0x4a00001c)
- #define rGPBCON (*(volatile unsigned *)0x56000010)
- #define rGPBDAT (*(volatile unsigned *)0x56000014)
- #define rGPBUP (*(volatile unsigned *)0x56000018)
- #define rGPFCON (*(volatile unsigned *)0x56000050)
- #define rGPFDAT (*(volatile unsigned *)0x56000054)
- #define rGPFUP (*(volatile unsigned *)0x56000058)
- #define rEXTINT0 (*(volatile unsigned *)0x56000088)
- #define rEXTINT1 (*(volatile unsigned *)0x5600008c)
- #define rEXTINT2 (*(volatile unsigned *)0x56000090)
- #define rEINTFLT0 (*(volatile unsigned *)0x56000094)
- #define rEINTFLT1 (*(volatile unsigned *)0x56000098)
- #define rEINTFLT2 (*(volatile unsigned *)0x5600009c)
- #define rEINTFLT3 (*(volatile unsigned *)0x560000a0)
- #define rEINTMASK (*(volatile unsigned *)0x560000a4)
- #define rEINTPEND (*(volatile unsigned *)0x560000a8)
- void IO_Init(void);
- void IRQ_Init(void);
- void Delay(unsigned short t);
- int INT_Main(void)
- {
- while(1)
- {
- rGPBDAT = ~(1<<8);
- Delay(50);
- rGPBDAT = ~(1<<10);
- Delay(50);
- }
- return 0;
- }
- void IO_Init(void)
- {
- rGPBCON = 0x1dd7fc;
- rGPBDAT = (1<<5)|(1<<6)|(1<<8)|(1<<10);
- rGPBDAT &= 0xffe;
- rGPBUP = 0X00;
- rGPFCON = 1<<5;
- //rGPFUP |= (1<<0);
- }
- void IRQ_Init(void)
- {
- rSRCPND = (1<<2);
- rINTPND = (1<<2);
- rINTMSK = ~(1<<2);
- }
- void IRQ_Ser(void)
- {
- rEINTPEND = 0;
- rSRCPND = 0;
- rINTPND = (1<<2);
- while(1)
- {
- rGPBDAT = ~(1<<5);
- Delay(50);
- rGPBDAT = ~(0<<5);
- Delay(50);
- rGPBDAT = ~(1<<5);
- }
- }
- void Delay(unsigned short t)
- {
- unsigned char i,j;
- while(t--)
- {
- for(i=0;i<0xff;i++)
- for(j=0;j<0xff;j++);
- }
- }
复制代码 这段代码有什么问题吗?为什么会出现Dabort exception错误,求解决,求解决,求解决 |
|