Algorithm Builder fo avr, Начинаем Графический ассемблер


Скачать 328.93 Kb.
Название Algorithm Builder fo avr, Начинаем Графический ассемблер
страница 1/4
Тип Документы
rykovodstvo.ru > Руководство эксплуатация > Документы
  1   2   3   4
Algorithm Builder fo AVR, Начинаем

Графический ассемблер

    Программное обеспечение является источником жизни системы, основанной на микроконтроллере или микропроцессоре. Разработка его является центральным моментом общего процесса проектирования. Основным инструментом для профессиональной разработки программ является ассемблер, предполагающий детализацию на уровне команд микроконтроллера или микропроцессора. Только он позволяет максимально использовать ресурсы кристалла. Однако работать на ассемблере не слишком удобно. Существенным барьером между программистом и предметом программирования является текстовый редактор с его ограниченными возможностями.

    В данной публикации я хотел поговорить о технологии графической разработки программного обеспечения для микроконтроллеров и микропроцессоров. Такая технология освобождает программиста от целого ряда неудобств, свойственных классическому ассемблеру, а также предполагает существенное упрощение работы при сохранении уровня его детализации. Рассмотрение темы я буду вести с использованием в качестве примера среды разработки "Algor ithm Builder", в частности адаптированной под микроконтроллеры фирмы ATMEL с архитектурой AVR.

    Вначале немного о мнемонике. Мнемоника представляет собой короткий набор букв латинского алфавита, однозначно определяющий соответствующую ему операцию в ядре микропроцессора. Конечно, разработчики старались вложить в этот набор букв смысл выполняемой операции, чтобы максимально облегчить жизнь программисту. И в ряде случаев им это вполне удалось, например, MOV, CALL, ADD, JMP и так далее. Но таких ситуаций немного. А появившиеся позже команды SBI, XTHL, BRBC, ADIW, XCHD и другие начинают соперничать с китайской письменностью. Разумеется, можно попытаться их запомнить, но и без того проблем достаточно.

    Кроме того, те, кто имел дело с разными микропроцессорами, конечно, обратил внимание, что общность мнемоник их ассемблеров составляет не более трети. Среди присутствующих практически во всех ассемблерах, можно перечислить MOV, ADD, SUB, CALL, AND, OR, INC, DEC, PUSH, POP и еще некоторые. Основная же масса представлений эксклюзивна даже для ряда совершенно одинаковых операций. Например, в одном случае операция "исключающее или" записывается как XOR, в других - EOR. В одном случае обозначение операций переходов построено на основе слова JUMP, в другом - на основе BRАNCH. И таких примеров можно привести множество. Но ведь редко кому удается пользоваться только одним ассемблером. В реальной жизни "коней" приходится менять, и с таким нежелательным разнообразием сталкиваешься неизбежно.

    С учетом всего этого, в среде "Algor ithm Builder" представление операций микроконтроллера построено иначе - по визуально-функциональному принципу. Запись операции содержит образ выполняемого действия. Например:

вместо "MOV R0,R1" записывается

"R1->R0",

вместо "LDI R16,63" - "63->R16",

вместо "ST X,R2" - "R2->[X]",

вместо "LSR r7" - "r7>>",

вместо "SBI PortB,3" - "1->PortB.3" и так далее.

    В результате, время освоения системы команд сокращается до минимума, а смысл операций становится понятным даже неподготовленному человеку. Кроме того, в среде предусмотрен оперативный вызов через меню таблицы шаблонов всех имеющихся операторов, который позволяет легко найти необходимый.

    Одно из основных неудобств ассемблера (и не только его) состоит в том, что в редакторе программа записывается и отображается в виде одной сплошной вертикальной полосы. И логическая структура тех или иных фрагментов может быть построена только в воображении программиста. В особо сложных случаях приходится предварительно прорисовывать необходимую структуру на бумаге. Это дополнительно загружает программиста совершенно ненужной работой.

    Главное предназначение графических сред - приведение интерфейса разработки в соответствие с природой человеческого восприятия, освобождение пользователя от лишних рутинных действий для чисто творческого процесса. Элементы этих технологий мы наблюдаем в таких языках программирования, как Visual Basic, C-Builder, Delphi и других. Но там этот процесс ограничивается в основном конструированием содержимого окна. А с полным правом к этой категории можно, пожалуй, отнести такие среды, как PCAD, OrCAD и прочие. Можно, конечно, электрическую схему описать в текстовом редакторе, вводя список соединений, но гораздо удобнее это делать в специализированном графическом редакторе.

    Любая программа, написанная на уровне ассемблера, состоит из ряда законченных монотонных (или условно монотонных) цепочек, в которых ее исполнение возможно без ветвлений. Такие фрагменты всегда начинаются с метки (если это не само начало программы), а завершаются либо оператором безусловного перехода, либо оператором возврата из подпрограммы (RET или RETI), то есть оператором, который безо всяких условий осуществляет перевод хода исполнения программы в иной фрагмент. Такие участки программы представляют собой первичные логически завершенные блоки.

    Например, приведенная ниже подпрограмма содержит три таких блока:

SubName: LDI XL,96

LDI XH,00

Label0: LD R16,X

CPI R16,1

BREQ Label1

CPI R16,2

BRNE Label2

SBIW X,2

RJMP Label0

Label1: SBI PortA,0

CBI PortA,149

RET

Label2: SBI PortA,2

CBI PortA,3

RET



    Первый блок начинается с оператора "LDI XL,$20" с меткой "SubName", а завершается оператором безусловного перехода "RJMP", два других - начинаются с оператора "SBI" с метками "Label1" и "Label2", соответственно, а заканчиваются оператором "RET".

    Визуальное разделение таких блоков на плоскости является одним из принципов графических методов. Другим принципом является возможность графического отображения алгоритма программы. Благодаря этому, обеспечивается возможность ввода программы на плоскости в двух измерениях в виде алгоритма с древовидной структурой, с визуальным отображением направления условных и безусловных переходов. В результате - вся логическая структура как на ладони.

    На рис. 1 показано отображение вышеприведенной программы в графической среде "Algorithm Builder".


Рис. 1. Отображение программы в среде "Algorithm Builder"


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

    Графическая технология ассемблера в среде "Algorithm Builder" реализуется посредством нескольких базовых объектов, из которых выстраивается конструкция алгоритма. Среди них:

  • "Label" (метка) - отображается в виде вертикального штриха, расположенного на оси блока операторов. Метка может иметь необязательное имя, которое располагается слева или справа от штриха. Метки предназначены для подвода концов векторов переходов;

  • "Vertex" (вершина) используется в качестве начала блока, а по своему отображению и назначению аналогичен метке;

  • "Field" (поле) предназначен для записи операторов алгоритма и представляет собой отцентрированную строку в блоке;

  • "Condition" (условие) предназначен для обозначения операторов условных переходов. Конструктивно наиболее сложный. Графически представляет собой контур, располагающийся посредине блока, внутри которого вписывается текст с условием перехода и возможный вектор перехода в виде ломаной линии, исходящей от одного из краев контура, со стрелкой на конце, которая должна заканчиваться на метке или вершине. Действие интерпретируется как ветвление, если вписанное условие выполняется;

  • "JMP Vector" предназначен для представления безусловного перехода. Графически представляет собой ломаную линию, исходящую из середины блока операторов, аналогичную вектору объекта "Condition".

    Редактор среды позволяет свободно вносить на рабочее поле любые необходимые объекты, модифицировать их, вставлять и так далее. Принципы редактирования аналогичны используемым в других графических редакторах.
Для удобства, конец вектора ветвления разрешается останавливать на отрезке другого вектора, если конечно адрес у них общий. Но при большом нежелании рисовать вектор ветвления, либо, если это ветвление слишком длинное, всегда остается возможность адресовать переход классическим способом, на имя метки.


Рис. 2. Основное окно редактора


    


Рис. 3. Окно программиста


    В целом данная среда программирования является самодостаточной системой. Она содержит в себе компилятор алгоритма, симулятор микроконтроллера и внутрисхемный программатор, обеспечивающий загрузку откомпилированного алгоритма в кристалл. Кроме того, обеспечивается режим мониторной отладки, при котором к откомпилированному коду программы добавляется скрытый код, обеспечивающий вывод всего внутреннего состояния реального микроконтроллера в заданных точках останова в соответствующие окна, как при работе в симуляторе. При работе мониторного отладчика и программатора микроконтроллер непосредственно подключается к параллельному порту LPT несколькими цепями.


Рис. 4. Окно настройки таймеров


    В числе дополнительных возможностей, не связанных непосредственно с графическими технологиями, можно назвать метки со стандартным именем прерывания. Встретив такую метку, компилятор автоматически вставит в соответствующее вектору прерывания место программы код необходимого безусловного перехода. Имя таких меток можно выбрать через соответствующий пункт меню. Реализован также удобный интерфейс настройки таймеров, который избавляет от необходимости помнить назначение каждого бита управляющего регистра и ряд других сервисных возможностей.


Рис. 5. Работа симулятора


    Среда "Algor ithm Builder" предна- значена для работы в операционной системе Windows 95/98.

    На рис. 6 приведен более сложный пример фрагмента программы. Слева - в классическом ассемблере, а справа - полная его копия в среде "Algor ithm Builder".


Рис. 6. Ассемблер: классика и графика


    Конечно, в рамках одной статьи невозможно достаточно подробно описать все особенности работы в графической среде.

    В ближайшее время среда "Algor ithm Builder" будет адаптирована под иные типы микропроцессорных архитектур.

    Переход к использованию такой среды труден психологически. В голове многих проскользнет мысль: "может, ассемблер и не располагает этими возможностями, но я к нему очень привык, мне и с ним хорошо". Это чем-то сродни переходу от командной (DOS) к графической оболочке (Windows). Однако, освоение этого инструмента и последующая работа с ним заметно проще классического ассемблера. Во всяком случае, те, кто его уже используют, пути назад не ищат.

Algorithm Builder fo AVR, Начинаем

http://vrtp.ru/index.php?showtopic=2211&st=0

Качаем и устанавливаем Algorithm Builder fo AVR http://algrom.net/russian.html
Внимательно читаем Manual.pdf

За основу берём ATMega8 http://www.hth.com/filelibrary/PDFFILES/ATmega8.pdf
Далее набираем алгоритм как на рисунке.

ПОМИГАЕМ КА СВЕТОДИОДОМ???

Теперь попорядку:

RESET(жирным) - отсюда идёт начало программы

Блок SP - инициализация стека

#b00000001->DDRD - настраиваем порт PD0 на выход

1->LED - записываем в PORTD единицу, т.е. устанавливаем на
выводе МК 1(вывод 2 для ATMega8)

Paus - вызываем подпрограмму

0->LED - записываем в PORTD ноль, т.е. устанавливаем на
выводе МК 0(вывод 2 для ATMega8)

Paus - опять вызываем подпрограмму

-> - далее стрелкой зацикливаем подпрограмму

Paus - имя подпрограммы

300000->Vremya - записываем в регистры с именем Vremya число 300000

Vremya-- - декремент(т.е. вычитаем из Vremya единицу)

-= - этот блок означает: если Vremya не равно 0, то переходим по стрелке, иначе вниз

RET - выход из подпрограммы

Переключаем с алгоритма на таблицу(или наоборот):
Жмём F12(или соответствующие пункты, или значки на панеле)
Заполняем поля как на рисунке:

Vremya - присваиваем имя регистру(ам)

2 - номер регистра

Int24 - занимаем 3-и регистра под имя Vremya(т.е. будем работать с 3-я регистрами как с одним -> СУПЕР)

Led PORTD.0 - присваиваем имя LED регистру ввода/вывода PORTD.0(т.е. порту PD0)

Далее жмём:
Опции -> Опции проекта, в появившемся окне выбираем кристал ATMega8 и ставим частоту 4000000Гц -> Применить

Программы-> Компилировать. Теперь в папке проекта появится файл с расширением .hex, которым можно прошить микроконтроллер

Присоединённое изображение



Присоединённое изображение


Отлаживаем:
Жмём F9(или соответствующие пункты, или значки на панеле)

Открываем окна:
Открыть -> Working registers -> Table - это окно будет показывать, что происходит в каждом
регистре(вообще изначално во всех 0)

Открыть -> Process time -> #0 - это окно будет показывать время выполнения программы

Открыть -> I/O Registers -> PortD - это окно будет показывать, что происходит на выходе PD0

Отлаживаем

Присоединённое изображение


Симулируем в Proteus:
Собираем схемку..
Мигаем светодиодом

Присоединённое изображение


www.compitech.ru

  1   2   3   4

Похожие:

Algorithm Builder fo avr, Начинаем Графический ассемблер icon Здесь и далее, если не указано иное, под словом ассемблер подразумевается...
Здесь и далее, если не указано иное, под словом ассемблер подразумевается ассемблер для avr – архитектуры, используемой в контроллерах...
Algorithm Builder fo avr, Начинаем Графический ассемблер icon Программирование микроконтроллера avr. Первые шаги
Данные статьи посвящены программированию микроконтроллеров avr фирмы Atmel на языках с и С++. Avr – это, пожалуй, самое распространенное...
Algorithm Builder fo avr, Начинаем Графический ассемблер icon Инструкция по установке сетевых лицензий с els (bls) 18 Установка bls 18
Регистрация продуктов 2010-й, 2009-й и 2007-й серии: CodeGear rad studio, Delphi for Win32, С++ Builder, Delphi и C++ Builder 2
Algorithm Builder fo avr, Начинаем Графический ассемблер icon Регламент начисления баллов инструктаж участников критерии оценки...
Дизайнер работающий в направлении «Графический дизайн» должен обладать пакетом профессиональных знаний и множеством умений. Область,...
Algorithm Builder fo avr, Начинаем Графический ассемблер icon Avr микроконтроллеры: очередной этап на пути развития Кривченко И....
Для тех читателей, которые, возможно, еще не слышали про avr или просто пока присматриваются к этой микроконтроллерной платформе,...
Algorithm Builder fo avr, Начинаем Графический ассемблер icon Написать на avr-ассемблере и отладить в avr studio программу, реализующую...
Произвести сложение двух беззнаковых двоично-десятичных чисел. Байты чисел последовательно вводятся с портов a и B. Байты результата...
Algorithm Builder fo avr, Начинаем Графический ассемблер icon Программа основана на системе дифференциальных уравнений в частных...
Взаимодействие с программой возможно стандартным способом – через графический интерфейс пользователя (gui), либо программированием...
Algorithm Builder fo avr, Начинаем Графический ассемблер icon Контрольные вопросы Темы для сообщений
Структурная организация мк. Память и регистры мк. Ассемблер. Группа команд передачи данных
Algorithm Builder fo avr, Начинаем Графический ассемблер icon 10 практических устройств на avr (А. В. Кравченко, 2008)

Algorithm Builder fo avr, Начинаем Графический ассемблер icon Резюме Огуречников Евгений Владимирович
Разработка хранилищ данных с использованием Oracle Warehouse Builder и Microsoft dts
Algorithm Builder fo avr, Начинаем Графический ассемблер icon Ю. Ревич «Практическое программирование микроконтроллеров atmel avr на языке ассемблера»

Algorithm Builder fo avr, Начинаем Графический ассемблер icon Уважаемые коллеги! Доброе утро. Начинаем заседание итоговой коллегии...
Коновалов А. В: Уважаемые коллеги! Доброе утро. Начинаем заседание итоговой коллегии Министерства юстиции Российской Федерации. Здесь,...
Algorithm Builder fo avr, Начинаем Графический ассемблер icon Avr isp
Гц, 100Гц, 48 кГц, 125кГц, 250кГц, 500кГц, 1MHz, 2MHz, 4MHz и 8МГц частоты sck
Algorithm Builder fo avr, Начинаем Графический ассемблер icon Программа этапного лечения лямблиоза
Если ребенок поступает с острыми проявлениями (энтерит, гастроэнтероколит), то начинаем лечение со второго этапа, минуя первый
Algorithm Builder fo avr, Начинаем Графический ассемблер icon «Охранять природу значит охранять Родину»
Всем вам желаю плодотворной работы, добра, здоровья. Рассаживаемся и начинаем наше занятие
Algorithm Builder fo avr, Начинаем Графический ассемблер icon Методические указания к лабораторным работам со стендом stk500 и мк atmega16
Стенд stk500 представляет собой лабораторный макет с микроконтроллером, памятью программ, памятью данных и разнообразными периферийными...

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск