Цитата(*SERG @ Nov 29 2007, 16:12)

Я рад что в Си всё ок
А в стартапе пришлось добавить пару строк
PRESERVE8 ; tell linker: stack alignment is 8-byte
IMPORT IRQ_Handler ; use external FIQ_Handler
без них не работает и смысла этих строк я несовсем понимаю, разжуйте плиз.

Уберите из стартапа строку:
Код
IRQ_Addr DCD IRQ_Handler
тогда не нужен будет IMPORT - IRQ_Handler все равно не используется.
А PRESERVE8 из каких соображений добавлен? Во-первых, он там уже есть чуть раньше, а во-вторых, для ARM7TDMI такое выравнивание не нужно, лучше задавить соответствующую ошибку линкера.