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

[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]

После ключа -d идет имя файла данных, после -с - имя кода, в этом случае порядок файлов не важен. Пробел между ключами -c/-d и именами не обязателен, т. е. допустимо как -cfoo.hex, так и -с foo.hex.

Если дано два имени файла без ключей -с и -d, то первое имя - файл кода, второе - файл данных (EEPROM).

Если имя одно и нет ключей -c/-d, то этот файл содержит данные для кода, и если он содержит информацию после верхнего адреса FLASH для заданного кристалла, то эта информация используется для программирования EEPROM данных. То есть если, например, для 90s2313 hex-файл содержал данные в адресах от 0x800 до 0x87F, то эти данные будут записаны в EEPROM по адресам 0x00-0x7F.

Для Mega 163 и Tiny 12 поддерживаются особые формы ключей -с и -d для записи значения OSCCAL по адресу offset (шестнадцатеричное значение без префиксов и суффиксов). Байт (слово для ?) по offset должен существовать в исходном НЕХ-файле. Используется адрес байта, а не слова, в том числе и при обращении ко flash коду.

-d*osccal=offset - как байт в EEPROM данных; -c*osccal=offset - как байт во FLASH коде (под команду LPM); -c?osccal=offset - врезать OSCCAL как часть команды LDI по offset,offset+l.

Например:

public osccal ldi

osccal ldi: Idi Rie.OxFF out OSCCAL,R16

Далее смотрим по МАР-файлу значение osccalldi, например, оно вышло 0x120

avreal +tinyl2 -ewv -с foo.hex -c?osccal=120

Группа ключей может задаваться как одним аргументом (-wv)? так и раздельно (-v -w). Ключ с параметром (-р -с -d) может стоять в группе только последним. То есть допустимо, скажем, такое :-) -wddata.hex -bv+c prog.hex -epl



Порядок ключей не важен, выполнение производится в порядке Е BWVL.

Если проверка (В, V) дала отрицательный результат, то дальнейшая работа не производится. То есть -ebwvl2

Стереть, если стерлась - писать, если верифицировалась - за-лочить.

+tinyl2 -W -с foo.hex -c*osccal=lf3 -fcks=3,boden=0 Для tiny 12 записать во флэш кода файл foo.hex, по адресу Ох1ЕЗ занести прочитанное из чипа значение OSCCAL, запрограммировать fuse boden и установить fuse CKSEL в бинарное значение 0011.

Возвращаемый код ошибки:

О - все заказанное сделалось;

10 - not blank при -В, несравнение при -V[+];

20 - невозможность осуществить запрошенную операцию НЕХ-кода или перечень данных слишком большой для распознанного чипа.

Запрошенное для записи состояние BLB нельзя записать, не стерев чип (а команды стирания не было);

30 - не распознан конкретный чип (бывает при защищенном чипе, поэтому при -Е все равно делается попытка стереть, и если после этого тоже не распознан - программа завершает работу);

40 - адаптер не подключен (не удалось войти в программирование по алгортиму для At90s);

50 - ошибка при чтении (не найден, «не те» символы, не совпала контрольная сумма, ошибка чтения...) или записи (есть защищенный от перезаписи с таким же именем...) НЕХ-файла;

60 - недостаточно памяти для списков кода/данных;

70 - недопустимая командная строка (в том числе задан номер отсутствующего LPT).

При обнаружении ошибок просьба сообщать версию программы и очень желательно отослать копию расширенной выдачи программы по ключу -% (перенаправив вьщачу в файл) по адресу real@real.kiev.ua.

Один из вариантов использования программатора



Программы командной строки удобны для использования в какой-либо системе автоматизации проектирования программ. Большинство IDE имеют настраиваемое меню TOOLS, в которое можно вставить вызов программы и передать ей аргументы, например, имя текущего файла, имя проекта и др.

Многие программисты пользуются для сборки проекта утилитой make даже в том случае, если пакет имеет интегрированную оболочку, но содержит и компилятор/линкер командной строки.

Для использования avreal с такими программами необходимо один раз правильно сформировать строки для вызова avreal и поместить их в соответствующие позиции меню TOOLS используемого IDE или как команды соответствующих целей в makefile.

При использовании avreal для работы с кристаллами «вручную» неудобно каждый раз набирать всю командную строку. Для упрощения работы можно заготовить командные файлы с постоянно используемыми ключами и в командной строке задавать только название контроллера и имена файлов. I Ниже приведены примеры таких командных файлов, написанные в предположении, что:

• используется адаптер Atmel STK200 или STK300 (ключ -as), подключенный к порту LPT1 (ключ -р1). *.bat-фaйлы дол-

I жны находиться в одной папке (директории) с программой avreal.exe;

• тактовая частота контроллера не ниже 3,686 МГц (3686 кГц, ключ -о3686). Без этого ключа avreal будет предполагать, что тактовая частота может быть ниже, вплоть до 0,8 МГц, что при-

I ведет к существенному увеличению времени работы.

При использовании avreal для Win32 необходимо в командном файле указать avreal32 либо переименовать avreal32.exe в avreal.exe.

erase.bat

©if •»r==-- goto he}p ©avreal -as -pi -o3686 +%1 -e ©goto exit :help

©echo erase.bat - стирание AVR-контроллера

©echo Вызов:

©echo erase cpuname.



[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.0008