ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
26 ноября
565299 Топик полностью
fk0, легенда (11.12.2014 12:15, просмотров: 252) ответил Dingo на Написано. Не помогло.
Ты вначале хоть озвучь, какая у тебя libc. А то может и колёс-то нет, по которым стучать. В общем случае -- нужны интерфейсные с ОС функции вроде open, read, write, close, несколько ещё. Так newlib, например, работает. В более тяжёлых случаях нужны putch и т.п. (hitech). Переопределить fputc -- это, скорей, какая-то полумера работающая скорей чудом, ибо внутри printf может быть putc являющийся в нормальной ситуации вообще макросом. Хотя и последнее порядочное г..., в нормальном printf (я ссылку на format library давал) выводится строками а не по буковкам (ибо дико тормозит). Но помимо самого printf там всякого дополнительного кода в комплекте будет, которому позарез нужен тот же malloc, а последнему позарез нужен sbrk() и т.п. -- вот и приплыли. Конкретно в данном случае (char *stack_ptr) нужна функция возвращающая указатель на регистр SP. Нужно не морочить мозг а понять КАКАЯ ИМЕННО библиотека используется, открыть на неё документацию и почитать как она сопрягается с ОС -- и все эти функции хоть как-то реализовать (большая часть из них может тупо -1 возвращать, кроме sbrk(), и write(), может ещё что-то забыл).
[ZX]