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.