Hello, i used keil uvision 3. My program work correctly when in sactter file or in options for terget i set 0x100000, but when i put other then mentioned adress i.e. 0x110000 the irq does not work. I use __irq after function for interrupt routin and also --gnu in miscconttrol. Moreover i also use functions for interrupt routin wuithout __irq. I does not work. My question is how to make it work?
Thanks in advance M
The first thing you need to do is to work out why it "doesn't work".
Have you checked the Linker listing (map file), etc?
What debugging have you done?
When i change the address to 0x110000 programme works correctly till moment interrupt appears.
What address?
"programme works correctly till moment interrupt appears"
So that's obviuosly the point at which you need to start debugging, then - isn't it?!
As i wrote when start adress is 0x100000 everythink works great, but when i change it in scatter file (load region adress) interrupt doesn't work.For example when i load usb program, after pullup attaching pc sends frame through usb to arm and it should go into interrupt service routin but if the load region adres is other then 0x100000 then it does not. and i dont know why? I believe startup should be change. I use startup from keil. Any sugestions?
The scatter file may place your application anywhere where you have memory to receive the program.
But depending on processor, you may have specific limitations where the processor can configure the interrupt vector table. If you don't store your interrupt vectors where the processor tries to look for them, your program will not work as intended.
If you want serious help, you should consider writing a serious question!
We know you're using an ARM, but you failed to tell us precisely what device it is or what memory is physically available.
Is your application attempting to use memory that isn't available?
I use at91sam7x512 programme is loaded to internal flash memory.