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 used following macros for IENABLE and IDISABLE
#define IENABLE /* Nested Interrupts Entry */ __asm { MRS LR, SPSR } /* Copy SPSR_irq to LR */ __asm { STMFD SP!, {LR} } /* Save SPSR_irq */ __asm { MSR CPSR_c, #0x1F } /* Enable IRQ (Sys Mode) */ __asm { STMFD SP!, {LR} } /* Save LR */ #define IDISABLE /* Nested Interrupts Exit */ __asm { LDMFD SP!, {LR} } /* Restore LR */ __asm { MSR CPSR_c, #0x92 } /* Disable IRQ (IRQ Mode) */ __asm { LDMFD SP!, {LR} } /* Restore SPSR_irq to LR */ __asm { MSR SPSR_cxsf, LR } /* Copy LR to SPSR_irq */
I am using Keil uvision v5 evaluation version When I compile the program with these macros I get following error messages:- 1)timer_delay.c(28): error: #20: identifier "SP" is undefined 2)timer_delay.c(28): error: #20: identifier "LR" is undefined
Please guide me in this regard as I need to resolve this issue as early as possible. I think this problem is of including assembly language in C but for SP and LR registers it is giving error as stated.
Thank you in advance.