Руководство по среде разработки Keil uVision.
— для проектирования программного обеспечения путем формирования текстов программ на одном из языков программирования (ассемблер или Си) в специализированном текстовом редакторе:
— компиляции с получением исполнимого кода для микроконтроллера:
— формирования модели работы портов ввода — вывода, тестирования программ микроконтроллера путем симуляции их выполнения:
— загрузки программ из компьютера в микроконтроллерную систему через интерфейсы различных типов:
— обмена данными между персональными ЭВМ и микроконтроллерной системой в реальном времени.
Современные программные системы, ориентированные на поддержку процесса проектирования, как правило, используют концепцию проектов.
Проект — это совокупность файлов, которые составляют некоторую разработку и фактически являются элементами описания прикладной программы для выбранного микроконтроллера. Таким образом, каждый файл проекта может быть сформирован пользователем. Обычно в проекте поддерживается организация прикладной программы для микроконтроллера на основе модульного подхода, то есть прикладная программа может состоять из произвольного количества программных модулей (файлов), которые содержат взаимные ссылки. Целевые файлы проекта формируются автоматически системой из исходных файлов в процессе построения при компиляции. При построении проекта на основе исходных файлов формируются промежуточные файлы, файлы, которые используются при симуляции, а также исполнимые файлы в определенных форматах.
Keil uVision или STM32CubeIDE? Что использовать.
Базовым понятием является также понятие модели контроллера. Модель контроллера определяет совокупность аппаратных ресурсов, которые учитываются компилятором и симулятором в составе системы. Каждая модель контроллера соответствует аппаратной структуре определенной модификации физического микроконтроллера семейства MCS-51. Таким образом, модель микроконтроллера — это совокупность следующих параметров:
— объемы внутренней и внешней памяти программ и данных;
— номенклатура и количество компонентов периферии, используемых в данной модификации микроконтроллера:
— конфигурационные параметры, используемые при симуляции, например, размер и скорость доступа для модели памяти EEPROM.
С каждым проектом связывается определенная модель микроконтроллера, для которого создается программа в этом проекте. Таким образом, параметры модели непосредственно влияют на процесс компиляции программы и симуляцию ее выполнения при тестировании.
Для систем с микроконтроллерами 8051 разработаны мощные инструментальные средства, позволяющие снизить до минимума время разработки и отладки программного обеспечения. Среди прочих лидирующие позиции занимают программные средства, разработанные фирмой Keil. Инструментальные средства этой фирмы включают целый ряд мощных приложений, таких как компилятор языка Cи для микроконтроллеров 8051, известный под названием Keil C51, макроассемблер A51, совместимый с ASM-51, и наконец, удобная графическая оболочка для разработки и отладки программ Keil uVision.
KEIL IDE. Установка, настройка и бесплатное лицензирование
Среда разработки Keil uVision (в настоящее время используются версии 3 и 4) позволяет создавать сколь угодно сложные проекты, состоящие из разных модулей, написанных как на C, так и на языке ассемблера, подключать библиотеки функций и т.д. Кроме того, эта среда включает удобный отладчик (симулятор), позволяющий оценить и быстро проверить работоспособность программы. Хотя при разработке программ можно обойтись только командной строкой, откомпилировав и собрав программу вне среды Keil uVision, графическая среда разработки все же более удобна, поскольку позволяет автоматизировать сборку программ и проверить их работоспособность с помощью отладчика.
Источник: megalektsii.ru
2.5. Руководство по среде разработки Keil uVision.
Современные программные системы, ориентированные на поддержку процесса проектирования, как правило, используют концепцию проектов.
Проект — это совокупность файлов, которые составляют некоторую разработку и фактически являются элементами описания прикладной программы для выбранного микроконтроллера. Таким образом, каждый файл проекта может быть сформирован пользователем. Обычно в проекте поддерживается организация прикладной программы для микроконтроллера на основе модульного подхода, то есть прикладная программа может состоять из произвольного количества программных модулей (файлов), которые содержат взаимные ссылки. Целевые файлы проекта формируются автоматически системой из исходных файлов в процессе построения при компиляции. При построении проекта на основе исходных файлов формируются промежуточные файлы, файлы, которые используются при симуляции, а также исполнимые файлы в определенных форматах.
Базовым понятием является также понятие модели контроллера. Модель контроллера определяет совокупность аппаратных ресурсов, которые учитываются компилятором и симулятором в составе системы. Каждая модель контроллера соответствует аппаратной структуре определенной модификации физического микроконтроллера семейства MCS-51. Таким образом, модель микроконтроллера — это совокупность следующих параметров:
- объемы внутренней и внешней памяти программ и данных;
- номенклатура и количество компонентов периферии, используемых в данной модификации микроконтроллера:
- конфигурационные параметры, используемые при симуляции, например, размер и скорость доступа для модели памяти EEPROM.
С каждым проектом связывается определенная модель микроконтроллера, для которого создается программа в этом проекте. Таким образом, параметры модели непосредственно влияют на процесс компиляции программы и симуляцию ее выполнения при тестировании.
Для систем с микроконтроллерами 8051 разработаны мощные инструментальные средства, позволяющие снизить до минимума время разработки и отладки программного обеспечения. Среди прочих лидирующие позиции занимают программные средства, разработанные фирмой Keil. Инструментальные средства этой фирмы включают целый ряд мощных приложений, таких как компилятор языка Cи для микроконтроллеров 8051, известный под названием Keil C51, макроассемблер A51, совместимый с ASM-51, и наконец, удобная графическая оболочка для разработки и отладки программ Keil uVision.
Среда разработки Keil uVision (в настоящее время используются версии 3 и 4) позволяет создавать сколь угодно сложные проекты, состоящие из разных модулей, написанных как на C, так и на языке ассемблера, подключать библиотеки функций и т.д. Кроме того, эта среда включает удобный отладчик (симулятор), позволяющий оценить и быстро проверить работоспособность программы. Хотя при разработке программ можно обойтись только командной строкой, откомпилировав и собрав программу вне среды Keil uVision, графическая среда разработки все же более удобна, поскольку позволяет автоматизировать сборку программ и проверить их работоспособность с помощью отладчика.
Источник: studfile.net
Программирование в Keil uVision
Программирование в Keil uVision — это программирование в интегрированной среде разработки uVision компании Keil, представляющей собой совокупность программных средств, позволяющую выполнить весь комплекс работ по формированию программного обеспечения микроконтроллеров.
Общие сведения о микроконтроллерах
Микроконтроллеры являются мощным вычислительным инструментом и прекрасной основой для формирования современных высокопроизводительных и экономичных встраиваемых систем, обладающих многоцелевым предназначением. В одной микросхеме микроконтроллера может содержаться микропроцессор, память программ (как правило, на базе ПЗУ), память данных (как правило, на базе ОЗУ), модуль ввода-вывода, генератор тактовых сигналов, аппаратная поддержка интерфейсов I2C, SPI и многое другое.
Решим твою учебную задачу всего за 30 минут
Попробовать прямо сейчас
Однокристальные микроконтроллеры нашли повсеместное использование в самых разных областях, таких как, измерительные приборы, фотоаппараты и видеокамеры, принтеры, сканеры и копировальные аппараты, а также изделия электронных развлечений и всевозможная домашняя техника.
На первых этапах появления микропроцессоров создание программного обеспечения происходило обычно на каком-либо языке ассемблера, который ориентирован на конкретные устройства. По существу, эти языки являлись символьной мнемоникой определенных машинных кодов, а переводы мнемоники в машинные коды выполнялись программами трансляции. Причем основным недостатком ассемблерных языков является тот факт, что каждый из них имеет привязку к определенному типу устройств и логике его работы. Помимо этого, ассемблер считается сложным в изучении, что требовало значительных усилий, для того чтобы его изучить, но основное, если в дальнейшем будет необходимо перейти на применение микроконтроллеров других компаний, то все эти усилия окажутся бесполезными.
Подобрали для написания работы по теме «Программирование в Keil uVision»
Готовые курсовые работы и рефераты
Консультации эксперта по предмету
Помощь в написании учебной работы
Сегодня разработка программного обеспечения микроконтроллеров может выполняться в интегрированной среде программирования Keil uVision, разработанной корпорацией Keil Elektronik. Эта среда способна предоставить пользователям совокупность средств для формирования и отладки кода программ для микроконтроллеров на базе ядра ARM7, ARM9, Cortex M3 и многих других. В набор бесплатного дистрибутива этого программного обеспечения включены следующие возможности:
- Интегрированная среда разработки.
- Программа компиляции С/С++.
- Программа макроассемблера и линковщика.
- Набор дополнительных утилит.
Программирование в Keil uVision
Программа для микроконтроллера может быть написана на одном из языков программирования как текстовый файл. То есть, для того чтобы написать программу можно использовать любой текстовый редактор. Специальная программа трансляции затем должна преобразовать этот исходный текст программы в машинные коды, которые будут понятны микропроцессору.
Такой процесс именуется компиляцией. После выполнения компиляции формируется так называемый hex-файл, который предназначен для загрузки в память микроконтроллера. Если загрузить такой hex-файл в обычный блокнот, то он пользователь увидит на экране монитора набор строк, состоящих из шестнадцатеричных цифр. По этой причине файл и называется «hex», то есть, в полном варианте «hexadecimal», что означает «шестнадцатеричная система счисления».
Для того чтобы облегчить процесс создания программы, обычно применяется какая-либо интегрированная среда программирования, в составе которой имеется определенная совокупность программных средств, таких как, редакторы исходного текста, трансляторы с выбранного языка программирования, редакторы связей, загрузчики, отладчики и другие средства. При формировании программы, кроме файла с самим текстом программы, среда разработки может использовать много других вспомогательных файлов. Для обеспечения должной взаимной связи всех этих файлов, необходимо создать программный проект.
Для разработки программного обеспечения для микроконтроллеров можно использовать среду разработки Keil uVision, в состав которой входят:
- Программа компиляции С/С++.
- Программа ассемблера.
- Программа отладки.
- Программа трассировка.
- Программа внутрисхемного программирования.
- USB JTAG адаптер ULINK2.
- Бесплатный вариант с ограничением размера кода программы в 32 Кбайт.
Среда программирования Keil uVision имеется на сайте разработчика, с которого ее и можно скачать. Рекомендуется скачать и установить MDK-ARM (требуется регистрация). Для поддержки микроконтроллеров определенных серий следует также скачать и установить последнюю версию библиотеки стандартной периферии. Кроме того, следует установить драйверы JTAG-отладчика Segger Jlink.
После того как установлены все компоненты среды программирования Keil uVision можно приступить к формированию проекта. Для этого нужно выбрать опцию создать новый проект Project — New uVision Project, и выбрать директорию для нового проекта. Следует помнить, что в наименовании пути к директории не должно быть русских символов.
Далее будет предложено осуществить выбор устройства, для которого формируется программа. Например, можно выбрать микроконтроллер MDR1986BE93.
Рисунок 1. Окно программы. Автор24 — интернет-биржа студенческих работ
После того как сделан выбор целевого микроконтроллера, следует выполнить определение периферии и окружения компиляции. Например, можно выбрать DeviceStartup_MDR1986BE9x (поддержка ядра микроконтроллера серии 1986BE9x), DriversPORT (порты ввода/вывода), DriversRST_CLK (сигналы тактовой частоты).
Рисунок 2. Окно программы. Автор24 — интернет-биржа студенческих работ
Рисунок 3. Окно программы. Автор24 — интернет-биржа студенческих работ
Далее в дереве проекта нужно выполнить щелчок правой кнопкой мышки на «Source group 1» и выбрать «add new item to Group ‘Source group 1’». В открывшемся окне нужно сделать выбор расширения файла «*.h», определить для него имя, например, «MDR32F9Qx_board.h» и сохранить в папку «config» в той же директории, что и проект. А дальше нужно просто указать компилятору путь к файлу «MDR32F9Qx_board.h». Для этого нужно в дереве проекта щелкнуть правой кнопкой мышки по «Target 1», выбрать «Options for Target 1» и перейти на вкладку «С/С++». В поле «Include path» добавить строку «./config».
Источник: spravochnick.ru
Начало работы с STM32 в Keil MDK-ARM
STM32 — это семейство 32-разрядных микроконтроллеров фирмы STMicroelectronics.
Микроконтроллеры содержат микропроцессорное ядро ARM, точнее ARM Cortex-M. Это ядро присуще не только микроконтроллерам STM32, оно существует само по себе, и на его основе выпускается множество микроконтроллеров от разных производителей.
Keil MDK-ARM (произносится «Кеил эм-ди-кей арм») — это среда разработки для микроконтроллеров с ядром ARM Cortex-M.
Среда продается за большие деньги, но существует бесплатная ограниченная версия, которую можно скачать с официального сайта.
Существует множество других сред разработки. Например, последнее время автор пользуется средой, которую описал в другой статье. Но в этой пойдет речь о Keil MDK-ARM, потому что она имеет большую популярность и достаточно проста.
Первым делом качаем последнюю версию Keil MDK-ARM с официального сайта. Она имеет ряд ограничений, которые не влияют на большинство задач. Самое существенное ограничение состоит в том, что среда не сгенерирует программу объемом больше 32 КБ, но такую программу надо постараться написать. Хотя микроконтроллеры STM32 часто имеют намного больший объем, вплоть до 2 МБ.
На момент написания статьи последняя версия Keil MDK-ARM — 5.18 (от 5 февраля 2016).
Чтобы скачать среду, надо заполнить форму на сайте Keil:
Следует ввести настоящий адрес электронной почты, иначе сайт будет ругаться. После заполнения и нажатия Submit, дается ссылка для скачивания:
Если вы хотите избежать заполнения формы, то воспользуйтесь страницей, которую сделал автор, чтобы облегчить скачивание.
Качаем и устанавливаем. Установленная среда занимает на диске около 1,3 ГБ. После установки автоматически запускается менеджер пакетов:
Он нужен, чтобы качать, устанавливать и обновлять различные дополнения (пакеты).
Менеджер пакетов появился в MDK-ARM версии 5, что уменьшило объем установочного файла почти в два раза (версия 4.71 была объемом 550 МВ, а версия 5.00 — 300 МБ).
В левой части менеджера мы выбираем устройства (микроконтроллеры), а в правой соответствующие им пакеты.
Допустим, нам надо вести разработку под микроконтроллер STM32F407VG, который установлен на отладочной плате STM32F4-Discovery.
Тогда находим этот микроконтроллер в списке слева и устанавливаем соответствующий пакет DFP:
Можно заметить, что среди установленных пакетов есть CMSIS. CMSIS — это библиотека для ядра Cortex-M, общая для всех микроконтроллеров. Библиотека разрабатывается фирмой ARM и доступна для скачивания с официального сайта после регистрации. Можно было бы не устанавливать этот пакет, а пользоваться официальным выпуском библиотеки, но это дополнительные сложности.
Закрываем менеджер пакетов и запускаем Keil uVision5 (произносится мю-вижен):
Keil uVision5 — это часть MDK-ARM, графический интерфейс среды, который включает редактор кода:
Я рекомендую произвести небольшую настройку редактора. Выбираем меню «Edit -> Configuration…», и производим следующие настройки:
- Кодировка UTF-8.
- Правая граница кода в 80 символов.
- Отступы по 4 пробела.
Эти настройки довольно спорные. У каждого разработчика свои предпочтения.
Теперь создаем проект. Для этого выбираем меню «Project -> New uVision Project…». В открывшемся окне выбираем расположение и имя проекта. Для проекта лучше создать отдельную папку и сохранить проект туда.
После сохранения появится окно выбора устройства. Выбираем нужный микроконтроллер и нажимаем «ОК». Если бы мы не установили нужный пакет, то микроконтроллера не было бы в списке:
В следующем окне предстоит выбрать компоненты, которые будут использоваться в проекте. Необходимо выбрать «CMSIS:CORE» и «Device:Startup»:
После нажатия «OK» процесс создания проекта завершится.
В дальнейшем вы всегда сможете запустить окно выбора компонентов, чтобы добавить или удалить их. Для этого надо выбрать меню «Project -> Manage -> Run-Time Evironment…».
При выборе компонентов может оказаться, что какой-то компонент зависит от других компонентов, которые вы не выбрали. Об этом вы узнаете из сообщений в нижней части окна. Необходимо будет выбрать зависимые компоненты.
После создания проекта описанным способом, в окне справа вы увидите следующую структуру проекта:
Здесь мы видим название проекта «example», цель проекта «Target 1», пустую группу файлов «Source Group 1», компоненты CMSIS и Device.
Целей проекта может быть сколько угодно. Цель включает в себя важнейшие настройки проекта в том числе выбор микроконтроллера. Цели нужны, чтобы можно было собрать программу разными способами для одних и тех же файлов исходного кода. Например, вам может понадобиться, чтобы проект охватывал множество микроконтроллеров.
Группы файлов нужны, чтобы красиво группировать файлы исходного кода. Группы помогают легко ориентироваться в файлах в большом проекте. Например, у вас может быть группа файлов, отвечающих за светодиоды, и отдельная группа с файлами для взаимодействия с USB.
В структуре мы видим два файла. Один с расширением «s». Он содержит исходный код на языке ассемблера. Другой с расширением «с». Он содержит исходный код на языке Си.
Собрать проект и получить файл прошивки можно нажав клавишу F7. Но в таком виде проект не будет собран и вы получите ошибку, потому что отсутствует функция «main()».
Функция «main()» — это точка входа в вашу программу, то с чего начинается программа. Ее наличие обязательно если вы пишите программу на языке Си.
Давайте создадим эту функцию. Кликнем на группе «Source Group 1» правой кнопкой и выберем «Add New Item to ‘Source Group 1’…» (перевод: добавить новый элемент в группу ‘Source Group 1’). Создадим файл «main.c»:
В созданный файл добавим код:
int main()
В конец файла стоит добавить пустую строку, иначе при сборке вы получите предупреждение «warning: #1-D: last line of file ends without a newline».
Теперь проект можно собрать клавишей F7. В результате вы получите файл «Objectsexample.axf» (по умолчанию имя файла совпадает с именем проекта). Файл располагается в папке с проектом.
Обычно разработчику требуется файл прошивки в формате Intel HEX. Чтобы получить его, надо произвести настройку цели. Чтобы увидеть настройки цели нажмите Alt-F7, перейдите на вкладку «Output» и выберите «Create HEX File».
После очередной сборки вы получите файл «Objectsexample.hex».
Сейчас программа не делает ничего, и прошивать ее бессмысленно. Давайте напишем программу, которая управляет состоянием ножки микроконтроллера.
Запустим выбор компонентов с помощью меню «Project -> Manage -> Run-Time Evironment…» и выберем компонент «Device:STM32Cube Hal:GPIO».
В нижней части окна мы увидим неудовлетворенную зависимость «Device:STM32Cube Hal:Common». Выберем этот компонент и увидим еще больший список зависимостей. Необходимо выбрать все требуемые зависимости:
- Device:STM32Cube Hal:Common
- Device:STM32Cube Hal:RCC
- Device:STM32Cube Hal:PWR
- Device:STM32Cube Hal:Cortex
- Device:STM32Cube Framework:Classic
STM32Cube — это библиотека, которую предоставляет STMicroelectronics.
При выборе компонентов мы выбираем какие возможности этой библиотеки использовать.
Микроконтроллер, кроме ядра, содержит большое количество периферийных устройств: АЦП, ЦАП, таймеры, различные интерфейсы и многое другое. Каждое периферийное устройство имеет свое название. Например, устройство для работы с портами микроконтроллера называется GPIO, об этом можно узнать из документации на микроконтроллер.
Библиотека STM32Cube многоуровневая, то есть включает в себя множество промежуточных библиотек. Одна из промежуточных библиотек называется STM32Cube HAL, или просто HAL. Она поделена на модули и каждый модуль соответствует какому-нибудь периферийному устройству. Название модуля совпадает с названием устройства, например, имеется модуль GPIO.
Существует большое количество документации по STM32Cube. Но основное описание по работе с периферийными устройствами содержится в руководстве по HAL. Это руководство разработчик использует большую часть времени. Обратимся к нему, чтобы заставить шевелиться ножки микроконтроллера.
Для начала подключим HAL в нашей программе, добавив строчку перед определением функции «main()»:
#include «stm32f4xx_hal.h»
В самом начале функции «main()» вызовем функцию «HAL_Init()», которая инициализирует библиотеку.
Таким образом мы получим следующий код в файле «main.c»:
#include «stm32f4xx_hal.h» int main()
Продолжение следует…
На этом я вынужден прервать свою статью, так как в данный момент мне не на чем отлаживать программу, то есть нет под рукой отладочной платы.
Я написал программу, которая собирается и теоретически должна работать, но я не хочу вводить в заблуждение читателя. Выше изложенный материал считаю полезным и без конечного результата.
В статье я хотел еще привести конечный код и объяснить, как он работает. Могу лишь поделиться непроверенной программой:
#include «stm32f4xx_hal.h» int main() < HAL_Init(); // Разрешить тактирование порта A. __HAL_RCC_GPIOA_CLK_ENABLE(); // Настройки порта. GPIO_InitTypeDef s; s.Pin = GPIO_PIN_0; // Вывод 0. s.Mode = GPIO_MODE_OUTPUT_PP; // Цифровой выход. s.Pull = GPIO_NOPULL; // Без подтяжки. s.Speed = GPIO_SPEED_FREQ_VERY_HIGH; // Максимальная скорость. // Настроить вывод 0 порт A. HAL_GPIO_Init(GPIOA, // Бесконечно переключать состояние порта с максимальной скоростью. while(1) < HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_0); >//return 0; > void SysTick_Handler(void)
Ссылки
- Скачать продукты Keil без заполнения формы.
- Скринкаст «Eclipse и GNU Tools для разработки под ARM-микроконтроллеры«.
- Микроконтроллер STM32F407VG.
- Отладочная плата STM32F4-Discovery.
- Библиотека STM32CubeF4.
- Руководство по STM32CubeF4 HAL.
- Библиотека CMSIS.
- Отсчет времени в STM32Cube.
Источник: bravikov.wordpress.com