c/7941: GCC-3.2 does not work well with c-code interrupt function
dong_geming@hotmail.com
dong_geming@hotmail.com
Mon Sep 16 20:02:00 GMT 2002
>Number: 7941
>Category: c
>Synopsis: GCC-3.2 does not work well with c-code interrupt function
>Confidential: no
>Severity: critical
>Priority: medium
>Responsible: unassigned
>State: open
>Class: mistaken
>Submitter-Id: net
>Arrival-Date: Mon Sep 16 19:36:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Adam Tong
>Release: GCC-3.2
>Organization:
>Environment:
cygwin
>Description:
I use the gcc-3.2 for arm to compile a C-Code interrupt function, the results is very diffrent when the option
'-mthumb-interwork' is used or not.
1: If the '-mthumb-interwork' is not used, code "ldmdb fp, {r3, fp, ip, lr}^" will be generated, is this wrong?
2: If the '-mthumb-interwork' is not used, code "ldmdb fp, {r3, fp, ip, pc}^" will be generated, is this right?
Compile by command: arm-elf-gcc -mthumb-interwork -gdwarf -c .\irq.c -o.\irq.o
Please reply me as soon as possible. thanks
(86)755-25620636-810
Adam Tong
>How-To-Repeat:
/************** Source file Start************************/
void ext_IRQ0_handler(void) __attribute__ ((interrupt ("IRQ")));
/*-----------------------------------------------------*/
/* Function Name : ext_IRQ0_handler */
/*-----------------------------------------------------*/
void ext_IRQ0_handler(void)
{
int i = 1;
return;
}
/************** Source file End***********************/
/***Compile Command without "-mthumb-interwork" *******/
arm-elf-gcc -gdwarf -c irq.c -o irq.o
/***Compile Command with "-mthumb-interwork" *******/
arm-elf-gcc -mthumb-interwork -gdwarf -c irq.c -o irq.o
Disassemble : arm-elf-objdump -d irq.o
you will discover their different.
>Fix:
Maybe the cpp.exe is wrong.
Please reply me as soon as possible. thanks
(86)755-25620636-810
Adam Tong
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the Gcc-bugs
mailing list