Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру

Глава б. Основы программирования МКАVR 141 ричной записи. Поэтому в случае чего его можно даже править в обычном тексто­ вом редакторе. Кстати, точно такой же формат применяется для записи констант в EEPROM, если это потребуется . Рассмотрим формат НЕХ подробнее. На рис . 6 . 1 предетавлен файл короткой про­ граммы, открытый в обычном Блокноте . На первый взгляд, тут сам черт ногу сло­ мит, но на самом деле все достаточно просто, хотя чтение затрудняется тем, что строки не поделены на отдельные байты (и никаких, конечно, добавок в виде $ или Ох тут не имеется) . Разбираться будет проще, если вы скопируете этот файл под другим именем и расставите в нем пробелы после каждой пары символов. , Рис. 6. 1 . Файл формата НЕХ в Блокноте Основную часть файла занимают информационные строки, содержащие непосред­ ственно КОП. Они состоят из ряда служебных полей и собственно данных. Каждая строка начинается двоеточием и заканчивается парой символов: «возврат карет­ ки»/«перевод строки», на экране не отображаемых. После двоеточия идет число байтов в строке - кроме первой и последней, везде стоит, как видите, число 10 (де­ сятичное 1 6), т. е. в каждой строке будет ровно 1 6 информационных байтов (ис­ ключая служебные). Затем следуют два байта адреса памяти - куда писать (в пер­ вой строке 0 0 0 0, во второй это; естественно, 0 0 1 0, т. е . предыдущий адрес плюс 1 6, и т. д. ) . Наконец, после адреса расположен еще один служебный байт, обозначаю­ щий тип данных, который в информационных строках равен оо , а в первой и по­ следней - 02 и 01 , о чем далее . Только после этих шести байтов начинаются собст­ венно байты данных, которые означают соответствующие КОП, записанные по­ словно, причем . так, что младший байт идет первым. КОП для AVR, напоминаю, занимают в основном два байта, и память в этих МК также организована пословно. Таким образом, запись в первой информационной строке ЗАСО в привычном нам «арабском» порядке, когда самый старший разряд располагается слева, должна вы­ глядеть, как сОЗА.

RkJQdWJsaXNoZXIy MTExODQxMg==