|
Глюк на глюке..., перешел на IAR :) |
|
|
|
Oct 16 2006, 15:06
|
Местный
  
Группа: Свой
Сообщений: 255
Регистрация: 17-08-06
Из: Москва
Пользователь №: 19 646

|
До этого писал проект на ICCAVR7 (imagecraft). Закончился триальный срок, решил попробовать IAR, вроде все и везде его хвалят.
После изменения в проекте разных штучек типа объявления прерываний скомпилял проект и понеслась душа в рай.
То оно работает, то оно виснет. Виснет в разных местах (разное количество символов выводя на ЖК). Увеличил значение стека, вроде прошло через первый инит и зажгло светодиодик. Ура.
Дальше больше. Почему-то не работает sprintf, ни с CLIB, ни с DLIB. Увеличил CSTACK до 0x50, RSTACK до 0x40 - не помогло. Иногда на дисплейчике все же появляется то пол-строчки, то еще глюк какой, и постоянно виснет через несколько секунд или минут работы.
С ICCAVR подобного глюкалова не было, код не менялся никак..
В коде используется TIMER1 (OVF, CAPT, COMPB) и timer2_ovf, контроллер mega16.
Может я чего забыл-не учел-не узнал?
Спасибо заранее!
Сообщение отредактировал king2 - Oct 16 2006, 15:07
|
|
|
|
|
 |
Ответов
|
Oct 16 2006, 15:27
|
Гуру
     
Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965

|
Для начала полностью выключить оптимизацию - там один большой глюк, без нее, как правило, работает. Дальше можно, после того, как все заработает, увеличивать уровень оптимизации, пока не сломается. Эта зараза, мало того, что не видит сама, что переменная используется в прерываниях, так еще и игнорирует слово volatile, после чего может выкинуть половину программы в оптимизаторе.
|
|
|
|
|
Oct 16 2006, 15:30
|
Местный
  
Группа: Свой
Сообщений: 255
Регистрация: 17-08-06
Из: Москва
Пользователь №: 19 646

|
Цитата(Alex11 @ Oct 16 2006, 19:27)  Для начала полностью выключить оптимизацию - там один большой глюк, без нее, как правило, работает. Дальше можно, после того, как все заработает, увеличивать уровень оптимизации, пока не сломается. Эта зараза, мало того, что не видит сама, что переменная используется в прерываниях, так еще и игнорирует слово volatile, после чего может выкинуть половину программы в оптимизаторе. Оптимизация выключена. Проблема (или по крайней мере не вся проблема) не в компиляторе, потому что иногда он все-таки выводит первую часть строчки...
|
|
|
|
Сообщений в этой теме
king2 Глюк на глюке... Oct 16 2006, 15:06 Rst7 Цитата(Alex11 @ Oct 16 2006, 18:27) Для н... Oct 17 2006, 04:45  dxp Цитата(Rst7 @ Oct 17 2006, 11:45) Цитата(... Oct 17 2006, 05:14 rezident Функция sprintf требует для работы весьма много ст... Oct 16 2006, 15:51 king2 Цитата(rezident @ Oct 16 2006, 19:51) Фун... Oct 16 2006, 16:31  rezident Цитата(king2 @ Oct 16 2006, 22:31) Неужел... Oct 16 2006, 16:49   king2 Цитата(rezident @ Oct 16 2006, 20:49) Цит... Oct 16 2006, 17:33 arttab ЦитатаДля начала полностью выключить оптимизацию -... Oct 17 2006, 01:39 king2 Цитата(arttab @ Oct 17 2006, 05:39) Цитат... Oct 17 2006, 10:23  IgorKossak Цитата(king2 @ Oct 17 2006, 13:23) Да пох... Oct 17 2006, 10:34 SasaVitebsk Простите, но не верю что дело в компиляторе. Может... Oct 17 2006, 19:49 Георгий Да, действительно, нужно глянуть в доках как компи... Oct 18 2006, 07:57
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|