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.
Hello,
I need to develop Firmware upgrade module for my project. MCU: ARM, LPC2368 I am referring TNKernel source code, where in interrupt vector sharing is not clear.
fwu_utils.h
#define IRQ_RAM_ADDR 0x40000018 #define FIQ_RAM_ADDR 0x4000001C #define IRQ_RAM_FUNC_ADDR 0x40000038 #define FIQ_RAM_FUNC_ADDR 0x4000003C
Startup.s
irq_handler_address: .word 0x40000018 /* cpu_irq_isr */ fiq_handler_address: .word 0x4000001C /* cpu_fiq_isr */
fwu.c
//---- Set interrupts vectors ptr = (unsigned int *)IRQ_RAM_ADDR; *ptr = 0xE59FF018; //-- ldr pc, [pc, #24] ptr = (unsigned int *)FIQ_RAM_ADDR; *ptr = 0xE59FF018; //-- ldr pc, [pc, #24] //--- Put IRQ & FIQ vectors in RAM ptr = (unsigned int *)IRQ_RAM_FUNC_ADDR; *ptr = (unsigned int)&cpu_irq_isr; ptr = (unsigned int *)FIQ_RAM_FUNC_ADDR; *ptr = (unsigned int)&cpu_fiq_isr;
Kindly anybody help me in understanding why IRQ_RAM_FUNC_ADDR is 0x40000038.