Цитата(klen @ Oct 5 2006, 00:43)

Попробуйте взять мою сборку 4.1.2
http://www.klen.org/Projects/Embeded-gnu-t...last_build.htmlВ нем arm.c изменен в части касающей строк которык в патче указаны.
Если будете пробывать напишите че вышло. будем разбиратся.
Спасибо, но не прокатило.
С код
Код
void testISR(void) __attribute__ ((interrupt ("IRQ")));
void testISR(void)
{
testIsrFn();
}
Код который генерился ранее, т.е. GCC 4.1.0 с оптимизацией Level 1
Код
E24EE004 sub lr, lr, #0x00000004
E92D500F stmfd sp!, {r0-r3, r12, lr}
EBFFFFFE bl 0x000000a4 // testIsrFn()
E8BD500F ldmfd sp!, {r0-r3, r12, lr}
E25EF004 subs pc, lr, #0x00000004
Код который генерится с GCC 4.1.2 с оптимизацией Level 1
Код
E24EE004 sub lr, lr, #0x00000004
E92D500F stmfd sp!, {r0-r3, r12, lr}
EBFFFFFE bl 0x000000b0 // testIsrFn()
E8BD500F ldmfd sp!, {r0-r3, r12, lr}
E25EF004 subs pc, lr, #0x00000004
}
Т.е. тоже самое, там проблема что 4 из lr дважды вычитается.
Рабочий код который генерится с обоими GCC без оптимизации (дебаг)
Код
E52DC004 str r12, [sp, #-0x004]!
E1A0C00D mov r12, sp
E92DD80F stmfd sp!, {r0-r3, r11-r12, lr-pc}
E24CB004 sub r11, r12, #0x00000004
EBFFFFFE bl 0x00000010 // testIsrFn()
E24BD01C sub sp, r11, #0x0000001c
E89D680F ldmfd sp, {r0-r3, r11, sp-lr}
E8BD1000 ldmfd sp!, {r12}
E25EF004 subs pc, lr, #0x00000004
С ключиком -mapcs-frame код генерится как в дебаге.
Ну и на вот это не ответишь?
Цитата(Alex03 @ Oct 4 2006, 11:05)

Кстати вопрос к знающим, а сам GCC под ARM компилять надо обязательно GCC-x86 (а то и со всякими бинутилами и т.д.)?
Или можно и в MS VC 2003?

И ещё
klen почему твои бинарники раза в 3 больше чем которые с crossworks-ом? Мож их стрипом?
Кстати статус у патча нифига не CLOSED.