Главная  Микроконтроллеры 

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [ 48 ] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93]

ты необходимы файлы: для Windows 95/98 - DLportIO.DLL, для Windows NT - LportIO.DLL и DLportlO.sys.

Это файлы из комплекта DriverLINX от Scientific Software Tools, Inc. (http: www.sstnet.com). Его поставка достаточно громоздкая, с примерами работы на С и VisualBASIC, автоматической инсталляцией DLportlO.SYS для Windows NT и т. д. - итого файл port95nt.exe имеет размер 1,6 Мб.

В переупакованном виде p95nt.zip лежит у автора на

http: www.ln.com.ua/~real/avreal/p95nt.zip.

Также существует вариант программатора для LINUX, но он еще недостаточно оттестирован.

Подключение LPT к чипу осуществляется через Altera ByteBlas-ter (ключ -ab) или через адаптер, совместимый с платами STK200/STK300 (ключ -as).

Подключение выводов процессоров:

Сигнал

Выводы микроконтроллеров

1200/2313

8535

8515

ппедаЮЗ/бОЗ

/RESET

MOSI

MISO

XTAL1

При использовании буферированных адаптеров (Altera ByteBlas-ter, Atmel STK*00) программа рассчитана на работу в схеме с «родными» питанием и кварцем. Возможна генерация XTAL1 по линии LED в STK*00 и по дополнительной линии, выведенной на контакт 8 в ByteBlaster.

Программа использует файлы в формате INTEL HEX (avrasm -i). При этом она загружает файл прошивки не в массив, а в список. То есть различается ситуация «байт OxFF в .hex» и «непомянутый байт». В результате есть возможность шить только то, что надо, остальное только проверять при необходимости (см. ключ -v+).



Для любителей патчить прямо по НЕХ-файлу: если не совпадает контрольная сумма строки, то задается вопрос: «игнорировать?». При ответе Y (или у) эта и все остальные ошибки CSUM игнорируются (но сами символы контрольной суммы должны присутствовать, иначе программа завершит работу еще раньше по недопустимому символу в строке).

Для облегчения таких патчей (особенно «форматных» записей в EEPROM) реализована возможность, подсмотренная у программы от VMK@real.kiev.ua для программирования PIC через Tait-совмести-мое железо: перед анализом строки из нее убираются пробелы и табуляции. В итоге можно дать:

:08 0001 00 00 01 0203 0405 О 6 О 7 DB

Также игнорируются пустые строки и строки, начинающиеся с #, последнее предназначено для помещения комментариев о версии непосредственно в НЕХ-файлы.

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

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

Вызов программы

avreal [ключи] [[-с] имя файла кода [[-d] имя файла данных]]

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



При пустой командной строке (ни имен, ни ключей) не делается никаких операций с портами/чипом. Если есть только имена файлов, но нет относящихся к ним ключей (-г -w -v), то файлы игнорируются. Подробнее про работу с файлами и про ключи -с, -d рассказано после описания остальных ключей. Признак ключа - символ - или У, регистр букв не важен.

Ключи

-? (-h) - выдать ключи и перечень поддерживаемых кристаллов, avreal -l-name -?

(+name должен быть задан раньше ключа -?) выдает список fuses, поддерживаемых в режиме ISP для чипа name.

-l-name - установить тип кристалла, <name> задается без префикса At, например, 90sl200, 90s8515, megal03 (т. е. в том виде, в котором имена вьщаются по /h, регистр букв не важен).

Обязательный ключ, никаких действий по умолчанию не производится.

Если задан только чип (больше нет ни ключей, ни имен файлов), то чип будет сброшен и вьщана информация о нем (наличие, если есть доступные по ISP fuses - их состояние).

-р<число1>[,<число2>]

«число!», шестнадцатеричное.

set Port 1, 2, 3 - номер LPT-порта, >0х100 - базовый адрес порта, если задан номер - адрес из BIOS MEMORY (не работает для Win32 и linux версий, там принято, что LPT1/2/3 это 378/278/ЗВС). Адрес в виде -рЗВС и в виде -рОхЗВС воспринимается как HEX число, если задан адрес - «сами попросили» - по умолчанию -р2 (LPT2).

«число2», с плавающей точкой, необязательный параметр, если указан, то не производится настройка на скорость порта, время обращения принимается равным <число2> микросекунд.

В Win32 версии настройка не производится никогда, если не указано - считается, что обращение к порту не быстрее 1 мкс.



[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [ 48 ] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93]

0.0015