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

 
 
> CVAVR "повреждене" локальных переменных
MKdemiurg
сообщение Sep 15 2011, 15:01
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 624
Регистрация: 15-06-10
Из: Россия
Пользователь №: 57 939



Пишу прожэкт на CоdeVisionAVR 1.25.5 под atmega128A.

Столкнулся с проблемой , что по неопределённым причинам портитятся значения локальных переменных. Т.е. проблема выглядит так :
...................................................
void modem_control(void)
{
unsigned char step;
unsigned char conflict;
unsigned char atc_retry_number;
unsigned char repeat;
// специально присваиваю значения отдельно от инициализации
step=1;
atc_retry_number=3;
repeat=3;
conflict=0;

while (step!=100)
{ OUT_COM0_CHAR(conflcit); // вывод в уарт переменной conflict. Вместо 0x00 приходит 0xC0 - соответственно выполнение кода сбивается...
..............................................................................

эффект периодический, причину возникновения так и не нашёл, НО смена порядка инициализации переменных меняет и переменную , которая "глючит".. Такая же лажа периодически появляется в функции main. Стека всего то 190/1024 использую. Может оптимизатор глючит- но тогда бы проблема была более менее периодичной...

Проект не то чтобы большой( 10К строк и 20К флеша), но переделывать под другой компилятор долго и осваивать нужно, а время поджимает.

Подскажите где могут быть грабли. Может сама версия нестабильна? Слышал что 1.25.5 может генерить неправильный код... Подскажите более менее нормальную и неглючащую...



Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MKdemiurg
сообщение Sep 23 2011, 21:34
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 624
Регистрация: 15-06-10
Из: Россия
Пользователь №: 57 939



Вообщем глюк то вроде бы изза того что переменную не объявил volаtilom. В неё как раз считывались данные с порта только при ресете. И видимо компилятор посчитал, что потом с ней можно делать всё что хочешь. laughing.gif

Столнулся с другим, что уже явно указывает на глюк компилятора. (версию сменил уже на 1.25.9)

прога примерно такая :

void main(void)
{

1)If (условие)
{
if (условие)
{
while (1){операции}
};
};
2)while(1)
{
операции
powerdown();
/*
вот тут задокументирован был временно код на переработку
*/
};

}
какимто образом программа вошла во 2й while(метка 2) выполнила операции , заснула , а когда проснулась попала в условие сверху( метка 1). После ресета было 100% повторение. После перекомпиляции и перепрошивки - всё исчезло. НО, перед перекомпиляцией я убрал задокументированный код. Незнаю сейчас гоняю , вроде работает, но к CV как то отношение ухудшилось biggrin.gif

Да ещё может кто встречал - при прошивке через CV если не сделать стирание чипа с проверкой( обязательно с проверкой) - чип не прошивается вбивает туда 0xFFFF( а может просто не шьёться , но стирается). Грешу на комп - часы у меня на компе уходят за час на 5 минут. Может частота не та идёт с компа? И изза этого появляются битые ячейки? Хотя впринципе тогда должно при верификации выводит ошибку.

Цитата
У меня сейчас 2.03.4.


А как насчёт перехода с версии 1.25 сразу на 2.03 - сложностей не вызовет как думаете?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- MKdemiurg   CVAVR "повреждене" локальных переменных   Sep 15 2011, 15:01
- - kovigor   Цитата(MKdemiurg @ Sep 15 2011, 18:01) По...   Sep 15 2011, 16:32
- - MKdemiurg   Цитата(kovigor @ Sep 15 2011, 19:32) Возм...   Sep 15 2011, 16:55
|- - kovigor   Цитата(MKdemiurg @ Sep 15 2011, 19:55) Де...   Sep 15 2011, 17:06
- - MKdemiurg   Цитата(kovigor @ Sep 15 2011, 20:06) А ту...   Sep 15 2011, 17:24
|- - kovigor   Цитата(MKdemiurg @ Sep 15 2011, 20:24) Зы...   Sep 15 2011, 17:29
- - MKdemiurg   Цитата(kovigor @ Sep 15 2011, 20:29) Vola...   Sep 15 2011, 17:50
|- - kovigor   Цитата(MKdemiurg @ Sep 15 2011, 20:50) На...   Sep 15 2011, 17:56
- - MKdemiurg   А тем которые параметром в функцию передаются?   Sep 15 2011, 18:02
|- - kovigor   Цитата(MKdemiurg @ Sep 15 2011, 21:02) А ...   Sep 15 2011, 18:06
- - Marian   Выловил однажды проблему в CV, при декларировании ...   Sep 15 2011, 19:32
- - -SANYCH-   В CоdeVisionAVR довольно много глюков (по крайней ...   Sep 15 2011, 20:41
- - MKdemiurg   Цитата(-SANYCH- @ Sep 16 2011, 00...   Sep 16 2011, 05:38
|- - kovigor   Цитата(MKdemiurg @ Sep 16 2011, 08:38) Чт...   Sep 16 2011, 10:07
- - Slava2105   Не знаю как в версии 1.25.5 , я про неё давно забы...   Sep 23 2011, 16:55
|- - kovigor   Цитата(MKdemiurg @ Sep 24 2011, 00:34) Ст...   Sep 24 2011, 09:24
- - MKdemiurg   Цитата(kovigor @ Sep 24 2011, 13:24) Почт...   Sep 24 2011, 12:43
- - Slava2105   ЦитатаА как насчёт перехода с версии 1.25 сразу на...   Sep 25 2011, 00:09
- - MKdemiurg   ЦитатаИ утверждать про глюки компилятора надо всё ...   Sep 25 2011, 06:13


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 11:54
Рейтинг@Mail.ru


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