We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
HI. I have a peroblem in usart interrupt . the interrupt when occure it not back and at the end of IRQ_handler function program jump to the undef_irq label in start up. it's means that the interrupt can't go back to main..whye?
in main I have a correct program. I think my problem is from the startup code.
; Setup Stack for each mode LDR R0, = |Image$$ARM_LIB_STACK$$ZI$$Limit| ; Enter IRQ Mode and set its Stack Pointer MSR CPSR_c, #ARM_MODE_IRQ:OR:I_BIT:OR:F_BIT MOV SP, R0 SUB R4, SP, #IRQ_Stack_Size ; Supervisor mode (interrupts enabled) MSR CPSR_c, #ARM_MODE_SVC | F_BIT MOV SP, R4 ; Enter the C code IMPORT __main LDR R0, =__main BX R0 loop4 B loop4 END
IRQ_Handler ; Save interrupt context on the stack to allow nesting */ SUB lr, lr, #4 STMFD sp!, {lr} MRS lr, SPSR STMFD sp!, {r0,r1,lr} ; Write in the IVR to support Protect Mode */ LDR lr, =AT91C_BASE_AIC LDR r0, [r14, #AIC_IVR] STR lr, [r14, #AIC_IVR] ; Branch to interrupt handler in Supervisor mode */ MSR CPSR_c, #ARM_MODE_SVC STMFD sp!, {r1-r4, r12, lr} MOV lr, pc BX r0 LDMIA sp!, {r1-r4, r12, lr} MSR CPSR_c, #ARM_MODE_IRQ | I_BIT ; Acknowledge interrupt */ LDR lr, =AT91C_BASE_AIC STR lr, [r14, #AIC_EOICR] ; Restore interrupt context and branch back to calling code LDMIA sp!, {r0,r1,lr} MSR SPSR_cxsf, lr LDMIA sp!, {pc}^
above I write several line in my start up file can you help me?? pleas!
You're skill level falls short of that of a weekend programmer, Steve. I reiterate: You are a frustrated troll.
"You're skill level falls short of that of a weekend programmer, Steve"
Your evidence is no doubt based upon all my work you've seen.
I suggest you spend less time with your odd responses and more time with your written English (see you're skill level).