ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
16 апреля
236940 Топик полностью
testerplus (04.02.2011 20:36, просмотров: 299) ответил AVF на есть там баги, но они есть даже в си24 - сам отлавливал, баг репорт писал, поправили уже. но для pic16 hitech безальтернативен имхо :( недавно проект разовый делал, под STD отказался собираться, под PRO нормально собрался. поскольку проект был
Нет списка. Где-то с полгода, как удалил папку с примерами косяков (для HTPICC18 около 15 было). Все, что осталось - чужой проект с перекрытием областей констант и по случайке остался пример с багом HTPICC STD. Вот в двух словах: О PICC18: Собственно, навскидку, помимо перечисленного (это о 18 STD): - проблемы с 24-битными указателями, - не всегда сохраняеся FSR0 в обработчике прерывания, - кое-какие системные ошибки (вроде присваивания регистров TOSx через movff), но это когда напрямую работаем с регистрами - ошибка с записью в 16-разрядный таймер (пишут сперва младший байт, а только потом в буферный старший). Эту ошибку потом залатали макросами WRITETIMERx() - косяк с выражениями в дефайне (цифры для примера приведены, а в реальной программе делалась проверка параметров USART'а через определенные константы): #if (-1L/800) == 0x0051EB85 #error "BLA-BLA-BLA" #endif ПРО версии забросил проверять год назад. ПРО для 18х последним тестировал 9.64 - там легко синтезируется ошибка, при которой компилятор не может найти temp-переменную, которая должна быть объявлена в копии функции мейн, вызываемой из прерывания 5-го уровня. В общем описание ошибки не поддавалось логике. Также были проблемы с указателями на структуры (простое выражение A->a = b вызывало ошибку Can't generate code). В одной из более ранних версий компилятор стеснялся применять инструкцию MUL (это, конечно не баг, но все-таки). О PICC: PRO для 16х - Вешались довольно легко, самые частые ошибки "Can't generate code for this expression" и "Phase error", причем если первая просто указывала на безобидное выражение, то вторая говорила, что ошибка во временном as-файле, который тут же сносился после компиляции. Выловить эти файлы удалось, но причину ошибки так и не понял, а хайтековцы молчали. Надо сказать, что ПРО для 16х со временем становился все устойчивее и версию 9.70 уже в ступор ввел только на большом примере (не помню, чем именно). Последней гонял 9.71a, но это была какая-то урезанная версия. 9.80 и 9.81 у меня есть, но их даже не запускал, за их устойчивость ничего не скажу. Говорят, что стало намного лучше. STD - считаю лучшим компилятором для PIC10/12/16 (не считая неудобств с IRP, с инструкцией CLRWDT в стартапе и прочих мелочей). Неплохо оптимизирует, хуже, чем CCS, но в отличие от него глючит очень редко: - иногда не сохраняет FSR в обработчике прерываний - для 12-разрядников после работы с указателями на переменные в старших банках не восстанавливаются FSR 5 и 6. - не восстанавливает PCLATH после обращения к таблицам данных в другой странице памяти. Если интересно, могу скинуть пример, где не восстанавливается PCLATH (чудом уцелел после массового стирания, копия была в другой папке)