[coldfire-gnu-discuss] Interrupts failing in 4.2-8 but had working in 4.1-32
Carlos O'Donell
carlos at codesourcery.com
Mon Jun 25 20:19:06 UTC 2007
On Sun, Jun 24, 2007 at 12:26:23AM +0200, Mark Butcher wrote:
> There are some uTasker users who's projects are based on CodeSourcery GNU.
> Some registers users have 4.2.15 and found that the project would no
> longer run but immediately crashes due to an address error.
> Therefore I have just downloaded the 4.2-8 Lite (which is probably 4.2.15
> like) to see what happens and it is the same on my M52235 board - the
> reference project doesn't run.
> The reason that I see is that the interrupt routines are trying to return
> using RTS (rather than RTI) which result in instant death.
How are the interrupt routines written?
> Can anyone explain why the __attribute__((interrupt_handler)) is no longer
> recognised and how to get around the problem?
I can use __attribute__((interrupt_handler)) with our 4.2-8 Lite tools
without a problem:
cat >> test.c <<EOF
int __attribute__((interrupt_handler)) foo () {
return 0;
}
EOF
m68k-elf-gcc -c test.c
test.o: file format elf32-m68k
Disassembly of section .text:
00000000 <foo>:
foo():
0: 4e56 0000 linkw %fp,#0
4: 2f00 movel %d0,%sp at -
6: 4280 clrl %d0
8: 201f movel %sp at +,%d0
a: 4e5e unlk %fp
c: 4e73 rte
What problem are you seeing?
Cheers,
Carlos.
--
Carlos O'Donell
CodeSourcery
carlos at codesourcery.com
(650) 331-3385 x716
More information about the coldfire-gnu-discuss
mailing list