Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру
Глава б. Основы программирования МКАVR 143 МК с 5 1 2-ю байтами встроенного ОЗУ ( $025F = 607, т. е. всего адресов 608, из кото рых 96 ( $5F) занимают регистры, итого получается 5 1 2 ( $0200) незанятых байтовых ячеек, составляющих ОЗУ) . Все, как и должно быть, - если мы обратим внимание опять на первую-вторую строки с данными, то увидим повторяющийся фрагмент 1 8 95, который, как легко догадаться, должен быть командой reti из таблицы пре рываний - если проверите по справочнику, то так оно и окажется . Как видите, разобраться хоть и сложно, но при некотором навыке и наличии под рукой таблицы двоичных/шестнадцатеричных кодов команд вполне можно. Имен но так работает программа, которая превращает код обратно в текст, - д�qассемб лер (он входит в АVR Studio ) . Впрочем, в дизассемблированной программе разо браться бывает еще сложнее, чем в самом hех-файле, т. к. там, естественно, нет никаких адресных меток и определений, все в абсолютных числах. Так что если действительно надо дизассемблировать программу, то лучше делать это «вживую» в А VR Studio. А зачем это может понадобиться на практике? Дело в том, что в памяти программ часто хранят константы- те, что предположительно не будут изменяться в про цессе эксплуатации, - например, устанавливаемые по умолчанию значения каких либо величин. Но, разумеется, по истечении некоторого времени или при переносе на другое устройство эти константы обязательно захочется изменить. И если у вас текст программы по каким-то причинам отсутствует (например, программа взята из публикации в журнале или скачана с радиолюбительского сайта), а загрузочный hех-файл имеется, то всегда можно «хакнуть» исходный код и немного подправить его под свои нужды. Загружаются hех-файлы программой, которая прилагается к вашему ISР-про грамматору. В AVR Studio это делается прямо из среды программирования, для чистого ассемблера необходимо программу-загрузчик запустить отдельно. На рис . 6.2 показано окно программы ASISP, прилагающейся к описанным в главе 5 программаторам AS-2/3/4. Подробно я ее описывать не стану - к ней прилагается вполне толковое описание на русском, и даже без него разобраться в ней не так уж сложно. Укажем только правильную последовательность действий - при ее нару шении вы, скорее всего, ничего не испортите, но и загрузки не произойдет. В прин ципе, те же самые действия необходимо произвести в любом другом загрузчике. Первым делом программу следует настроить на нужный последовательный порт. Для этого подключите программатор к компьютеру, обратитесь в Диспетчер уст ройств, где в группе Порты СО� и LPT должен появиться новый последователь ный порт, и запомните его номер (например, СОМ 6). Этот порт нужно указать в меню Настройки 1 Настройки интерфейса. Номер порта сохраняется, и если вы в дальнейшем не будете менять гнездо USB, к которому подключен программатор, то настраивать его придется только при первом включении. Затем подключите контроллер через выводы ISP (см. главу 5) к программатору и включите питание устройства, где установлен контроллер. В программе нажмите на кнопку Чтение сигнатуры, после чего программа должна автоматически вы-
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==