Bootloader confusion

Hi,

I am using the Keil uVision 3.23 and I have an AT91SAM7S256 board here.

I’d like to implement a bootloader that will always start when the board is powered, and checks if there is code to run at a fixed location in flash, stored right after the bootloader. the bootloader would sit at lowest flash location (0x00100000 ). Suppose the bootloader is 2K in size and it is located at 0x00100000, the application itself would be programmed in flash starting at 0x00100000 + 0x00000800 = 0x00100800. In my project, the application starting address I chose is 0x00104000.

i have done some work on the bootloader now, but I’m not sure how to set up a project in uVision to compile a binary (application with interrupts)that i can load using my bootloader.

I have successfully loaded a simple LED blinky application (without interrupts, starting address 0x00104000)via my bootloader. It runs perfectly.

However, I dont know how to build a application with interrupts at a certain starting address (not 0x00100000). The interrupts dont work. It may be sth related to the interrupt vector table.

Any one knows how to do it with uVision?

Thanks in advance.

Did you enable IRQ bit of CPSR and enable VICIntEnable?

Would you post you code here?