Xитpый Kитaeц (16.04.2011 13:53, просмотров: 158) ответил Cepгeй Бopщ на "По той причине, что компилятор не понимает ваших хотелок" Скажем так - IAR не имеет средств для объяснения ему таких хотелок.
Ситуация прояснилась. При выносе функции с asm вставкой во внешнюю либу всё в порядке. При обработке компилятором обоих функций с одном файле происходит ошибка. Фраза из manual " Any function is permitted to destroy the contents of a scratch register. If a function needs
the register value after a call to another function, it must store it during the call, for
example on the stack.Any of the registers R12 to R15, as well as the return address registers, are considered
scratch registers and can be used by the function." получается неприменима при данном подходе к организации функций. Печально.