Согласен - я все время использовал HI-TECH-ские продукты, но (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Вопрос 26 ноября 2003 г. 11:08
В ответ на: Ответ: Всёж под PIC 16 Hi-TechC лучше заточен. (+) отправлено Serg-Ant 26 ноября 2003 г. 09:40

вот последний проект у меня с "глюками" - то вдруг портятся биты, которые в принципе не должны портится. Когда же я делаю вместо битовых переменных быйтовые (unsigned char), то эти проблемки исчезают, но появляются другие - начинает портиться что-то другое. У HI-TECH я ловил очень много глюков (работаю года три с ним).
Первые проблемы были с типом double - если я переменной типа double, находящейся в bank1 присваивал результат какого-то выражения, то оно помещало его не в bank1, а в bank0. Еле нашел этот баг - из-за него затирались другие переменные в bank0, а почему - было непонятно. Искал очень долго у себя в программе ошибку - оказалось ошибка в компиляторе. Но этот баг исправили.
Еще были проблемы при работе со структурами через указатели - тоже ошибки переключения банков (записывалось в другой банк). Его вроде тоже исправили, но симптомы были такие же - вдруг портятся переменные и не понятно почему. Искал очень долго (грешил на свою программу, оказалось - компилятор).
Еще ловил этот компилятор на ошибке при распределении локальных переменных - он неправильно определял области для локальных переменных, в результате чего они "перекрывались" и одновременно работающие локальные переменные занимали один и тот же адрес, в результате чего одна переменная затирала другую. Это наблюдалось, когда у меня была некоторая вложенность локальных переменных - можно определить локальную переменную внутри блока, а внутри этого блока еще один блок с локальной переменной. Когда же я сделал эти переменные глобальными, то ошибка исчезла. Такое же я наблюдал не только в PICC, но и в PICC-18 компиляторе. Вроде как в самой последней версии исправили.
Сейчас же у меня проблема в программе - я использую битовые переменные и локальные и мне кажется, что они иногда портятся (у себя я ошибку не нашел, хотя и не исключаю это). Хочу попробовать на IAR-ском компиляторе.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru