Комментарии 10
А может это в инструкции было? Например в линуксе ядро не сохраняет fpu контекст, и код ядра должен оборачивать вычисления с плавающей точкой в kernel_fpu_begin()/kernel_fpu_end().
Каких граблей я в своё время только не насобирал делая маленький проектик для PIC-а. И проблемы с документацией к компилятору, и не очевидное поведение компилятора, даже аппаратные баги.
По каким-то неведомым причинам решили всё это писать с использованием компилятора C18. Так вот, очень часто встречалось, что пример из документации отказывался работать. При ближайшем рассмотрении кода примера выяснилось, что там проверяется условие, которое всегда ложно.
Или вот ещё, использовался PIC18F4431, там 8 каналов PWM, я использовал из них только 4, а оставшиеся пины хотел использовать как GPIO. Так эти пины во время работы PWM-а нельзя было установить в единицу. Пришлось лепить костыль: поставить подтяжки к питанию и дёргать TRIS-ы. Настраиваешь пин как вход — у тебя на выходе единица за счёт подтяжки, настраиваешь как выход — нуль. Мы долго смотрели в даташит, но нигде описания подобного поведения не обнаружили. Уж не знаю, может плохо смотрели.
По каким-то неведомым причинам решили всё это писать с использованием компилятора C18. Так вот, очень часто встречалось, что пример из документации отказывался работать. При ближайшем рассмотрении кода примера выяснилось, что там проверяется условие, которое всегда ложно.
Или вот ещё, использовался PIC18F4431, там 8 каналов PWM, я использовал из них только 4, а оставшиеся пины хотел использовать как GPIO. Так эти пины во время работы PWM-а нельзя было установить в единицу. Пришлось лепить костыль: поставить подтяжки к питанию и дёргать TRIS-ы. Настраиваешь пин как вход — у тебя на выходе единица за счёт подтяжки, настраиваешь как выход — нуль. Мы долго смотрели в даташит, но нигде описания подобного поведения не обнаружили. Уж не знаю, может плохо смотрели.
+1, тоже с микрочипом истории есть у меня.
Правда большинство встреченных багов было в в компиляторе, в железке только парочка попалась.
Ну а про доки говорить нечего, да, там ляпов куча.
Правда большинство встреченных багов было в в компиляторе, в железке только парочка попалась.
Ну а про доки говорить нечего, да, там ляпов куча.
Бывает что и компилятор глючит. Мы однажды ловили MSVS 2005 на том, что там BitConvert в C# неадекватно с 24 битными изображениями работает. Все остальные работали нормально, а та же процедура работала нормально на 2008 студии. Пришлось работать через 32битные…
вроде под cortex r4f есть gcc
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Ошибка в компиляторе? Маловероятно, но…