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

 
 
> 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
Ответов
Marian
сообщение Sep 15 2011, 19:32
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 148
Регистрация: 23-02-07
Пользователь №: 25 618



Выловил однажды проблему в CV, при декларировании глобальных переменных.
Был декларирован массив и сразу за ним переменные.
(В массиве хранились структуры)
Все работало до момента записи в массив.
Данные, которые должны были быть записанные в массив, оказывались в переменных.
Компилятор неправильно выделял место, адреса переменных налазили на адрес массива.
Решилась проблема так, при декларировании массива принудительным присваиванием всем значениям массива нулевых значений,
это заставило компилятор правильно выделить место для переменных.

Сообщение отредактировал Marian - Sep 15 2011, 19:36
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
- - -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
- - MKdemiurg   Вообщем глюк то вроде бы изза того что переменную ...   Sep 23 2011, 21:34
|- - 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 23:02
Рейтинг@Mail.ru


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