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

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

Сообщение 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 байт ОЗУ.

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

Сообщение pyzhman »

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

Сообщение codenamehawk »

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

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

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

Сообщение codenamehawk »

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

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

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

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

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

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

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