Главная страница
Образовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей
qrcode

Торгаев С.Н. Мусоров И.С. Солдатов А.А. Сорокин П.В. Программирвоание МК Cortex-M3 в задачах диагностики и контроля. Томск 2... С. Н. Торгаев, И. С. Мусоров, А. А. Солдатов, П. В. Сорокин


НазваниеС. Н. Торгаев, И. С. Мусоров, А. А. Солдатов, П. В. Сорокин
АнкорТоргаев С.Н. Мусоров И.С. Солдатов А.А. Сорокин П.В. Программирвоание МК Cortex-M3 в задачах диагностики и контроля. Томск 2.
Дата07.06.2019
Размер6.84 Mb.
Формат файлаpdf
Имя файлаTorgaev_S_N__Musorov_I_S_Soldatov_A_A_Sorokin_P_V_Programmirvoan
оригинальный pdf просмотр
ТипМетодическое пособие
#52978
страница1 из 4
КаталогОбразовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей
Образовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей
  1   2   3   4
Министерство образования и науки Российской Федерации
ФГАОУ ВО «Национальный исследовательский Томский политехнический университет»
ФГАОУ ВО «Национальный исследовательский Томский государственный университет»
ФГУИ Институт оптики атмосферы им. В.Е. Зуева Сибирского отделения Российской академии
С.Н. Торгаев, И.С. Мусоров,
А.А. Солдатов, П.В. Сорокин
ПРОГРАММИРОВАНИЕ
МИКРОКОНТРОЛЛЕРОВ С ЯДРОМ
CORTEX-M3 В ЗАДАЧАХ ДИАГНОСТИКИ
И КОНТРОЛЯ
Рекомендовано в качестве учебного пособия
Редакционно-издательским советом
Томского политехнического университета
Томск – 2017
УДК 681.322 (075.8)
ББК 32.973.26-04я73
Т60
Т60
Торгаев С.Н., Мусоров И.С., Солдатов А.А.,
Сорокин П.В. Программирование микроконтрол-
леров с ядром Cortex-M3 в задачах диагностики и
контроля : учебное пособие. – Томск : STT, 2017. –
104 с.
ISBN 978-5-93629-598-0
Методическое пособие предназначено для студентов старших курсов, изучающих многоразрядные микроконтроллеры и построение систем неразрушающего контроля на их основе. В пособии рассмотрены вопросы программирования микроконтроллеров
K1986BE92QI. Представлено большое количество примеров программ по настройке основных периферийных устройств для данных микроконтроллеров.
Пособие предназначено для студентов, обучающихся по направлениям 11.04.04 «Электроника и наноэлектроника», 12.04.04 “Биотехнические системы и технологии”.
УДК 681.322 (075.8)
ББК 32.973.26-04я73
Рецензенты:
Нариманова Г.Н. – канд. физ.-мат. наук, доцент кафедры УИ ТУСУР;
Шульгин Е.М. – начальник отдела управления персоналом
АО «НПЦ "Полюс"».
ISBN 978-5-93629-598-0
© С.Н. Торгаев, И.С. Мусоров,
А.А. Солдатов, П.В. Сорокин, 2017
© ФГАОУ ВО НИ ТПУ, 2017
© Оформление. STT
TM
, 2017

ОГЛАВЛЕНИЕ
МИКРОКОНТРОЛЛЕР K1986BE92QI.
НАСТРОЙКА ПРОГРАММНОГО ОБЕСПЕЧЕНия
......................................................... 5 НАСТРОЙКА ПОРТОВ ВВОДА ВЫВОДА. ПРИМЕРЫ ............................................. 411 ТАЙМЕРЫ МИКРОКОНТРОЛЛЕРА К1986ВЕ92QI .................................................... 600 АНАЛОГОВО-ЦИФРОВЫЕ ПРЕОБРАЗОВАТЕЛИ МИКРОКОНТРОЛЛЕРА К1986ВЕ92QI .......................................................................... 733 ЦИФРО-АНАЛОГОВЫЙ ПРЕОБРАЗОВАТЕЛЬ МИКРОКОНТРОЛЛЕРА К1986ВЕ92Qi ............................................................................. 88 ИНТЕРФЕЙС UART МИКРОКОНТРОЛЛЕРА К1986ВЕ92QI ................................... 922Литература .................................................................................................................................................... 99 3

Введение
В настоящее время особой популярностью у разработчиков электронных устройств пользуются так называемые встраиваемые микроконтроллеры. В мире выпускается большое количество семейств микроконтроллеров, в основном на базе приборов с 8-битной шиной данных и процессорными RISC- и CISC-ядрами. Их производительность и объем памяти вполне достаточны для решения множества бытовых и промышленных задач, а архитектура ядер многих из этих семейств хорошо изучена пользователями. Для 8-битных микроконтроллеров написано огромное количество программ, которые, наряду с многочисленными русифицированными описаниями самих этих устройств, свободно доступны в сети Интернет.
16- и 32-битные микроконтроллеры, которые обеспечивают более высокую производительность, быстро набирают популярность. Их применение обусловлено повышенной сложностью решаемых задач, жесткими требованиями к производительности встраиваемых контроллеров управления, необходимостью иметь в электронных устройствах развитые пользовательские интерфейсы, предназначенные для отображения информации, управления, индикации и т.д. Типичные для 16- и 32битных микроконтроллеров приложения (сотовые телефоны, дисководы, модемы и т.п.) предъявляют к встраиваемым управляющим контроллерам непрерывно возрастающие требования. Особенно важно обеспечить их высокую эффективность, сохранив при этом низкую стоимость, отличавшую 8-битные микроконтроллеры.
Значительных успехов в области создания 16/32-битных микропроцессорных (микроконтроллерных) ядер добилась британская фирма
Advanced RISC Machines (ARM), специализирующаяся на разработке микропроцессоров и периферии к ним, и продающая лицензии на их производство другим фирмам-производителям. 32-битные микроконтроллеры, использующие процессорное ядро с архитектурой ARM, приобрели широкую популярность у разработчиков. Благодаря высокой производительности и выгодному соотношению «цена/качество», микроконтроллеры с ядром ARM представляются многим потребителям элементной базы весьма перспективными.
Данное учебное пособие посвящено вопросам настройки периферийных устройств микроконтроллера K1986BE92QI и его программированию. В пособии представлено большое количество примеров программ для микроконтроллера, написанных на языке С.
4

Глава 1. МИКРОКОНТРОЛЛЕР K1986BE92QI. НАСТРОЙКА
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Описание процессорного ядра Cortex-M3
Cortex-M3 – это новое 32-разрядное ARM RISC ядро с гарвардской архитектурой. Микроконтроллеры на основе этого ядра выпускается многими фирмами (ST Microelectronics, NXP, TI и др.), что позволяет разработчику выбрать наиболее подходящий микроконтроллер.
Данные процессоры спроектированы для достижения высокой производительности всей системы в недорогих высокоэкономичных встроенных приложениях, таких как системы промышленного контроля, автомобильная электроника, проводные и беспроводные телекоммуникационные системы, системы управления электроприводами и т.п.
Процессоры на основе архитектуры CortexM3 являются дальнейшим и наиболее прогрессивным развитием классической архитектуры
ARM и имеют более высокую производительность, менее сложную модель программирования, прекрасную систему обработки прерываний и низкую цену. Некоторые преимущества процессоров на базе архитектуры Cortex-M3 перед процессорами на базе классической архитектуры приведены в таблице 1.1 [1]
Таблица 1.1
Сравнение ядер ARM7TDMI-S и Cortex-M3
Параметр
Ядро
ARM7TDMI-S
Cortex-M3
Ядро
ARMv4T
ARMv7-M
Архитектура фон Неймана
Гарвардская
Поддерживаемые системы команд
Thumb
Thumb / Thumb-2
Прерывания
FIQ/IRQ
NMI + от 1 до 240 физических прерываний
Время обработки прерывания
24..42 тактов
12 тактов
Пошаговый режим
Нет
Интегрирован
Защита памяти
Нет
8 региональных устройств защиты памяти
Производительность
0,95 DMIPS/МГц (в режиме ARM)
1,25 DMIPS/МГц
Потребляемая мощность
0,28 мВт/МГц
0,19 мВт/МГц
Площадь кристалла, мм²
0,62 (только ядро)
0,86 (ядро и стандартная периферия)
5

Процессор на базе архитектуры Cortex-M3 в своей основе имеет иерархическую структуру. Она включает в себя ядро CM3Core с развитой периферией, включающей в себя механизмы управления прерываниями, защиты памяти и внутрисхемной отладки и другие. Архитектура процессорного ядра Cortex-M3 и интегрированные в него компоненты представлены на рисунке 1.1.
Рис. 1.1. Архитектура ядра Cortex-M3
6

Ядро Cortex-M3 базируется на Гарвардской архитектуре и имеет раздельные шины для команд и для данных в отличие от стандартных
ARM процессоров, использующих фон Неймановскую архитектуру и совмещенные шину и память как для данных, так и для команд. Поскольку процессоры Cortex-M3 считывают данные и команды одновременно, это позволяет производить некоторые операции одновременно и таким образом обеспечить конвейерную обработку программ [3].
Ядро Cortex-M3 может работать в одном из двух режимов работы:
«Thread» и «Handler», и поддерживает два уровня доступа к коду программы: привилегированный и непривилегированный, что облегчивает реализацию сложных и открытых систем, не жертвуя при этом защищенностью системы. Код программы, исполняемый в непривилегированном режиме, имеет ограниченные возможности по доступу к некоторым ресурсам и специфическим областям памяти. Режим «Thread» является типичным режимом работы, в котором код программы может быть как привилегированным, так и непривилегированным. Переход в режим «Handler» происходит при возникновении исключительной ситуации (exception); в данном режиме весь код программы выполняется как привилегированный. Также предусматривается такое понятие, как рабочее состояние ядра. Их два: Thumb, в котором выполнение инструкций идет обычным путем, и Debug, в котором активизируются встроенные отладочные возможности ядра.
В отличие от прежних ядер ARM, в ядре Cortex-M3 стандартизовано не только ЦПУ, но и контроллер прерываний, системный таймер и карта памяти. Например, 4 Гбайта адресного пространства Cortex-M3 разделено на строго определенные области для кода приложения,
SRAM, периферийных и системных устройств (рис. 1.2).
7

Рис.1.2. Адресное пространство процессора Cortex-M3
Традиционные процессоры на базе архитектуры ARM7 поддерживают только доступ к выровненным данным, что подразумевает, что сохраняемые и вычитываемые данные должны быть выровнены по границе слова. Процессоры же на базе архитектуры Cortex-М3 позволяют обращаться к невыровненным данным и сводят к минимуму временные задержки, связанные с доступом к данным. В случае, если происходит обращение к невыровненным данным, это обращение разбивается на несколько параллельных обращений к выровненным данным, но этот процесс является прозрачным для программы пользователя, поскольку происходит автоматически внутри ядра.
Помимо этого, процессоры с архитектурой Cortex-М3 поддерживают операции 32-разрядного умножения за 1 такт, а также знаковое и беззнаковое деление, которое требует от 2 до 12 тактов в зависимости от размера операндов. Операция деления происходит быстрее, в случае, если делимое и делитель имеют небольшой размер.
Cortex поддерживает одну систему команд, ARM Thumb-2. Эта система содержит и 16- и 32-битные команды, сочетая в себе производительность 32-битного ARM с плотностью кода 16-битного Thumb.
Процессор Cortex-M3 содержит более совершенную систему прерываний (относительно ARM7), характеризующуюся задержкой вызова процедуры обработки прерывания всего лишь 12 машинных циклов
(для сравнения, ARM7TDMI-S требует 24–42 цикла). Основу системы
8
прерываний составляет Контроллер Вложенных Векторных Прерываний, который в стандартной реализации поддерживает одно немаскируемое прерывание и 32 прерывания общего назначения с 8 уровнями приоритетов (в общем случае число прерываний может достигать 240 при 256 уровнях приоритета). С момента получения прерывания до начала выполнения первой команды обработчика прерывания затрачивается только двенадцать циклов тактового сигнала. Это достигается частично за счет автоматического размещения информации в стеке, осуществляемого внутри ЦПУ микроконтроллера. В случае, когда прерывания следуют впритык друг за другом, КВВП использует метод «постановки в очередь», позволяющий осуществлять обработку каждого из последующих прерываний всего за шесть циклов тактового сигнала. На этапе обращения к стеку, прерывание с более высоким приоритетом может получить преимущество перед прерыванием с низким приоритетом, что не влечет за собой затрат дополнительных циклов ЦПУ.
Блок защиты памяти является опциональным компонентом ядра
Cortex-M3. Он позволяет повысить надежность встраиваемых систем за счет защиты критичной информации, используемой операционной системой, от действия пользовательских программ.
Доступ к встроенной отладочной системе реализован посредством порта доступа к отладочной системе (DAP), который с внешней средой связывается по одному из последовательных интерфейсов: 2-выводной последовательный отладочный порт SW или стандартный 5-выводной последовательный порт JTAG. Появление 2-выводного интерфейса делает возможным появление 32-битных микроконтроллеров с числом выводов менее 10 и существенно упрощает электрическое подключение к отлаживаемому устройству. Для микроконтроллеров с масочным ПЗУ предусмотрен специальный блок Flash Patch, который во время отладки позволяет осуществлять выборку инструкций не из ПЗУ, а из статического ОЗУ, тем самым существенно упрощая процедуру отладки программного кода для таких микроконтроллеров.
Микроконтроллеры с архитектурой Cortex-M3 стали значительным явлением на рынке ARM микроконтроллеров. Ядро микроконтроллера, построенное на базе Гарвардской архитектуры с использованием
3-уровневого конвейера, использует новые решения, такие как предсказание переходов в командах ветвления, однотактное умножение и деление, показывает впечатляющий уровень производительности, равный
1,25 DMIPS/МГц.
Немаловажным плюсом архитектуры Cortex-M3 является широкая ее поддержка ведущими производителями программного обеспечения.
В таблице 3 перечислены основные производители программных и про9
граммно-аппаратных комплексов для создания и отладки программного кода для микроконтроллеров с архитектурой Cortex-M3.
Таблица 1.2
Некоторые производители программных продуктов для ARM MCU
Cortex-M3
Производитель
Продукты
Keil Software
Полный комплекс разработки и отладки программного кода, а также аппаратные средства программирования и отладки
IAR Systems
Полный программный комплекс разработки и отладки программного кода
CodeSousery
Полнофункциональный комплекс разработки и отладки GNU G++
Rowley Associates
Полнофункциональный пакет разработки и отладки CrossWorks
FreeRTOS.org
Встраиваемые операционные системы реального времени RTOS
Pumpkin
RTOS
Express Logic
RTOS, TCP/IP стеки, файловые системы, USB стеки
Micrium
RTOS, TCP/IP стеки, файловые системы, USB стеки, библиотеки для работы с протоколами
CAN и Modbus
CMX Systems
RTOS, TCP/IP стеки, файловые системы, USB стеки
SEGGER Microcontroller
Systeme
RTOS, GUI, файловые системы, USB стеки, JTAG эмуляторы
Interniche Technogies
RTOS, сетевые стеки и файловые системы
Основные характеристики микроконтроллера К1986ВЕ92QI
Ядро:
• ARM 32-битное RISC-ядро Cortex™-M3, тактовая частота до
80 МГц;
• производительность 1,25 DMIPS/МГц;
10

• блок аппаратной защиты памяти MPU;
• умножение за один цикл, аппаратная реализация деления.
Память:
• встроенная энергонезависимая Flash-память программ размером
128 Кбайт;
• встроенное ОЗУ размером 32 Кбайт;
• контроллер внешней шины с поддержкой микросхем памяти
СОЗУ, ПЗУ, NAND Flash.
Питание и тактовая частота:
• внешнее питание 2,2 ÷ 3,6 В;
• встроенный регулируемый стабилизатор напряжения на 1,8 В для питания ядра;
• встроенные схемы контроля питания;
• встроенные подстраиваемые RC генераторы 8 МГц и 40 кГц;
• внешние кварцевые резонаторы на 2 ÷ 16 МГц и 32 кГц;
• встроенный умножитель тактовой частоты PLL для ядра;
• встроенный умножитель тактовой частоты PLL для USB.
Аналоговые модули:
• два 12-разрядных АЦП (до 16 каналов);
• температурный датчик;
• двухканальный 12-разрядный ЦАП;
• встроенный компаратор.
Периферия:
• контроллер DMA с функциями передачи Периферия-Память, Память-Память;
• два контроллера CAN интерфейса;
• контроллер USB интерфейса с функциями работы Device и Host;
• контроллеры интерфейсов UART, SPI, I2C;
• три 16-разрядных таймер-счетчика с функциями ШИМ и регистрации событий;
• до 96 пользовательских линий ввода-вывода.
Отладочные интерфейсы:
• последовательные интерфейсы SWD и JTAG.
Описание отладочного макета
На рисунке 1.3 представлен внешний вид отладочного макета микроконтроллера К1986ВЕ92QI.
11

Рис. 1.3. Внешний вид отладочного макета
Модуль Блок коммутации включает в себя 7 кнопок – RESET,
WAKEUP, UP, DOWN, LEFT, RIGHT и SELECT. Схемы подключения кнопок к соответствующим портам микроконтроллера представлены на рисунке 1.4.
12

Рис. 1.4. Схемы подключения кнопок отладочной платы
На отладочном макете имеется два пользовательских светодиода, подключенные к порту С (рис. 1.5).
13

Рис. 1.5. Схемы подключения светодиодов на отладочной плате
Для подключения внешних устройств на плате присутствуют 2 разъема с выводами на них линий портов микроконтроллера (рис. 1.6).
Рис. 1.6. Схема подключения разъемов
14

Также на отладочной плате присутсвует разьем для подключения microSD карточки (рис. 1.7).
Рис. 1.7. Схема подключения разъемов
Настройка программы IAR Embedded Workbench
Архив iar_arm.rar содержит папку arm, эту папку надо скопировать в папку <Где установлен 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
/config/debugger/Milandr – файл с описанием периферии МК для отладки
1 Настройки IAR EWB
В настройках проекта необходимо произвести настройку параметров согласно рис. 1.8–1.10.
15

Рисунок 1.8. Настройки линкера
Рисунок 1.9. Настройки отладчика
16

Рисунок 1.10. Настройки отладчика (программирование)
Создание проекта в программе IAR Embedded Workbench
Создание проекта в среде IAR Embedded Workbench осуществляется по следующему алгоритму.
1.
Запускаем среду программирования IAR Embedded
Workbench for ARM. На рисунке 1.11 представлен внешний вид стартового окна программы.
Рис.1.11. Стартовое окно программы
17

2.
Для создания нового проекта необходимо зайти в меню
«Project» и выбрать пункт «Create new project…» (рис. 1.12).
Рис. 1.12. Окно создания нового проекта
3.
В появившемся окне (рис. 1.13) необходимо выбрать шаблон для языка С и тип микроконтроллера (ARM). Далее следует сохранить рабочую область Workspace (рис. 1.14).
Рис 1.13. Окно выбора языка программирования и микроконтроллера
18

Рис. 1.14. Окно сохранения проекта
4.
После сохранения проекта будет открыто его рабочее окно
(рис. 1.15).
Рис.1.15. Рабочее окно проекта
5.
Далее необходимо настроить проект. Для этого в окне
«Workspace» выберается пункт контекстного меню «Options» (рис.
1.16).
19

Рис. 1.16. Окно настройки проекта
6.
В меню General Options во вкладке Target выбирается модель контроллера: Device—>Milandr—>Milandr 1986BE9x (рис.
1.17).
Рис. 1.17. Окно выбора микроконтроллера
7.
Для дальнейшей работы с микроконтроллером необхо-
димо подключить библиотеку, содержащую описание регист-
ров, масок и битов. Существует стандартные библиотеки ядра
микроконтроллеров серии CortexCMSIS. Данная аббревиатура расшифровывается как Cortex Microcontroller Software Interface.
20

Помимо этого, существует еще одна библиотека для микроконтроллеров MDR32F9Qx под названием Standard Peripherals
Library (SPL). Библиотека SPL может использоваться в дополнение к CMSIS, обеспечивая более быстрый и удобный доступ к периферии. Библиотеку SPL часто называют набором драйверов к периферийным модулям.
Для загрузки библиотек нужно перейти на страницу C/C++ Com-
piler, выбрать вкладку Preprocessor и в соответствующем окне указать пути к следующим файлам библиотеки CMSIS (рис. 1.18):
$PROJ_DIR$
$PROJ_DIR$\emdr1986x-std-per-lib-master\Config
$PROJ_DIR$\emdr1986x-std-per-lib-master\CMSIS\CM3\CoreSupport
$PROJ_DIR$\emdr1986x-std-per-libmaster\CMSIS\CM3\DeviceSupport\MDR32F9Qx\inc
$PROJ_DIR$\emdr1986x-std-per-libmaster\CMSIS\CM3\DeviceSupport\MDR32F9Qx\startup
$PROJ_DIR$\emdr1986x-std-per-lib-master\MDR32F9Qx_StdPeriph_Driver\inc
$PROJ_DIR$\emdr1986x-std-per-lib-master\MDR32F9Qx_StdPeriph_Driver\src
Рис. 1.18. Содержимое окна C/C++ Compiler вкладки Preprocessor
8.
Далее нужно перейти в меню Linker, где следует выбрать пункт Override default и выбрать Linker какпоказано на рис. 1.19 и
1.20.
21

Рис. 1.19. Меню Linker выбор опции Override default
Рис. 1.20 Окно выбора Linker фирмы «Миландр»
9.
Далее необходимо перейти в меню Debbuger. Во вкладке
Setup расположено поле Driver, в котором следует выбрать J-
Link/J-Trace (рис. 1.21).
22

Рис. 1.21. Страница Debbuger, вкладка Setup
10. В поле use macro file(s) необходимо добавить файл
FlashMDR32F1x (рис. 1.22).
Рис. 1.22. Окно добавления maro файла FlashMDR32F1x
11. Во вкладке Download меню Debbuger следует выбраь необходимыепункты, как показано на рис. 1.23 и выбрать flashloader фирмы «Миландр» (рис. 1.24).
23

Рис. 1.23. Меню Debbuger, вкладка Download
Рис. 1.24. Окно выбора flashloader фирмы «Миландр»
12. Далее в меню J-Link/J-Trace во вкладке connection необходимо выбрать SWD (рис. 1.25).
24

Рис. 1.25. Меню J-Link/J-Trace, вкладка Connection
13. После осуществления всех настроек в контекстном меню
«Options» необходимо нажать правой кнопкой мыши на окно
«Workspace» и добавить файлы стандарных библиотек: Add
>Add Files (рис. 1.26):
Рис. 1.26. Меню J-Link/J-Trace, вкладка Connection
14. Необходимо добавить файлы как показано на рис. 1.27 – 31.
25

Рис. 1.27. Окно добавления файлов: core_cm3.h, core_cmfunc.h и core_cminstr.h
Рис. 1.28. Окно добавления файла MDR32Fx.h
26

Рис. 1.29. Окно добавления файла system_MDR32F9Qx.h
Рис. 1.30. Окно добавления файла startup_MDR32F9Qx.s
27

Рис. 1.31. Окно добавления файлов: MDR32F9Qx_board.h и MDR32F9Qx_config.h
15. Загрузка программы в микроконтроллер осуществляется в три этапа (рис. 1.32): компиляция (Compile), создание (Make), загрузка и отладка (Download and Debug)
Рис. 1.32. Панели компиляции и загрузки программы
16. Далее можно запускать программу, как показано на рис.
1.33.
Рис. 1.33. Запуск программы
28

Настройка программного продукта Keil μVision 5
1. Необходимо скачать с официального
MDK 5 (MDR32F9Qx, MDR1986VE1T, MDR1986VE3T)», распаковать и установить. С keil 4 версии данный файл не работает. Только keil
μVision 5.
2. Далее нужно установить 2 файла: «Setup_JLinkARM_V468a» и «MTLink». Это драйвера для программатора MT-LINK. Их нет на CD диске.
3. После этих действий подключаем MT-LINK к компьютеру, устройство должно определиться, но на всякий случай идем в диспетчер устройств и проверяем, определилось ли устройство.
Рис.1.34. Диспетчер устройств
3. Скопировать файл «MDR32F9x.FLM» из CD диска, в папку «Flash» в директории с keil 5. По умолчанию путь такой
«C:\Keil_v5\ARM\Flash».
29

Создание проекта в программном продукте Keil5
Внимение!, если в пути файлов есть русские символы, то проект не скомпилируется.
Подключим программатор к JTAG_A (верхнему порту) и выставляем соответствующее положения на рычагах BOOT загрузки (Самый верхний влево, нижние два — вправо). Подключаем питание. Не забываем переключить рычаг выбора источника питания.
Запускаем программный продукт Keil μVision 5. Переходим на вкладку Project->New μVision Project… Сохраняем проект.
Далее необходимо выбрать микроконтроллер. Микроконтроллер фирмы Milandr с я дром Cortex-M3, называние K1986BE92. Находим нужный, справа в окошке можно увидеть основные характеристики микроконтроллера. Нажимаем кнопку «ok».
Рис.1.35. Выбор микроконтроллера
Далее открывается окно «Manage Run-Time Environment». В данном окне можно выбрать интересующие стандартные библиотеки.
30

Настраиваем проект. Переходим на вкладку Project->Options for
Terget ‘Target 1’… Откроется диалоговое окно настроек.
Переходим на вкладку Debug. Вкладка Debug разбита на 2 колонки: «Use Simulator» – режим симуляции и «Use» – выбор отладочного инструмента «эмулятора». Выбираем «Use» и выбираем «J-Link» эмулятор.
Рис.1.36. Выбор эмулятора
После выбора эмулятора нажимем кнопку «Setting» - настройки.
Настроим эмулятор. Переходим на вкладку Debag. В поле «SN:» должен быть сразу показан номер эмулятора. Если его нет, то что-то не так с драйверами. Далее в списке «PORT» нужно сменить JTAG на SW и выбрать частоту в списке 1MHz. После этого справа должен появиться код микроконтроллера, как на (рисунке 1.36). Если ничего не появилось, то нужно проверить правильность выбранного канала эмулятора «А» или
«В». После нажать кнопку «RESET» и еще раз выбрать частоту. Если не помогло, то проверьте, как установлен контроллер в кроватку. Часто достаточно всего лишь нажать на нее, чтобы ножки «отошли» и «встали» обратно. После чего снова нажать «RESET» выбрать частоту.
31

Рис.1.37. Настройка эмулятора
После успешного распознавания контроллера – переходим во вкладку «Flash Download». Там ставим птичку около «Erase Full Chip», как на рисунке, и жмем Add.
32

Рис.1.38. Добавление нужного микроконтроллера
Из этого списка выбираем наш микроконтроллер и жмем ОК. Если микроконтроллера нет, то это значит, что вы не скопировали FLM файл в папку Flash описанную в разделе «Настройка программного продукта Keil μVision 5».
33

Рис.1.39. Выбор микроконтроллера
Нажимем кнопку «Add», настройка эмулятора закончена.
Переходим во вкладку «Utilities». Там ставим точку слева от Use
Target Driver for Flash Programming, после выбираем наш J-LINK. Ну и на последок переходим в «Settings». Там все должно быть уже настроено так же, как и в предыдущем меню. Но все равно проверяем.
34

Рис.1.40. Настройка проекта
Теперь необходимо добавить к проекту файл в котором будем присать программу. Правой кнопкой нажимаем на «Sourge Group1» и выбираем «Add New Item Group …». Выбираем тип файла «С File(.с)» сохраняес в рабочей папке.
35

Рис.1.41. Добавление в проект основного файла программы main.c
Далее необходимо добавить фалы библиотеки в проект.
Добавление происходит следующем образом. Щелкаем правой кнопкой по нужной папке в дереве проекта и выбираем «Add Existing Files to Group
‘Имя группы’…».
36

Рис.1.42. Добавление библиотек
В открывшемся окне нужно выбрать тип файлов «All files (*.*)».
После чего выбрать 1 или выделить несколько файлов.
Рис.1.43. Выбор библиотечных файлов
Добавить нужно:
1. В папку
SMSIS_and_Drivers
->
«Libraies\1986BE9x_StdPeriph_Driver\src -> все файлы .c». Тут хранится аналог SPL у STM32. Проще говоря, это «обертки»,
37
которые позволяют не вдаваясь в структуру контроллера управлять его периферией (выводы, uart и т.д.).
2. В папку SMSIS_and_Drivers -> « Libraries\CMSIS\CM3\DeviceSupport\1986BE9x\startup\arm
-> startup_1986be9x.s». Это файл «стартап». Тут прописаны все
«вектора переходов». Иначе говоря, по любому прерыванию (к примеру, нажатие кнопки) контроллер возвращается к этой таблице и смотрит, куда ему перейти, чтобы выполнять код дальше.
3. В папку
SMSIS_and_Drivers
->
«Libraries\CMSIS\CM3\DeviceSupport\1986BE9x\startup\arm -> system_1986BE9x.c».
Итогом должно стать такое дерево.
Рис.1.44. Дерево проекта
Как можно было заметить, около самого верхнего #include файла стоит крестик. Keil просто не видит данного файла. Для того, чтобы исправить это, мы должны указать ему, где ему брать этот файл. Для этого жмем Alt+F7. В открывшемся окне переходим во вкладку C/C++. Для того, чтобы исправить это, нужно нажать галочку около надписи «C99
Mode». Это даст возможность писать на более совершенном стандарте языка Си, чем это можно было делать изначально. Далее следует нажать
38
на прямоугольник с «…» внутри. Справа около строчки с подписью
«Include Paths».
Рис.1.45. Окно добавления пути библиотечных файлов
В открывшемся окне нажимаем на иконку с прямоугольником, слева от крестика. Это создаст пустую строку. В правом углу созданной строчки жмем на «…». После чего указываем нужную папку, в которой лежат интересующие нас файлы. После этого жмем «ОК». Папка будет добавлена. Необходимо добавить все эти пути. Если вы заметили, то все ссылки кроме одной – относительные. То есть идут от корневого каталога. Но 1 идет начиная от «C:\». Это ссылка на сам каталог с проектом.
Его тоже следует указать.
Жмем «ОК» и переходим в файл main.c.
Компилируем простейшую программу.
39

Рис.1.46. Пример простой программы
Не забываем о том, что в конце каждого файла должна быть пустая строка. Keil считает это как предупреждение, которое частенько действует на нервы. Конечно, компилироваться будет, но сам факт предупреждения – настораживает.
На этом настройка закончена. Мы можем перекомпилировать наш проект нажав F7. Если все прошло хорошо, ты мы увидим это.
Рис.1.47. Информационное окно проекта
40

  1   2   3   4

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

Образовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей

Образовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей