CodeVisionAVR необъяснимая ошибка в работе проекта.

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Аватара пользователя
Valentin44
Встал на лапы
Сообщения: 104
Зарегистрирован: Пн ноя 15, 2010 23:48:09
Откуда: Украина, Кривой Рог

CodeVisionAVR необъяснимая ошибка в работе проекта.

Сообщение Valentin44 »

Доброго дня!

Столкнулся с непонятной проблемой. Есть проект под мегу128, который пишу в codevision 2.04.4a
Сейчас проект занимает около 55 килобайт, если компилировать с оптимизацией по памяти.

Суть проблемы:
Проект работает с СД картой, иногда пишет на нее, иногда читает.
Когда добавил новую функцию для чтения данных, проект спешно компилируется. Но при работе не находит такого файла на карте!
Перепроверил что только можно, делаю так:
  • void SD_read_logo (void){}

    ....
    void menu (void){
    if (x==5) SD read_logo();
    }
Функция работы с картой работает отлично!
КОПИРУЮ эту же функцию еще, и меняю ей название:
  • void SD_read_logo (void){.....}

    void SD_read_logo_test (void){.....}

    ....
    void menu (void){
    if (x==5) SD read_logo();
    }

    if (x==6) SD_read_logo_test();
Теперь функция SD_read_logo работает НОРМАЛЬНО, а функция SD_read_logo_test не работает, ошибка в работе с СД картой (карта не готова).

Если поменять МЕСТАМИ! (не переименовать, а просто поменять местами) функции:
  • void SD_read_logo_test (void){.....}

    void SD_read_logo (void){.....}

    void menu (void){
    if (x==5) SD read_logo();
    }

    if (x==6) SD_read_logo_test();
То теперь функция SD_read_logo_test работает нормально, а фукция SD_read_logo не работает!
Т.е. работает только та фукция, которая в тексте идет первой!
Переименовал все переменные в фукции (они простые, просто чтение блока и копирование в еепром), ничего не меняется!
Менял оптимизацию на скорость, и степени оптимизации - нет результата!

Что это может быть? Глюк кодевижена? Сомневаюсь, если мой - то где смотреть? На что обратить внимание?
Для стека выделяю 1 кб, расчетно используется 300 байт. И еще остается примерно 500 байт ОЗУ.

Ув. Коты, выручайте, совсем нет идей.
Реклама
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: CodeVisionAVR необъяснимая ошибка в работе проекта.

Сообщение pyzhman »

Склоняюсь к глюку вижена. У меня было с более ранней версии перекомпилировал на более поздней, результат - нерабочая прошивка. Не тот, конечно, случай, но настораживает.
Docendo discimus
Реклама
codenamehawk
Вымогатель припоя
Сообщения: 528
Зарегистрирован: Вт фев 09, 2010 17:52:26

Re: CodeVisionAVR необъяснимая ошибка в работе проекта.

Сообщение codenamehawk »

Посмотрите как располагаются ваши переменные в памяти. (нп. протеусом)

Была проблема, CodeVision переменные располагал одну поверх другой.

Выложите схему и проект, похоже проблема не в приведенном коде.
codenamehawk
Вымогатель припоя
Сообщения: 528
Зарегистрирован: Вт фев 09, 2010 17:52:26

Re: CodeVisionAVR необъяснимая ошибка в работе проекта.

Сообщение codenamehawk »

Valentin44 писал(а):Доброго дня!
Когда добавил новую функцию для чтения данных, проект спешно компилируется. Но при работе не находит такого файла на карте!

Теперь функция SD_read_logo работает НОРМАЛЬНО, а функция SD_read_logo_test не работает, ошибка в работе с СД картой (карта не готова).

Если поменять МЕСТАМИ! (не переименовать, а просто поменять местами) функции:

То теперь функция SD_read_logo_test работает нормально, а фукция SD_read_logo не работает!
Т.е. работает только та фукция, которая в тексте идет первой!
С этого текста я бы предположил, что вы, перед вторым чтением, не проверяете готовность карты.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: CodeVisionAVR необъяснимая ошибка в работе проекта.

Сообщение Аlex »

Реклама
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»