реклама на сайте
подробности

 
 
> Глюк на глюке..., перешел на IAR :)
king2
сообщение Oct 16 2006, 15:06
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Alex11
сообщение Oct 16 2006, 15:27
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Для начала полностью выключить оптимизацию - там один большой глюк, без нее, как правило, работает. Дальше можно, после того, как все заработает, увеличивать уровень оптимизации, пока не сломается. Эта зараза, мало того, что не видит сама, что переменная используется в прерываниях, так еще и игнорирует слово volatile, после чего может выкинуть половину программы в оптимизаторе.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Oct 17 2006, 04:45
Сообщение #3


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата(Alex11 @ Oct 16 2006, 18:27) *
Для начала полностью выключить оптимизацию - там один большой глюк, без нее, как правило, работает.


Не согласен. Отличный оптимизатор.

Цитата
Дальше можно, после того, как все заработает, увеличивать уровень оптимизации, пока не сломается.


Весь свой софт пишу сразу с установками макс. оптимизации (обычно по скорости). Проблем не было, если все грамотно писать.

Цитата
Эта зараза, мало того, что не видит сама, что переменная используется в прерываниях, так еще и игнорирует слово volatile, после чего может выкинуть половину программы в оптимизаторе.


Приведите пожалуйста пример. По моему опыту, volatile надежно решает проблемы (иногда даже слишком, в смысле лишнего кода)...


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 09:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01367 секунд с 7
ELECTRONIX ©2004-2016