понедельник, 19 сентября 2011 г.

STM32 Discovery - стартовый набор разработчика ARM Cortex M3 со встроенным программатором

Андрей Курниц (г. Брест, Белоруссия)
(Статья опубликована в журнале Современная электроника 6/2011) 
В статье представлен отладочный набор на базе микроконтроллера ARM Cortex M3. Приведены краткие технические характеристики микроконтроллера, лежащего в основе набора. Показано, как получить бесплатное программное обеспечение для программирования на языке Си, как написать первое приложение и как заставить его выполняться на данном отладочном наборе. Проиллюстрирован процесс отладки приложения и рассмотрены альтернативные способы загрузки прошивки в целевой микроконтроллер.

НАБОР STM32 DISCOVERY
В начале 2011 г. на российском рынке появился отладочный набор STM32 Discovery производства компании STMicroelectronics. Набор предназначен для изучения и освоения 32-разрядных микроконтроллеров популярного семейства ARM Cortex МЗ. Семейство ARM Cortex МЗ предлагается осваивать на базе микроконтроллера STM32F100RBT6B
производства STMicroelectronics, основные характеристики которого приведены в таблице 1. Особенностью набора является его низкая цена. На момент написания статьи она составляла 300 - 400 руб. [1]. Что же включает в себя набор при такой заманчивой цене? Отладочный набор STM32 Discovery (см. рис. 1) состоит из упакованной платы. Все выводы общего назначения этой мезонинной платы плюс цепи питания и сброса выведены в виде штырьков (62 штырька) с шагом 2,54 мм по её периметру (см. рис. 2). Это позволяет встроить плату в прототип своего устройства, выполненного на макетной плате с шагом отверстий 2,54 мм.
Кроме микроконтроллера, плата содержит программатор/отладчик ST-LINK (см. рис. 3). Это позволяет приступить к отладке первого приложения, не приобретая дополнительных устройств для программирования и отладки. Для начала работы понадобится лишь персональный компьютер и кабель USB-MicroUSB.
Большим преимуществом является возможность использования программатора/отладчика ST-LINK, входящего в состав STM32 Discovery в качестве самостоятельного устройства для программирования и отладки других устройств на базе микроконтроллеров семейства STM32. Для этого на плате предусмотрен четырёхконтактный разъём SWD и перемычки, с помощью которых можно выбрать, какой микроконтроллер отлаживать - внешний или установленный на плате.
 


ВЫБОР СРЕДЫ РАЗРАБОТКИ
Следует отметить, что при выборе отладочного набора STM32 Discovery в качестве аппаратной базы разработчику предоставляется богатый выбор средств разработки [4], информация о которых сведена в таблицу 2.

Исходя из принципа «бюджетности», чтобы не тратить средства на покупку
отдельного отладчика, следует выделить из таблицы те среды разработки, которые поддерживают встроенный в STM32 Discovery отладчик ST-LINK. К таковым относятся продукты компаний IAR, Keil и Atollic.

Все вышеупомянутые среды разработки являются коммерческими продуктами, и их полноценные версии стоят больших денег. Однако каждый производитель предлагает ознакомиться со своим продуктом, скачав с официальной интернет-страницы [5, 6] его бесплатную пробную версию. И если в средах от IAR и Keil существует ограничение на размер итогового файла прошивки (32 кбайт) или ограничение по времени работы, то в пробной версии среды разработки TrueSTUDIO Lite компании Atollic отсутствуют ограничения как по времени пользования, так и на размер создаваемого файла прошивки [7]. Именно этот факт сыграл ключевую роль в выборе автором конкретной среды разработки. Кроме того, среда разработки TrueSTUDIO Lite выполнена на основе популярной среды разработки приложений для персональных компьютеров Eclipse.

Хотя пробная версия TrueSTUDIO Lite и допускает создание полноценных приложений для микроконтроллеров серии STM32, тем не менее, она имеет ряд ограничений: 


• отсутствует поддержка языка C++ (только Си и ассемблер);
• отсутствует возможность интеграции с системой контроля версий;
• отладчиком поддерживается всего одна точка останова (break point) и др.


УСТАНОВКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Чтобы создать первое приложение, прежде всего, необходимо скачать последнюю версию среды TrueSTUDIO Lite с официальной интернет-страницы компании Atollic [8]. На момент написания статьи это была версия v2.1.0 от 2011.05.03. Дальнейшее изложение основано на работе именно с этой версией.

Чтобы пользоваться средой TrueSTUDIO Lite, её необходимо бесплатно зарегистрировать. Для этого после запуска скачанного инсталляционного файла мастер установки сгенерирует уникальный номер вашего компьютера - Computer id (см. рис. 4) - и откроет в веб-браузере страницу регистрации, где следует ввести адрес электронной почты и уникальный номер компьютера, полученный на предыдущем этапе установки (см. рис. 5).
После заполнения страницы регистрации появится сообщение об успешной регистрации продукта. На почтовый ящик придёт письмо от ser-vice@atollic.com, содержащее инсталляционный ключ (Installation key), который следует ввести в нижнее поле формы (см. рис. 6).
В процессе установки среды появится окно с предложением установить драйвер для ST-LINK, который понадобится для работы со встроенным в STM32 Discovery отладчиком. Эту настройку следует оставить включённой.
СОЗДАНИЕ ПЕРВОГО ПРИЛОЖЕНИЯ
Создадим простейшее приложение на языке Си, которое будет выполняться на плате STM32 Discovery. Сразу после запуска среды Atollic TrueSTUDIO Lite пользователю предлагается выбрать местоположение так называемого рабочего пространства (Workspace) (см. рис. 7). По большому счёту, рабочее пространство определяет папку на компьютере, в которой будут создаваться несколько взаимосвязанных проектов и приложений. Оставим местоположение рабочего пространства без изменений.  
Далее загрузится непосредственно среда разработки, но текущее рабочее пространство не содержит ни одного проекта, поэтому его необходимо создать. Для этого следует выбрать пункт меню File —> New -> С Project. В появившемся диалоге (см. рис. 8) следует выбрать тип проекта (Project type) STM32 С Project и ввести название проекта (First_Application в нашем случае).


Следующий диалог позволяет выбрать аппаратную платформу, для которой будет разрабатываться приложение (см. рис. 9). Из списка Evaluation Board следует выбрать STM32_Discovery. Остальные настройки установятся автоматически в соответствии с выбранной платой разработчика. Далее последует выбор отладчика, но версия TrueSTU-DIO Lite поддерживает только отладчик ST-LINK, поэтому можно завершить работу мастера нажатием Finish.

Сразу же после создания проекта автоматически выполнится его сборка (см. рис. 10). О безошибочной сборке свидетельствует сообщение Build complete for project First_Application. В результате сборки мы получили файл прошивки с расширением '.elf, который в нашем случае расположен по адресу C:\Documents and Settings\An-drey_K\Atollic\TrueSTUDIO\STM32_work space\First_Application\Debug\First_Ap-plication.elf. Теперь этот файл можно записать во флэш-память микроконтроллера и/или приступить к отладке приложения.
ОТЛАДКА ПЕРВОГО ПРИЛОЖЕНИЯ
Для отладки первого приложения необходимо соединить компьютер со встроенным отладчиком ST-LINK при помощи кабеля USB-MiniUSB. Свечение красного светодиода свидетельствует о том, что питание подано и плата готова к загрузке приложения и отладке.
Для начала отладки следует нажать F11 или кнопку Debug на панели инструментов. Так как это первый сеанс отладки, на экран будет выведен диалог настройки сеанса отладки (см. рис. 11). Никаких изменений вносить не следует. По нажатию кнопки ОК произойдёт загрузка приложения в микроконтроллер и начнётся процесс отладки (см. рис. 12). Во время процесса отладки на экран выводится полезная информация:
- фрагмент выполняемого в данный момент кода, при этом текущая строка выделена синим маркером; - фрагмент кода ассемблера, который соответствует выполняемой в данный момент инструкции (окно дизассемблера);
- значения текущих локальных переменных программы и др. Мерцание красного светодиода на программаторе/отладчике ST-LINK свидетельствует о происходящем процессе отладки. Сразу после начала отладки можно видеть, что маркер строки встал на первой инструкции в теле функции main() и выполнение программы остановилось. Для продолжения работы программы следует нажать кнопку F8 или кнопку Resume на панели инструментов в окне Debug (см. рис. 12).

Алгоритм работы приложения предельно простой и заключается в следующем. Если пользовательская кнопка на плате не нажата - горит зелёный светодиод, если нажата - синий свето-диод.

Продемонстрируем возможности отладки на использовании точки останова (Breakpoint). Для этого следует перейти на строку 210 исходного кода в файле main.c, как показано на рисунке 13. Нажав Ctrl+Shift+B, установим точку останова, которая обозначается круглым синим маркером (см. рис. 13). Если теперь во время выполнения приложения нажать пользовательскую кнопку, то на плате зажгутся оба светодиода (зелёный и синий), а программа остановится точно в том месте, где была установлена точка останова.

ЗАГРУЗКА ПРОШИВКИ в МИКРОКОНТРОЛЛЕР
Текущая прошивка загружается в микроконтроллер в процессе отладки. Однако начинать продолжительный по времени процесс отладки не всегда удобно, когда стоит цель только загрузить прошивку. Поэтому лучше использовать отдельную программу для работы с программатором/отладчиком ST-LINK, которая называется STM32 ST-LINK Utility. Эта программа также является бесплатной, и её можно скачать с официальной интернет-страницы STMicroelectronics [9] (см. рис. 14).
Для работы с платой STM32 Discovery необходимо установить режим программирования по интерфейсу SWD. Это можно сделать, выбрав пункт меню Target —> Settings (см. рис. 15).

Для подключения к программатору/отладчику ST-LINK необходимо выбрать пункт меню Target -> Connect. После этого на экране (см. рис. 14) отобразится название целевого микроконтроллера (на панели Device Information) и содержимое флэш-памяти микроконтроллера.

Программа STM32 ST-LINK Utility, помимо операций, непосредственно связанных с загрузкой прошивки, позволяет выполнять простейшиедействия по управлению ядром микроконтроллера, такие как сброс, запуск/останов выполнения и просмотр
регистров. Для вызова этой функции следует выбрать пункт меню Target —> MCUCore.
Кроме этого, имеется возможность выполнить конфигурацию целевого микроконтроллера, а именно:
• защитить память программ от несанкционированного чтения;
• установить/сбросить конфигурационные биты;
• постранично защитить флэш-память от записи.
Чтобы выполнить эти действия, необходимо выбрать пункт меню Targets ->Option Bytes (см. рис. 16).


ПРЕОБРАЗОВАНИЕ ФОРМАТА *.ELF
К сожалению, программа STM32 ST-LINK Utility не распознаёт формат файла с прошивкой *.elf, который генерирует среда разработки Atollic TrueSTU-DIO Lite. Чтобы загрузить файл прошивки *.elf с помощью STM32 ST-LINK Utility, его необходимо преобразовать в другой формат, например Intel HEX (*.hex) [10]. Для этого удобно воспользоваться программой arm-elf-obj-сору.ехе из бесплатного пакета GNU ARM, который можно загрузить по адресу [11].
После установки пакета (если папка установки была выбрана по умолчанию) программа будет находиться по адресу C:\Program Files\GNUARM\bin\. Скопировав файл arm-elf-objcopy.exe в папку, где находится файл прошивки First_Application.elf, следует выполнить
следующую консольную команду: arm-elf-objcopy.exe -О ihex First_Applica-tion.elf First_Application.hex. После этого в папке должен появиться файл прошивки с расширением '.hex, который можно загрузить в целевой микроконтроллер с помощью программы STM32 ST-LINK Utility.
Для этого в программе STM32 ST-LINK Utility необходимо выбрать пункт меню File —> Open file и указать путь к файлу '.hex. Файл прошивки будет загружен в программу, и можно просмотреть как содержимое флэш-памяти микроконтроллера, так и содержимое загруженного файла с прошивкой. Чтобы загрузить файл прошивки в микроконтроллер, следует выбрать пункт меню Target —>Program & Verify. Сообщение Verification...OK свидетельствует об успешной загрузке прошивки в микроконтроллер.

ЗАКЛЮЧЕНИЕ
На примере отладочного набора STM32 Discovery были выполнены основные этапы создания микроконтроллерного устройства - от выбора программного обеспечения до загрузки готовой прошивки в микроконтроллер и его отладки. Поэтому отладочный набор STM32 Discovery может стать отправной точкой для разработчиков, которые хотят освоить платформу ARM Cortex M3, но при этом не желают нести значительных предварительных расходов.

ЛИТЕРАТУРА
1. http://www.efind.ru/icsearch/ ?search=stm3 2vldiscovery.
2. http://www.st.com/internet/mcu/pro-duct/2l6844.jsp.
3. http://www.st.com/internet/com/techni-al_resources/technical_literature/user_manual/CD00267113.pdf.
4. http://www.st.com/internet/com/technical_resources/technical_literature/user_manual/CD00214439.pdf.
5. http://www.iar.com/websitel/1.0.1.0/68/1/.
6. http://www.keil.com/arm/mdk.asp.
7. http://www.atollic.com/download/ Atollic_TrueSTUDIO_Feature_compari-son.pdf.
8. http://www.atollic.com/mdex.php/download
9. http://www.st.com/internet/com/soft-ware_resources/tool/device_programmer/um0892.zip.
10.http://sourceware.org/ml/ecos-dis-
cuss/2004-07/msg00268.html. 11.http://www.gnuarm.com/bu-2.16. l_gcc-4.1.0-c-c++_nl-1.14.0_gi-6.4.exe. ©  

1 комментарий:

  1. Спасибо большое за статью. Не могли бы вы, выложить где-либо файл с экзешником программы конвертирующей elf в hex ссылка уже не является рабочей а на сайте такого файла не обнаружилось.

    ОтветитьУдалить