Помилка в обробці ключа -v+

В avreal версій з 1.28r2 по 1.28r6 є помилка в обробці ключа -v+, тобто ключа -v з модифікатором +.
Помилково виконується перевірка на чистоту всього обсягу пам’яті мікроконтролера, а не лише адрес, не зайнятих вмістом hex-файлу. В результаті після першої ж верифікації робота припиняється і подальші операції, наприклад, запис fuses, не виконуютьcя.

Ключ -v без модифікатора працює нормально, тому рекомендується використовувати його.
Помилка не критична, буде виправлена в черговій версії avreal.

Чесно кажучи, я вже і не пам’ятаю з яких міркувань в avreal було додано можливість перевірки на 0xFF не задіяних у вхідному HEX-файлі позицій. Чи хтось колись просив зробити, чи мені самому раптом захотілося. Зараз от думаю, що особливої потреби в цьому і нема — при записові після стирання вони і так мали б бути стерті, а якщо дуже хочеться, можна ключ -b додати. При дозаписові якихось таблиць без стирання нема сенсу перевіряти на чистоту, бо в незайнятих цим HEX-файлом позиціях розміщено основний код.
А місце для внесення помилок додалося. Кажуть же, що «простота — запорука здоров’я» 🙂
Може, пізніше я цей модифікатор приберу зовсім.


Помилку виправлено у версії 1.28r7.

3 коментарі to “Помилка в обробці ключа -v+”

  1. AlexG сказав:

    Ошибка также касается ключа -w+, происходит в точности все тоже самое

    • ReAl сказав:

      Спасибо.
      -w+ более полезный ключ, чем -v+, надо ремонтировать.
      Вот под scmRTOS v4.00 порты/примеры AVR/GCC, AVR/IAR дотяну в эти выходные и сразу после этого в avreal полезу.

    • ReAl сказав:

      Поэкспериментировал с версией 1.28r6 — по -w+ всё правильно делает.
      Т.е. пишем по -w какие-то данные на весь размер EEPROM.
      Затем пишем также по -w поверх предыдущих данных (без стирания) файл с «дырками» — в «дырках» остаются данные от предыдущего файла.
      Затем пишем так же без стирания, но с -w+ — в «дырках» получаем FF.

      Ну а для -v+ ошибку нашёл, пересоберу для всех поддреживаемых ОС и выложу.

Leave a Reply

[flagcounter image]