Материал: 6798

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Ведение - 4

27

Рисунок 5 Разархивирование файлов для работы с МК-Миландр.

После этого в папке \ARM\Pack\Keil появятся файлы описания МК для среды Keil: MDR1986BExx\1.3.0\

Config\MDR32F9Qx_config.h -

Example_Projects\

- демо-проект для различных отладочных плат

Examples\

примеры работы с различными устройствами ввода-вывода МК.

IDE\ файлы необходимые для работы среды с МК-Миландр.

Libraries\

библиотеки CMSIS и ввода-вывода (см. Раздел 1.2 во второй части

пособия).

Теперь можно создавать новый проект или открывать готовый для МК-Миландр.

4.2.2.3Настройка IAR

После установки среды разработки IAR её также нужно адаптировать для программирования микроконтроллеров фирмы "Миландр". Для этого необходимо по адресу: http://forum.milandr.ru/viewtopic.php/f=33&t=285 скачать архив iar_arm.rar. После распаковки архива в корневой папке IAR следует разместить:

/arm/src/flashloadert/Milandr - исходники загрузчика флеш; /arm/inc/Milandr - заголовочные файлы для 1986ВЕ9х; /examples/Milandr/coremark_iar - пример программы CoreMark; /config/linker/Milandr — файл настройки линкера;

/config/flashloader/Milandr - скомпилированный загрузчик флеш-памяти с настройками; /config/devices/Milandr - описание микроконтроллера (МК) для среды IAR.

Теперь среда разработки IAR готовa для создания первой программы для микроконтроллеров производства "Миландр".

4.3Меры безопасности при работе с бескорпусной отладочной платой

Приступая к работе с открытой печатной платой, где микросхемы и проводники, расположенные на печатной плате не защищены корпусом (open frame), нужно иметь ввиду

ТУСУР, "Миландр"

Каф. ЭСАУ

Недяк С.П., Шаропин Ю.Б

Февраль 2017 г.

Ведение - 4

28

опасность выхода из строя микросхем от статического электричества (ESD), которое почти всегда накапливается на теле человека.

Конечно ESDзащита это целая наука15 мы здесь ограничимся рядом практических рекомендаций, которые позволят безопасно эксплуатировать открытую электронику:

1.Старайтесь на лабораторные занятия одеваться «безопасно» - в хлопок.

2.Перед началом непосредственной работы с отладочной платой подойдите к батареи отопления и прикоснитесь к ней рукой для снятия статического заряда с Вашего тела.

Также можно снимать заряд через заземленное обрудование, например осциллограф, прикоснувшись к «земленой» клемме рукой.

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

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

Вопрос студентам: откуда этот потенциал на корпусах современного оборудования?

ПРЕЖДЕ ЧЕМ РАБОТАТЬ С ОСЦИЛЛОГРАФОМ И ОТЛАДОЧНОЙ ПЛАТОЙ НУЖНО УБИДИТЬСЯ ЧТО ОБА УСТРОЙСТВА ПОДКЛЮЧЕНЫ К ЗЕМЛЕ! И ПРОВЕРИТЬ ЗАЗЕМЛЕНИЕ ИНСТРУМЕНТАЛЬНОГО КОМПЬЮТЕРА!

4.4Контрольные вопросы

1.Дайте определение понятию IDE.

2.Что такое компилятор и чем он отличается от транслятора?

3.Какие функции в IDE выполняет линковщик?

4.Что такое электрическая структурная схема.

5.Дорисуйте процесс разработки ПО (рис. 4) с учетом итеративности связей в этом процессе.

6.Откуда появляется потенциал переменного напряжения амплитудой 110В?

7.Какие ошибки возникают в процессе создания ПО...

8.В таблицы сравнения 4 мы пропустили некоторые очень важные вещи, какие?

15 Дмитрий Трегубов. Новые российские стандарты в области ESD-защиты // Компоненты и технологии. №4, 2010 – c. 1214. [Электронный ресурс]: http://www.kit-e.ru/assets/files/pdf/2010_04_12.pdf

ТУСУР, "Миландр"

Каф. ЭСАУ

Недяк С.П., Шаропин Ю.Б

Февраль 2017 г.

Часть I. Процессор Cortex-M3. Программирование на ассемблере -

29

Часть I. Процессор Cortex-M3. Программирование на ассемблере

Первая часть посвящена изучению процессора Cortex-M3, его системы команд, примерам использования языка ассемблер, способам исследования кода с помощью встроенного в IDE дизассемблера, а также приемам написания эффективных (быстродействующих) программ.

1Когда используется ассемблер

Ассемблер – самый древний язык программирования. Первые программы для первых цифровых вычислительных машин писались в машинных кодах. Вместо двоичной системы счисления чаще пользуются записью программы в шестнадцатиричной системе счисления, что в прочем кардинально существа дела это не меняет. Всё равно написание программы в машинных кодах было очень трудоёмким занятием, поэтому машинный код решили заменить на представление инструкций мнемокомандами, несущими какую-то смысловую нагрузку. Имя изобретателя ассемблера, как и имя изобретателя колеса, до сих пор неизвестно, так как это изобретение было исторической необходимостью и наверняка появилось одновременно в разных институтах и лабораториях, как и колесо в разных уголках планеты.

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

Чем же объясняется такая невероятная живучесть самого древнего языка программирования? Только одним – его непревзойдённой эффективностью по сравнению с другими языками, когда речь идёт о скорости работы программы и компактности её машинного кода. Главный недостаток ассемблера – это по-прежнему достаточно высокая трудоёмкость написания программ и относительно длительное время овладения навыками программирования на этом языке, точнее языках. Набор или система команд для одного ядра могут существенно отличается от другого набора, например, система команд семейства МК MCS51 очень сильно отличается от системы команд AVR , хотя функционально они решают одинаковые задачи.

Канули в Лету времена, когда все программы для микроконтроллеров целиком писались на ассемблере. Сегодня большая часть исходного кода пишется на Си/Си++ и только ключевые, критичные к скорости, участки кода на ассемблере. Видимо, не лишне заметить, что компиляторы с языков верхнего уровня пишутся, как правило, грамотными специалистами и машинный код может получаться вполне приемлемым. Ассемблер лишь предоставляет возможность написать эффективный код, но не обязательно, что эта возможность будет в полной мере использована. Очень многое зависит от уровня квалификации программиста, от степени его знакомства с архитектурой данного микроконтроллера, от его творческих способностей.

После предварительного знакомства с системой команд начинать изучение программирования на ассемблере лучше всего с изучения опыта (приемов программирования) разработчиков компиляторов языка Си/Си++. Используя дизассемблер, можно проследить общую логику построения программы. Такой подход полезен ещё и для овладения навыками эффективного программирования на самом языке Си. Очень часто, с виду элегантная программа на Си, компилируется в громоздкий и нерациональный машинный код. Зная особенности конкретного компилятора Си, можно избегать этих недостатков и создавать вполне эффективный код, даже не используя ассемблер. Как показывает опыт, время, потраченное на изучение ассемблера именно в таком ключе, потом с

ТУСУР, "Миландр"

Каф. ЭСАУ

Недяк С.П., Шаропин Ю.Б

Февраль 2017 г.

Часть I. Процессор Cortex-M3. Программирование на ассемблере - 1

30

лихвой компенсируется сокращением времени отладки и сопровождения программ.

И последний немаловажный аргумент в пользу изучения ассемблера. Компиляторы пишут хотя и грамотные, но всё-таки люди. А людям свойственно ошибаться. Хотя и редко, но и здесь ошибки иногда случаются. Знание ассемблера даёт инструмент для исправления подобных ошибок, в противном случае программист оказывается в такой ситуации почти безоружным.

Есть и такое высказывание одного из авторов учебника по ассемблеру [6]: «…ассемблер может понадобиться для оптимизации кода программ, написания драйверов, трансляторов, программирования некоторых внешних устройств и т.д. Для себя я, однако, имею другой ответ: программирование на ассемблере даёт ощущение власти над компьютером, а жажда власти – один из сильнейших инстинктов человека»

Уж не знаем, насколько можно разделить это эмоциональное высказывание, но то, что от степени знания компьютера (микроконтроллера), от умения его программировать будет зависеть здоровье и жизнь людей, целостность спутников и пр. – это совершенно точно, проверено экспериментально [5.].

Диплом выпускника ТУСУРа даёт право заниматься этой чрезвычайно трудной, ответственной и интересной работой. Поэтому внутренне нужно настроиться на упорную учёбу и впоследствии на тщательную проверку полученных знаний. МПСАУ – сложный курс.

Итак, поехали …

ТУСУР, "Миландр"

Каф. ЭСАУ

Недяк С.П., Шаропин Ю.Б

Февраль 2017 г.

Часть I. Процессор Cortex-M3. Программирование на ассемблере - 2

31

2Создание и компиляция первого проекта в среде IAR. Написание простейшего модуля на языке Assembler. Лабораторная работа № 1

Целью данной работы является ознакомление с одной из популярнейших сред разработки программ для микроконтроллеров IAR16 Embedded Workbench IDE.

2.1Создание нового проекта

Создадим новый проект Project=>Create New Project. Выбираем шаблон проекта(ProjectTemplates): C-main

Рисунок 1 Создание нового проекта.

Сохранив проект под каким-либо именем, далее в свойствах проекта выбираем модель микроконтроллера Milandr 1986BE9x (Рис 1.2). Для этого правой кнопкой мыши щелкаем по нашему проекту, выбираем Options…и в GeneralOption

Рисунок 2 Выбор свойств проекта

на закладке Target (Рис 1.3) выберем модель микроконтроллера Milandr 1986BE9x

16IAR Systems (www.iar.com) - старейшая компания, основанная в 1983 г. занимающаяся средствами разработки ПО для встраиваемых вычислительных систем.

ТУСУР, "Миландр"

Каф. ЭСАУ

Недяк С.П., Шаропин Ю.Б

Февраль 2017 г.

Источник: https://studfile.net/preview/16438538/