Печать символьной строки без форматирования через % вызывает puts_r
[opennet: int _puts_r(void *reent, const char *s); ] которая
дёргает swbuf_r() [ int _EXFUN(__swbuf_r, (struct _reent *, int,
FILE *)); ] А вот кто и как потом с этим буфером работает -
загадка... Сам __swbuf_r инициализирует внутри, __swsetup_r . _write_r ещё есть в listing lss с вызовом _write с таким дизассемблером Disassembly of section .text._write:
0002d1cc <_write>:
2d1cc: e59f300c ldr r3, [pc, #12] ; 2d1e0 <_write+0x14>
2d1d0: e3a02058 mov r2, #88 ; 0x58
2d1d4: e5832000 str r2, [r3]
2d1d8: e3e00000 mvn r0, #0
2d1dc: e12fff1e bx lr ; === Но тут что-то вызывает!!!
2d1e0: 00080004 .word 0x00080004
Думаю, что тут заглушка и есть, сильно уж мало
А вот и исходник вроде как
_ssize_t
_write_r (struct _reent *ptr,
int fd,
const void *buf,
size_t cnt)
{
_ssize_t ret;
errno = 0;
if ((ret = (_ssize_t)_write (fd, buf, cnt)) == -1 && errno != 0)
__errno_r(ptr) = errno;
return ret;
}