Ответ: В исходниках отсутствуют функции работы с JTAG как с портом ввода/вывода. Оказывается, MULTI при отладке сама без моего ведома ставит точку останова на процедуру __dotsyscall() (которая в том числе вызывается любым обращением к вводу/выводу), и отладчик запускает свой неизвестный код для обмена. Сама процедура состоит из двух команд:
__dotsyscall: mov r8, r8 ; mov hireg,hireg doesn't set CC! mov pc, lr ; ReturnЕсли я вручную ставлю точку останова в отладчике на __dotsyscall(), программа не загружается -- сообщение "2 точки останова на одном адресе" (я при всём своём желании не смогу поставить 2 точки останова на одном адресе). К тому же исходники библиотек ANSI C отсутствуют. Есть лишь исходники более низкого уровня, который связывает библиотеки с конкретным железом.