Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Микропроцессорные системы. Средства разработки программного обеспечения для микроконтроллеров семейства AVR. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение высшего образования
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ
ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
М.А. Сонькин, А.А. Шамин
МИКРОПРОЦЕССОРНЫЕ СИСТЕМЫ
СРЕДСТВА РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
ДЛЯ МИКРОКОНТРОЛЛЕРОВ СЕМЕЙСТВА AVR
Рекомендовано в качестве учебного пособия
Редакционно-издательским советом
Томского политехнического университета
Издательство
Томского политехнического университета
2016
УДК 004.315(075.8) ББК 32.971.32-04я73
C62
Сонькин М.А.
C62 Микропроцессорные системы. Средства разработки про-
граммного обеспечения для микроконтроллеров семейства AV R : учебное пособие / М.А. Сонькин, А.А. Шамин ; Том ск ий политех­нический университет. – Томс к : Изд-во Томс кого политехниче­ского университета, 2016. – 90 с.
ISBN 978-5-4387-0676-2
бенности построения программного обеспечения встраиваемых систем на примере микроконтроллеров семейства AVR . Приведены примеры некоторых программных решений с целью их использования в практической работе по выполнению лабораторных работ, курсового и дипломного проектов. Содержит теоретический и практический материал, достаточный для самостоятельного изучения и приобретения компетенций, в соответствии с ФГОС высшего образования третьего поколения, студентами, магистрантами и аспирантами по направлениям 09.03.01 «Информатика и вычислительная техника», 05.13.11 «Математическое и программное обеспечение вычисли­тельных машин, комплексов и компьютерных сетей», 05.13.01 «Системный
анализ, управление и обработка информации».
В пособии изложены основы использования средств разработки и осо-
УДК 004.315(075.8) ББК 32.971.32-04я73
Рецензенты
Доктор физико-математических наук, профессор
заведующий кафедрами системного анализа и управления
и теоретической кибернетики ТГУ
Ю.Г. Дмитриев
Доктор технических наук, профессор
заведующий кафедрой автоматизированных
систем управления ТУСУРа
А.М. Кориков
ISBN 978-5-4387-0676-2 © ФГАОУ ВО НИ ТПУ, 2016
© Сонькин М.А., Шамин А.А., 2016 © Оформление. Издательство Томского
политехнического университета, 2016
2
3
ОГЛАВЛЕНИЕ
Введение .......................................................................................................... 5
1. Микропроцессорные устройства (МПУ) ............................................. 6
2. Программное обеспечение МПУ ............................................................ 8
3. Назначение средств разработки программного обеспечения
для микроконтроллеров .......................................................................... 9
4. Архитектура микроконтроллеров AVR .............................................. 10
4.1. Выполнение машинных команд ........................................................ 12
4.2. Выполнение команд ветвления и перехода ...................................... 14
4.3. Выполнение команд вызова подпрограмм ....................................... 15
5. Особенности разработки ПО для микроконтроллера ..................... 18
6. Средства разработки программного обеспечения ........................... 19
6.1. Компиляторы семейства GCC ........................................................... 19
6.2. Организация проекта на языках С и С++ ......................................... 19
6.3. Трансляция программы на языках С и С++ ..................................... 22
6.4. Утилита make ...................................................................................... 24
6.4.1. Простейший сборочный скрипт ..............................................................25
6.4.2. Трансляция проекта по частям ................................................................26
6.4.3. Трансляция проекта под различные платформы ...............................28
7. Распределение памяти ........................................................................... 30
7.1. Секции памяти .................................................................................... 33
7.2. Начальная инициализация программы на языках С и С++ ............ 43
7.3. Инициализированные при создании
и не инициализированные при создании переменные .................. 45
7.4. Область видимости переменных ...................................................... 46
7.5. Пересечение областей видимости .................................................... 48
7.6. Модификатор static ............................................................................. 49
7.7. Использование областей видимости ................................................ 51
4
7.8. Модификатор volatile ......................................................................... 51
7.9. Размещение произвольных данных в памяти программ ................ 53
8. Проектирование программы для микроконтроллера .................... 57
8.1. Программирование без использования операционной системы ... 57
8.2. Специализированные операционные системы ......................................57
8.3. Операционные системы общего назначения ................................... 59
9. Архитектура программы для микроконтроллера ........................... 60
9.1. Инициализация ................................................................................... 65
9.2. Основной цикл .................................................................................... 66
9.3. Модуль управления программными потоками ................................ 66
9.4. Обработка прерываний ...................................................................... 68
9.4.1. Обработка прерываний на языках C и С++ .........................................73
9.4.2. Блокировка прерываний .............................................................................74
9.4.3. Приоритетная обработка прерываний ..................................................74
9.4.4. Обработка повторных прерываний ........................................................78
9.5. Драйвера устройств ............................................................................ 81
10. Обмен данными между МПУ ............................................................. 83
10.1. Протокол обмена данными между МПУ........................................ 83
10.2. Алгоритмы обработки пакетов данных .......................................... 86
Список литературы .................................................................................... 89
5
ВВЕДЕНИЕ
Курс «Микропроцессорные системы» предусматривает освоение
студентами современных аппаратных и программных средств разработ-
ки устройств и систем на базе микропроцессорного управления. В настоящем пособии рассмотрены средства разработки и приме-
ры организации программного обеспечения (ПО) для микропроцессор­ных устройств (МПУ) на базе микроконтроллеров на примере семейства AVR. Большая часть приведенных примеров без изменений или с незна­чительными изменениями переносится на уровне исходного кода в мик­роконтроллеры других семейств микроконтроллеров или на персональ-
ный компьютер. Пособие предполагает наличие начального опыта программирова­ния на языках С и С++.
6
1. МИКРОПРОЦЕССОРНЫЕ УСТРОЙСТВА (МПУ)
Микропроцессорное устройство (МПУ) представляет собой
функционально и конструктивно законченное изделие, состоящее из не­скольких микросхем, в состав которых входит микропроцессор; оно предназначено для выполнения определенного набора функций: полу-
чение, обработка, передача, преобразование информации и управление. Часто МПУ содержит в своем составе либо средства для передачи
данных по каналам связи, либо интерфейсы для подключения таких средств (например, модемов, оптоволоконных линий, спутниковых тер­миналов и проч.). Это позволяет включать МПУ в состав распределен- ной микропроцессорной системы (РМПС), в качестве одного из ее
элементов. С точки зрения возможности включения МПУ в РМПС можно выделить три возможных варианта:
полностью автономные МПУ. Такие МПУ не имеют в своем
составе средств для передачи данных по каналам связи и интерфейсов
для подключения таких средств;
автономные МПУ с возможностью включения их в состав
РМПС. Такие МПУ являются функционально законченными устрой-
ствами и могут работать как автономно (вне состава РМПС), так и пере­давать данные по каналам связи. Отличительная особенность таких МПУ – наличие средств для передачи данных по каналам связи либо
интерфейсы для подключения таких средств;
МПУ, предназначенные исключительно для работы в со-
ставе РМПС. Такие МПУ отдельно от РМПС не функционируют.
Разумеется, приведенная классификация является достаточно
условной. Однако она позволяет оценить назначение и возможности то-
го или иного устройства относительно включения его в состав РМПС. Рассмотрим в качестве примера МПУ, измеряющее температуру
окружающей среды (интеллектуальный термометр), построенное по
каждому из указанных вариантов. В первом варианте (полностью автономное МПУ) в состав тако-
го интеллектуального термометра войдут датчик температуры, микро­контроллер, средства индикации и управления. Такое устройство явля­ется полностью законченным и его невозможно включить в состав
РМПС.
Второй вариант (автономное МПУ с возможностью включения
их в состав РМПС) отличается от первого наличием аппаратуры пере-
дачи данных или какого-либо интерфейса для подключения такой аппа-
ратуры. Например, это может быть интерфейс RS232, USB или встроен-
7
ный Wi-Fi-модуль. Разумеется, что помимо подключения аппаратуры
передачи данных необходимо обеспечить также ее программную под­держку. Такое устройство может быть использовано как автономно (полностью аналогично первому варианту), так и включено в состав
РМПС, например, в качестве удаленного датчика температуры.
Третий вариант (МПУ, предназначенное исключительно для
работы в составе РМПС) отличается от второго варианта отсутствием
органов управления и индикации. Иными словами, в его состав входит только датчик температуры, микроконтроллер и аппаратура передачи
данных или какой-либо интерфейс для подключения такой аппаратуры.
Функционирование устройства, построенного по третьему варианту, не-
возможно вне РМПС.
8
2. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ МПУ
Какое бы ни было МПУ, ему необходимо программное обеспече-
ние. На современном этапе развития микропроцессорной техники, чаще всего разработка программного обеспечения занимает многократно больше времени, чем создание аппаратной части микропроцессорного устройства. Это объясняется многими причинами, главная из которых – возможность практически бесконечно совершенствовать программу,
не изменяя аппаратной части устройства. Чтобы сократить время на разработку ПО, необходимо:
однозначно поставить задачу для проектируемого ПО. Это зна-
чит ‒ составить техническое задание (ТЗ) на программное обеспечение, в котором описаны все функции ПО и поведение устройства в различ­ных ситуациях. Чем подробнее и точнее составлено ТЗ, тем меньше во-
просов возникает при реализации ПО;
хорошо представлять возможности современных средств разра-
ботки программного обеспечения. Неясное представление о возможно­стях средств разработки может привести к неверному их выбору или
использованию не по назначению;
знать архитектурные особенности конкретного микроконтрол-
лера, для которого разрабатывается ПО. Например, очень важно учиты-
вать, какая у микроконтроллера архитектура – гарвардская или фон-
неймоновская; принимать во внимание ограничения быстродействия, объема памяти программ и памяти данных; учитывать, какие функции можно реализовать программно, а какие – с помощью периферийных
устройств, встроенных в микроконтроллер, и т. п.;
разработать архитектуру построения ПО в зависимости от типа
микроконтроллера и поставленных задач. Неверно спроектированная архитектура вызывает множество трудно разрешимых проблем, поэтому необходимо ясно представлять преимущества и недостатки выбранной
или разработанной программной архитектуры.
9
3. НАЗНАЧЕНИЕ СРЕДСТВ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ МИКРОКОНТРОЛЛЕРОВ
Средства разработки программного обеспечения условно можно подразделить на несколько видов по функциональному назначению. Средства преобразования исходного кода программ в исполняе-
мый файл. К ним относятся компиляторы языков высокого уровня (ЯВУ); ассемблеры; утилиты преобразования форматов файлов; про­граммы автоматизации процесса сборки программного кода. Самыми популярными языками высокого уровня для микроконтроллеров семей-
ства AVR и им подобных являются языки С и С++. Средства отладки, к которым относятся специальные программы,
позволяющие осуществлять пошаговый запуск программ, мониторинг
значений переменных, организацию точек останова и т. п. Сервисные утилиты, являющиеся специальными программами,
позволяющими, например, записывать исполняемые файлы в ПЗУ мик­роконтроллеров, программировать биты глобальной начальной конфи-
гурации микроконтроллеров (FUSE-биты) и т. п. Существует также несколько интегрированных сред разработки,
позволяющих объединять указанные средства для их совместного ис­пользования. В настоящем издании такие среды рассматриваться не бу­дут, но с такими средами, как AVR Studio, Kdevelop и другими, можно
ознакомиться в соответствующей литературе и сети Интернет.
10
4. АРХИТЕКТУРА МИКРОКОНТРОЛЛЕРОВ AVR
Микроконтроллеры с архитектурой AVR (рис. 1) выпускаются фирмой Atmel. В настоящем пособии приводится ознакомительное описание ар-
хитектуры. Более подробное описание архитектуры и системы команд микроконтроллеров семейства AVR можно получить в специальной ли-
тературе, например в [1, 2].
Рис. 1. Общая архитектура микроконтроллеров семейства AVR
Микроконтроллеры AVR имеют расширенную гарвардскую архи-
тектуру. Это означает, что программа и данные находятся в разных ад­ресных пространствах. Память программ (ПЗУ) доступна только для чтения специальными машинными командами. Память данных (ОЗУ) доступна как для чтения, так и для записи. Абсолютное большинство
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]