Главная страница
qrcode

Рубанов В.Г., Кижук А.С., Бушуев Д.А., Кариков Е.Б., Добринский Е.П. Лабораторный практикум по микроконтроллерам семейства CO... Учебное пособие по проведению лабораторных работ на отладочных платах фирмы Миландр для студентов направлений бакалавриата 27. 03. 04 Управление в технических системах


НазваниеУчебное пособие по проведению лабораторных работ на отладочных платах фирмы Миландр для студентов направлений бакалавриата 27. 03. 04 Управление в технических системах
АнкорРубанов В.Г., Кижук А.С., Бушуев Д.А., Кариков Е.Б., Добринский Е.П. Лабораторный практикум по микроконтроллерам семейства CO.
Дата07.06.2019
Размер1.72 Mb.
Формат файлаpdf
Имя файлаRubanov_V_G__Kizhuk_A_S__Bushuev_D_A__Karikov_E_B__Dobrinskiy_E_
оригинальный pdf просмотр
ТипУчебное пособие
#52977
страница1 из 5
Каталог
  1   2   3   4   5

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Белгородский государственный технологический университет им. В. Г. Шухова
Кафедра технической кибернетики
Утверждено научно-методическим советом университета
ЛАБОРАТОРНЫЙ ПРАКТИКУМ ПО
МИКРОКОНТРОЛЛЕРАМ СЕМЕЙСТВА
CORTEX-M3
Учебное пособие по проведению лабораторных работ на отладочных платах фирмы Миландр для студентов направлений бакалавриата
27.03.04 – «Управление в технических системах», 15.03.04 –
«Автоматизация технологических процессов и производств»,
15.03.06 – «Мехатроника и робототехника»
Белгород
2016

2
УДК 004.3 (07)
ББК 32.81 я7
М38
Рецензенты:
Составители: д-р техн. наук, проф. В.Г. Рубанов канд. техн. наук, проф. А.С. Кижук ст. преп. Д.А. Бушуев зав. лаб. Е.Б. Кариков инж. Е.П. Добринский
М38 Лабораторный практикум по микроконтроллерам семейства
Cortex-M:
Методическое пособие по проведению лабораторных работ на отладочных платах фирмы Миландр
/сост.: В.Г. Рубанов, А.С. Кижук, Д.А. Бушуев, Е.Б. Кариков,
Е.П. Добринский. – Белгород: Изд-во БГТУ, 2016. – с.
Учебное пособие содержит лабораторные работы для практического изучения микроконтроллеров с архитектурой Cortex-M3 на отладочных платах фирмы Миландр.
Содержатся теоретические сведения, рекомендации к выполнению, контрольные вопросы для подготовки к допуску и защите, порядок выполнения и структура отчета по каждой лабораторной работе.
Учебное пособие предназначено для студентов третьего курса направлений бакалавриата 27.03.04 – «Управление в технических системах», 15.03.04 –
«Автоматизация технологических процессов и производств», 15.03.06 – «Мехатроника и робототехника» по дисциплинам изучающих микропроцессорную технику.
Издание публикуется в авторской редакции.
УДК 004.3 (07)
ББК 32.81 я7
© Белгородский государственный технологический университет
(БГТУ) им. В.Г. Шухова, 2016

3
Содержание

4
Введение
Современный микроконтроллер – это размещенная на кристалле сложная цифровая система, в состав которой входит 8- 16- или 32разрядный процессор, внутренняя память программ, широкий набор интерфейсных и периферийных устройств, портов ввода-вывода, таймеров, аналого-цифровых преобразователей и др.
Эти однокристальные системы ориентированы, в первую очередь, на выполнение функций управления различными устройствами и процессами, почему и названы микроконтроллерами. Сфера их применения весьма широка: от современной бытовой техники до сложнейших систем управления технологическими процессами и робототехническими комплексами. За последние пять лет выпуск микроконтроллеров в мире увеличился в три раза и приблизился к уровню в 2 миллиарда штук в год. Вместе с тем в РФ в последнее время началась широкая компания по импортозамещению, что особенно актуально в высокотехнологичных отраслях промышленности и производства. Поэтому данный курс ориентирован на изучение микроконтроллеров с отладочными платами, именно отечественного производства, группы компаний
«Миландр», созданных на базе организованного в 1995 г. в Зеленограде ЗАО «ПКК
Миландр».
Компания специализируется на выпуске микроконтроллеров и микропроцессоров (8-, 16- и 32-разрядных), микросхем памяти (ОЗУ и ПЗУ), интерфейсных микросхем, радиочастотных микросхем, контроллеров питания, АЦП, ЦАП, электронных модулей, радиоаппаратуры и т.д.
В данном учебном пособии рассматривается ряд приложений для микроконтроллера серии 1986ВЕ9х архитектуры Cortex-M3.

5
Лабораторная работа №1
Изучение архитектуры отладочной платы микроконтроллера
1986ВЕ93У
Цель работы
1.
Изучение принципиальной схемы связи микроконтроллера с элементами периферии отладочной платы;
2.
Изучение связи портов с периферией интегральных микросхем отладочной платы;
3.
Изучение назначения и характеристик интерфейсов микроконтроллера 1986ВЕ93У фирмы Миландр.
План работы
1.
Ознакомление с основными характеристиками микроконтроллера
1986ВЕ93У.
2.
Ознакомление с техническим описанием и архитектурой отладочной платы для микроконтроллера 1986ВЕ93У.
3.
Изучение основных элементов периферии платы, их функций и характеристик.
Основные теоретические сведения и содержание работы
1.
Общие сведения об отладочной плате
Демонстрационно-отладочная плата предназначена для:

демонстрации функционирования и оценки производительности микроконтроллера 1986ВЕ93У и его основных периферийных модулей;

демонстрации функционирования интерфейсных микросхем CAN и COM (RS-232) интерфейсов;

отладки собственных проектов с применением, установленных на плате блоков;

программирования памяти программ микроконтроллеров
1986ВЕ93У.
Для программирования памяти программ микроконтроллеров
1986ВЕ93У применяется внешний внутрисхемный программатор
ULINK2 (Keil) или JEM-ARM-V2(Phyton).
Питание платы осуществляется от адаптера постоянного тока напряжением 5 вольт или от шины USB.

6
2.
Техническое описание отладочной платы
Основные характеристики микроконтроллера 1986ВЕ93У
Рис. 1.1. Микроконтроллер 1986ВЕ93У в металлическом корпусе
H16.48-1B
Характеристики микроконтроллера 1986ВЕ93У (рис. 1.1):
Ядро:

ARM 32-битное RISC-ядро Cortex™-M3 (рис. 1.2) ревизии 2.0, тактовая частота до 80 МГц, производительность 1.25 DMIPS/МГц (Dhrystone 2.1) при нулевой задержке памяти.
Память:

встроенная энергонезависимая Flash-память программ размером 128 Кбайт;

встроенное ОЗУ размером 32 Кбайт.
Питание:

внешнее питания 2,2 ÷ 3,6 В;

встроенный регулируемый стабилизатор напряжения на 1,8 В для питания ядра.
Аналоговые модули:

два 12-разрядных АЦП, 4 канала;

температурный датчик;

двухканальный 12-разрядный ЦАП;

встроенный компаратор, 2 входа.

7
Периферия:

контроллер USB интерфейса с функциями работы
Device и Host;

контроллеры интерфейсов: UART – 2шт., SPI – 1шт.,
CAN - 2шт.;

три 16-разрядных таймер-счетчика с функциями
ШИМ и регистрации событий;

30 пользовательских линий ввода-вывода.
Рис. 1.2. Структурная блок-схема микроконтроллера 1986ВЕ93У
Состав отладочной платы
Внешний вид платы представлен на рис 1.3.

8
Рис. 1.3. Внешний вид отладочной платы
Компоненты, установленные на отладочной плате, показаны на рис.4.
Рис. 1.4. Компоненты отладочной платы
№ на
рис. 4
Описание компонентов платы
1.
Контактная площадка для микроконтроллера 1986ВЕ93У.
Микроконтроллер должен быть установлен в спутникдержатель
2.
Разъем Х25 портов A,E,F микроконтроллера
3.
Разъем для карты памяти microSD
4.
Переключатели выбора режима загрузки

9
5.
Разъем USB-B
6.
Подстроечный резистор 1кОм на 2-м канале АЦП
7.
Разъем BNC внешнего сигнала на 2-м канале АЦП
8.
Разъем BNC внешнего сигнала на 1-м входе компаратора
9.
Разъем BNC выхода ЦАП1
10.
Разъем Audio 3.5мм выхода ЦАП1 через звуковой усилитель MC34119L (установлен на оборотной стороне)
11.
ЖК индикатор 128х64
12.
Кнопка RESET
13.
Кнопки UP, DOWN, LEFT, RIGHT, SELECT
14.
Разъем питания 5В
15.
Фильтр питания
16.
Разъем RS-232
17.
Разъем CAN
18.
Приемо-передатчик RS-232 ADM3232EARN (установлен на оборотной стороне)
19.
Приемо-передатчик CAN ATA6660 (установлен на оборотной стороне)
20.
Набор светодиодов на порту F
21.
Разъемы отладки JTAG-А и JTAG-B
22.
Разъем Х24 портов B,C,D микроконтроллера
Подключение портов микроконтроллера к периферийным элементам платы:

Набор светодиодов (См. №20, рис. 1.4):
Порт МК
№ вывода МК
Светодиоды
PF0
44
Светодиод VD2
PF1
45
Светодиод VD3

Кнопки UP, DOWN, LEFT, RIGHT, SELECT (См. №13, рис.4):
Порт МК
№ вывода МК
Кнопки
PD0
17
Кнопка UP
PD1
18
Кнопка DOWN
PE3
10
Кнопка LEFT
PE6
6
Кнопка RIGHT
PC0
23
Кнопка SELECT

ЖК индикатор 128х64 (См. №11, рис.4):
Порт МК
№ вывода МК
Вывод индикатора (№ вывода)
PA0
41
Вывод DB0 (4)
PA1
40
Вывод DB1 (5)

10
PA2
39
Вывод DB2 (6)
PA3
38
Вывод DB3 (7)
PA4
37
Вывод DB4 (8)
PA5
36
Вывод DB5 (9)
PA6
35
Вывод DB6 (10)
PA7
34
Вывод DB7 (11)
PF0
44
Вывод E1 (12)
PF1
45
Вывод E2 (13)
PF2
46
Вывод RES (14)
PF3
47
Вывод R/W (15)
PF4
48
Вывод A0 (16)
PD3
20
Вывод E (17)

Разъем для карты памяти microSD (См. №3, рис. 1.4):
Порт МК
№ вывода МК
Вывод microSD (№ вывода)
PF0
44
Вывод CMD (3)
PF1
45
Вывод CLK (5)
PF2
46
Вывод CD/DAT3 (2)
PF3
47
Вывод DAT0 (7)

Разъем BNC внешнего сигнала на 2-м канале АЦП (См. №7, рис. 1.4):
Порт МК
№ вывода МК
PD2
19

Разъем BNC внешнего сигнала на 1-м входе компаратора (См. №8, рис. 1.4):
Порт МК
№ вывода МК
PE2
11

Разъем BNC выхода ЦАП1 (См. №9, рис. 1.4):
Порт МК
№ вывода МК
PE0
14

Разъем Audio 3.5мм выхода ЦАП1 через звуковой усилитель
MC34119L (См. №10, рис. 1.4):
Порт МК
№ вывода МК
PE0
14

Разъем RS-232С через приемо-передатчик RS-232 ADM3232EARN
(См. №16, 18, рис. 1.4):

11
Порт МК
№ вывода МК
Вывод ADM3232EARN (№
вывода)
PB5
18
Вывод TD1 (11)
PB6
19
Вывод RQ1 (12)
№ контакта
разъема RS-
232С
Вывод ADM3232EARN (№
вывода)
2(TXD)
Вывод RD1 (13)
3(RXD)
Вывод TQ1 (14)

Разъем CAN через приемо-передатчик CAN ATA6660 (См. №17,
19, рис. 1.4):
Порт МК
№ вывода МК
Вывод ADM3232EARN (№
вывода)
PA6
5
Вывод TXD (1)
PA7
6
Вывод RXD (4)
№ контакта
разъема CAN
Вывод ATA6660 (№ вывода)
2(CANL)
Вывод CANL (6)
7(CANH)
Вывод CANH (7)

Разъем USB-B (См. №5 рис. 1.4):
Порт МК
№ вывода МК
№ контакта разъема USB-B
DP
2 3(D+)
DN
3 2(D-)
3.
Технические описание периферийных устройств
- ЖК индикатор 128х64
ЖК индикатор имеет 20 контактный разъем для подключения.
Таблица обозначения контактов:
Вывод Обозначение
Назначение
1
Ucc
Питание цифровой части модуля
2
GND
Общий вывод (0 В, земля)
3
Uo
Вход питания ЖК-панели
4-11
DB0—DB7
Шина данных
12
E1
Выбор кристалла 1
13
E2
Выбор кристалла 2

12
14
RES
Сброс (начальная установка)
15
R/W
Выбор: Чтение/Запись
16
A0
Выбор: Команда / Данные
17
E
Стробирование данных
18
Uee
Выход DC-DC преобразователя
19
A
+ питания подсветки
20
K
- питания подсветки
Некоторые особенности подключения:
1.
Цифровая часть, ЖК-панель и подсветка запитываются отдельно друг от друга.
2.
Вход питания ЖК-панели (3) необходимо соединить с выходом
DC-DC преобразователя (18) через потенциометр для возможности настройки контраста. Либо через резистор

4.7 КОм.
3.
Внутри ЖК-панели находятся два контроллера KS-0108.
Поскольку размер матрицы 128х64, то каждый контроллер отвечает за свою половину экрана и активизируется соответствующим пином E1 и
E2. Необходимо учитывать, что запись или чтение сразу в/из обоих контроллеров не допускается!
Память:
1.
Модуль содержит ОЗУ для хранения данных, выводимых на ЖКИ, размером 64х64х2 бит (по 64х64 бит на каждый кристалл). Для выбора нужного кристалла используются выводы E1,E2.
2.
ОЗУ разбито на 8 страниц размером по 64х8 бит каждая. Каждой светящейся точке на ЖКИ соответствует логическая «1» в ячейке ОЗУ модуля.
Контроллер дисплея понимает 7 команд:
1.
Включение / выключение дисплея вне зависимости от данных в
ОЗУ и внутреннего состояния;
2.
Установка номера строки ОЗУ, которая будет отображаться в верхней строке дисплея;
3.
Установка номера страницы ОЗУ;
4.
Установка адреса ОЗУ для последующих обращений;
5.
Чтение статуса состояния;
6.
Запись данных;

13 7.
Чтение данных.
Приемо-передатчик RS-232 ADM3232EARN
Принципиальная схема приемо-передатчика приведена на рис. 1.5.
Рис. 1.5. Принципиальная схема приемо-передатчика
Характеристики ADM3232EARNZ:
Производитель
Analog Devices Inc
Тип
Transceiver
Количество приемников/передатчиков
2/2
Интерфейс
RS232
Напряжение питания
3 V 5.5 V
Приемо-передатчик CAN ATA6660
Структурная схема приемо-передатчика приведена на рис. 6.

14
Рис.1.6. Структурная схема приемо-передатчика
Характеристики ATA6660:

Напряжение питания 5 V.

Максимальная высокоскоростная передача данных до 1 Мбод.

Управляемая скорость нарастания фронтов.

Дежурный режим.

Вход TXD совместим с 3.3В логикой.

Защита от короткого замыкания.

Защита от превышения температуры.

Защита линий от перенапряжений от -40 В до +40 В.

Высокоскоростной дифференциальный приемник с широким допустимым диапазоном синфазного сигнала (-10 В… +10 В) для высокой электромагнитной устойчивости (EMI).

Полностью управляемые линии шины CANH и CANL для минимизации электромагнитных излучений (EME).

Высокий уровень защиты от электростатических разрядов
(ESD) на выводах CANH, CANL: 8 кВ (модель человеческого тела HBM), 300 В (машинная модель MM).
Примечание: вся необходимая документация об отладочной плате и периферийных устройствах выдается в электронном виде.

15
Порядок выполнения лабораторной работы
1.
Подготовка и допуск к лабораторной работе.
2.
Освоение теории по указанной в методическом пособии литературе, до начала лабораторной работы.
3.
Запись в тетрадь вопросов по теории.
4.
Обсуждение непонятных вопросов с преподавателем.
5.
Освоение материала из спецификации (документации) на МК.
6.
Зарисовка структурных-схем изучаемых блоков.
7.
Запись в тетрадь вопросов по документации.
Содержание отчета
1. Описание платы по структурной схеме, составленной из имеющейся принципиальной схемы.
2. Описание периферийных элементов отладочной платы с пояснением функций каждого из них.
3. Описать назначение и функции разъемов и переключателей платы.
4. Выводы.
Контрольные вопросы на защиту
1. Устройство и характеристики микроконтроллера 1986ВЕ93У, порты ввода/вывода.
2. Назначение разъёмов на плате.
3. Интерфейсы микроконтроллера 1986ВЕ93У, характеристики, отличия.
3. Основные элементы периферии, их характеристики и назначение.
4. Принципиальная схема платы, назначение элементов их характеристики

16
Лабораторная работа №2
Создание проекта для работы с МК 1986ВЕ93У в среде Keil MDK
Цель работы
Ознакомиться с настройкой проекта в среде разработки программ
Keil MDK
Основные положения
Программирование микроконтроллеров осуществляется с помощью специализированных пакетов программ, называемых средами разработки. Одной из таких сред разработки является Keil
MDK. Для начала работы необходимо создать проект, который будет содержать код программы для микроконтроллера.
Процедура создания проекта состоит в выполнении следующих действий. Открываем вкладку "Project" и выбираем "New uVision
Project". В появившемся окне выбираем микроконтроллер и нажимаем "ОК" (рис. 2.1).
Рис. 2.1. Выбор микроконтроллера в среде Keil MDK
После появится окно, в котором выбираются нужные нам библиотеки для работы с отладочной платой (рис. 2.2). Нам понадобятся библиотеки для работы с портами и для тактирования этих портов. В списке "Drivers" следует поставить галочки на "PORT"

17 и "RST_CLK", а в списке "Device" поставить галочку на "Startup_MDR1986BE9x" и нажать "OK".
Рис. 2.2. Выбор библиотек в среде Keil MDK
Заходим во вкладку "File" и создаем новый файл выбрав "New".
Сохраняем этот файл как "main.c" и добавляем его в проект.
Следующим шагом будет настройка и подключение отладочной платы, которая описана в лабораторной работе №1.
Написание программы для мигания светодиода.
При подключении светодиода к микроконтроллеру возможны два следующих случая:
1.
светодиод подключен катодом к микроконтроллеру (рис.2.3);
2.
светодиод подключен анодом к микроконтроллеру (рис.2.4).
Рассмотрим первый вариант:
Рис. 2.3. Схема подключения светодиода с общим анодом
Для того, чтобы светодиод начал излучать свет, необходимо создать разность потенциалов между анодом и катодом. Анод подключен к положительному выводу источника питания (VCC).
Таким образом, когда PF0 сбрасывается в «0», на нем образуется нулевой потенциал (GND) и через светодиод начинает протекать ток.
Если вывод PF0 = 1 (VCC), то разности потенциалов не будет и

18 светодиод не излучает свет.
Рассмотрим второй вариант:
Рис. 2.4. Схема подключения светодиода с общим катодом
Катод подключен к отрицательному выводу источника питания
(GND). При сравнении с предыдущей схемой становится ясно, что когда PF0 сбрасывается в «0» – светодиод не будет излучать свет, а когда PF0 = 1 светодиод будет излучать свет.
Подключаем заголовочные файлы "MDR32Fx.h",
"MDR32F9Qx_config.h","MDR32F9Qx_port.h", "MDR32F9Qx_rst_clk.h"
(рис. 2.3).
Рис. 2.5. Подключаем заголовочных файлов в среде Keil MDK
Открываем электрическую схему отладочной платы (приложение
№1) и определяем к какому порту подсоединен светодиод (рис. 2.4).

19
Рис. 2.6. Подключение светодиодом к портам МК на отладочной плате
На электрической схем отладочной платы можем увидеть, что 2 светодиода подключены к выходам PF0 и PF1. Следовательно нам нужно настроить порт "F". Для этого необходимо написать процедуру, с помощью которой произведем настройку и тактирование порта. void init_PORTF(void)
{
PORT_InitTypeDef LED; //Создаем идентификатор для порта F
RST_CLK_PCLKcmd(RST_CLK_PCLK_PORTF,
ENABLE);
//Включаем тактирование порта F
LED.PORT_SPEED = PORT_SPEED_MAXFAST; //Настройка скорости порта
LED.PORT_FUNC = PORT_FUNC_PORT; //Режим работы как порт
LED.PORT_MODE = PORT_MODE_DIGITAL; //Режим работы цифровой
LED.PORT_OE = PORT_OE_OUT; //Настраиваем порт на выход
LED.PORT_Pin = PORT_Pin_0; //Выбор нулевого пина
LED.PORT_PULL_DOWN
=
PORT_PULL_DOWN_OFF;
//подтяжка порта к земле выключена
LED.PORT_PULL_UP = PORT_PULL_UP_OFF; //Подтяжка порта к питанию выключена
PORT_Init(MDR_PORTF, &LED); //Применение настроек к порту F
}
Для детальной настройки порта необходимо открыть спецификацию микроконтроллера, которая находится в директории

20
"Milandr\Документация
\Спецификации\Микроконтроллеры и микропроцессоры\1986\1986ВЕ9X.pdf ".
Напишем основную функцию для мигания светодиодом: int main(void)
{ uint8_t i; while(1)
{
PORT_SetBits(MDR_PORTF, PORT_Pin_0); //Включение 0 пина порта F for(i=0;i<=1000000;i++){} //Задержка
PORT_ResetBits(MDR_PORTF, PORT_Pin_0); //Отключение
0 пина порта F for(i=0;i<=1000000;i++){}
}
}
Компилируем программу и загружаем её на микроконтроллер.
Светодиод на плате должен мигать.
Вычислительная мощность современных микроконтроллеров позволяет использовать встраиваемые операционные системы реального времени (ОСРВ) при необходимости выполнения нескольких задач одним устройством. Существует большое количество свободно распространяемых ОСРВ, совместимых с микроконтроллерами архитектуры Cortex-M. Одной из наиболее распространенных ОСРВ является FreeRTOS.
Основные особенности ОС:

FreeRTOS фактически можно считать ОС жесткого реального времени, но это будет зависеть от приложения, в котором она используется.

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

Имеется возможность использования сопрограмм (co-routine).

Динамическое планирование осуществляется через равные промежутки времени, которые равны тикам системного таймера. Частота тиков задается на этапе разработки приложения.

21

Алгоритм планирования основан на выборе самого высокого на данный момент приоритета. Если имеется больше чем одна задача с самым высоким приоритетом, то выполнение происходит поочередно.
Межпроцессорное взаимодействие:

Очередь – это простой FIFO буфер, который может хранить фиксированное число элементов, известного размера.
Очереди – это, по сути, независимые объекты, которые могут иметь множество писателей, и читателей, без боязни прочитать\записать битые данные. При чтении данных можно указать время, в течение которого процесс должен находится в ожидании получения новых данных. При записи данных мы также можем указать данное время, но уже для ожидания места в очереди.

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

Предотвращение блокирования или тупика в задачах – осуществляется в FreeRTOS либо не блокированием задачи, либо с блокированием на фиксированный промежуток времени. Задачам, которые находятся в конце времени блокировки и все еще не могут получить доступ к ресурсу,
API возвращает ошибку. Таймаут на каждом блоке уменьшает вероятность тупика для доступа к ресурсам.

Запрещение прерывания – имеются критические секции в которых запрещены прерывания. Критические секции в пределах задачи могут быть вложенными. Каждая задача отслеживает количество вложений. Имеется возможность уступить процессор внутри критической секции (при использовании кооперативного планировщика).

Приостановка планировщика
может использоваться для получения полного доступа к микроконтроллеру.

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

22 алгоритм, однако не может комбинировать смежные свободные части памяти. Третья модель обеспечивает обертки вокруг функций malloc () и calloc ().

Борьба с инверсией приоритетов. FreeRTOS не имеет никаких способов борьбы с инверсией приоритетов.
Для работы любой ОС необходим эталон времени. Этот эталон используется для генерации периодических прерываний, которые позволяют прерывать работу задачи и давать ядру возможность периодически выполнять свою работу. В данной ОС этим эталонным интервалом времени называется тик (Tick), который используется в качестве базовой единицы измерения времени в системе.
Основу приложения составляет ядро системы, обеспечивающее необходимую функциональность, и прикладные задачи пользователя.
Запуск приложения осуществляется в два этапа:

Настройка приложения, создание задач пользователя.

Запуск планировщика задач.
Основная функциональность системы заключается в планировщике задач, который осуществляет распределение процессорного времени между задачами, выбирает задачу, запускаемую в настоящий момент времени. Планировщик задач в случае необходимости сохраняет контекст текущей активной задачи и восстанавливает контекст задачи, назначенной к исполнению.
Контекст задачи – это набор данных, содержащий всю необходимую информацию для возобновления выполнения задачи с того места, где она была ранее прервана. Контекст задачи обычно содержит значение рабочих регистров микроконтроллера, счетчика команд, слово состояния. Такое переключение контекстов является основным механизмом работы ОС при переходе от выполнения одной задачи к выполнению другой.
Запуск планировщика осуществляется вызовом vTaskStartScheduler.
  1   2   3   4   5

перейти в каталог файлов


связь с админом