Overheat (14.06.2007 13:39, просмотров: 1) ответил -=MIV=- на Так для DLIB надо int MyLowLevelPutchar(int x); прописывать а не putchar !!! и берёт он Large а не Full из диалога если ничо не указываешь !! например float и long long работать не будут ! ;) Это для IAR 4.12
Кстати Library Normal DLIB никакого
у меня IAR4.20. там надо переписывать не putchar, а
size_t __write(int Handle, const unsigned char * buffer, size_t size)
На счет Large и Full спорить не буду. До конца не все понимаю, но float и long работают.
В том коде, который глючит ни float, ни long не выводиться. Выводиться безобидный int. А портиться озу, в котором храниться формат, т.е. вместо $02d в момемт "Ч" там находиться телефон моей бабушки. Помойму ни putchar, ни MyLowLevelPutchar ни причем, гадость происходит до них.
Самое волшебное, что поставили проверку на содержимое формата до printf -> все нормально, т.е. портиться внутри printf.
на время printf запретил прерывания -> все равно портиться.
сделал формат глобальным -> все равно портиться.
стека и хипа дохрена.
Короче, не понимаю нихрена.