Программаторы AVR микроконтроллеров


Avreal - часть 2


Загружает HEX в память не в массив, а в список. Т.е. различается ситуация "байт 0xFF в .hex" и "неупомянутый байт" В результате есть возможность шить только то, что надо, остальное только проверять при необходимости (см. ключ -v+).

Для любителей патчить прямо по HEX-файлу: если не совпадает контрольная сумма строки, то задается вопрос - "игнорировать?". При ответе 'Y' (или 'y') эта и все остальные ошибки CSUM игнорируются (но сами символы контрольной суммы должны присутствовать, иначе программа отвалится еще раньше по недопустимому символу в строке).
Для облегчения таких патчей (особенно "форматных" записей в EEPROM) реализована фича, подсмотренная у программы от VMK@real.kiev.ua для программирования PIC через Tait-совместимое железо: перед анализом строки из нее убираются пробелы и табуляции. В итоге можно дать: :08 0001 00 00 01 0203 0405 0 6 0 7 DB Также игнорируются пустые строки и строки, начинающиеся с символа '#', последнее предназначено для помещения комментариев о версии непосредственно в HEX-файлы.

Проверяется верхний адрес в HEX-файле, если не влазит в опознанный чип, то никаких действий (кроме ругани) не осуществляется.
Проверяется перекрытие адресов записей в HEX файле. При нахождении первого перекрытия производится выход из программы с указанием диапазона адресов перекрывающихся данных.

Для mega103 необходим расширенный формат HEX-файла (обычный не поддерживает объем больше 64Kb). Запись прочитанных данных в файл всегда производится с дополнительными записями тип '04' - Extended Linear Address Record, как не имеющим разночтений. Чтение из HEX-файла записей типа '02' Extended Segment Address Record производится в соответствии с формированием их в AVRASM by Atmel (без предусмотренного документацией Intel сворачивания адреса смещения по модулю 64Kb).

ВЫЗОВ

avreal [ключи] [[-c] имя_файла_кода [[-d] имя_файла_данных]] или avreal [ключи] -d имя_файла_данных (когда код трогать желания нет)

Если есть только имена файлов, то выполняется чтение.


- Начало -  - Назад -  - Вперед -