ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
26 ноября
382286 Топик полностью
Молодой коллега (22.01.2013 14:31, просмотров: 166) ответил fk0 на Нуля нет -- а что вместо нуля? ARM, стек растёт вниз. Затирать конец буфера уж точно не может. Покажи sprintf.c здесь (нет IAR). Вариант: таки прерывания не запрещаются? И обработчик портит какой-то регистр (не сохраняется и т.п.) и потому
Вместо нуля мусор который был до вызова sprintf. В терминал летит мусор + JTAGом вижу в отладчике на точке останова после sprintf. IARовский sprintf: int (sprintf)(char *_Restrict s, const char *_Restrict fmt, ...) { /* print formatted to string */ int ans; va_list ap; _SProutInfo x; va_start(ap, fmt); x.s = s; ans = _Printf(&_SProut, &x, fmt, &ap _SECURE_PARAM(0)); *x.s = '\0'; va_end(ap); return ans < 0 ? ans : (x.s - s); } Запрет прерываний проверю.