Настройка iar для stm8
Если в прошлый раз я писал о работе с STM8 из под Linux, то сейчас мне бы хотелось раскрыть этот вопрос с позиций Windows.
В качестве ОС я выбрал «старушку» Windows XP SP3, а в качестве «подопытного» чипа, так же как и в прошлый раз, у меня STM8S103F3P6 распаяный на плате как на картинке слева. Используемый мною программатор, это китайский клон ST-Link2.
Этот пост можно назвать «быстрым стартом» STM8в Windows.
1. Драйвера
Первым делом нужно будет поставить драйвера для программатора ST-Link2. Для этого заходим на домашний адрес компании ST в раздел данного программатора:
Проматываем страницу книзу, в раздел ПО:
после чего следует щелкнуть по STSW-LINK009. В результате попадем на страницу драйвера:
Как видно, драйвер предлагается для OC: Windows XP, Windows7, Windows8. Десятка похоже, что в пролете 😉
Кликнув по кнопке Download, получаем zip архив. Но т.к. как я уже говорил, что фирма ST сурова, то и никаких инсталятов со слайд-щоу и словами благодарности «за то что выбрали наше предложение», в архиве вы не найдете. Поэтому ставятся они по-другому.
Нужно вставить ST-Link2 в USB порт и дождаться когда запуститься мастер установки драйверов. В появившемся диалоговом меню следует отказаться от соединения с Window Update и в качестве источника драйверов указать распакованную папку скачанного архива.
После чего система сама найдет подходящие для себя драйвера и установит их:
Т.о. программатор начнет отображаться в диспетчере устройств:
2. Флэшер
На данный момент для разработки и отладки программного обеспечения для STM8 существует четыре среды: ST Toolset от STMicroelectronics, Ride7 от Raisonance (www.raisonance.com), CXSTM8 от Cosmic software, IAR Embedded Workbench от IAR Systems. Сравнительный анализ средств разработки программного обеспечения представлен в таблице1 Таблица 1. Сравнительный анализ бесплатных средств разработки программного обеспечения
Инструментарий Среда разработки Си-инструментарий Си-инструментарий других производителей Ограничение Си-иструментария, Кбайт Программатор-отладчик STMicroelectronics ST Visual Develop Нет Cosmic software, Raisonance Нет ST-Link R-Link STICE Raisonance Ride 7 Есть Нет 16 R-Link Cosmic software CXSTM8 Есть Нет 32 Нет IAR Systems IAR Workbench Есть Нет 8 или полная версия на 30 дней ST-Link STICE
Пакет ST Toolset включает в себя среду разработки ST Visual Develop и отдельную программу для более функционального внутрисхемного программирования flash-памяти микроконтроллеров ST Visual Programmer. Среда разработки ST Visual Develop имеет встроенный инструментарий для разработки программного обеспечения на языке assembler, но у нее также имеется возможность подключения и использования Си-инструментария от Raisonance и Cosmic software. Стоит заметить, что все четыре среды с Си-инструментарием предоставляют возможность использования с некоторыми ограничениями, а именно– по загружаемому коду во flash-память. УRaisonance оно составляет 16Кбайт, у Cosmic software– 32Кбайт, а у IAR– 8Кбайт или полную версию с 30-дневным ограничением.
Сейчас нужно будет скачать ST Toolset в состав которого входит флешер ST Visual Programmer. Его домашняястраница:www.st.com/web/en/catalog/tools/PF210568
Промотав cтраницу книзу и кликнув на Download получите zip-архив ST Toolset. После распаковки и установки у вас появятся ST Visual Developer и ST Visual Programmer. Первый нас не интересует, а второй следует запустить, это флешер. При запуске появиться окно конфигурации:
Выбрав тип микроконтроллера и программатор, попадаете в главное окно программы.
Важный момент: микроконтроллеры STM8 имеют единую шину памяти(адресная шина). Т.е. нет разделения на flash память и оперативную. Т.е. разделение есть на внутреннем уровне т.к. архитектура микроконтроллера все-таки гарвардская, но внешне, архитектура выглядит как фон Неймовская. Чтобы вспомнить, чем отличается одно от другого, приведу цитату из википедии:
В чистой архитектуре фон Неймана процессор в каждый момент времени может либо читать инструкцию, либо читать/записывать единицу данных из/в памяти. Оба действия одновременно происходить не могут, поскольку инструкции и данные используют один и тот же поток (шину). В компьютере с использованием гарвардской архитектуры процессор может читать инструкции и выполнять доступ к памяти данных одновременно, без использования кэш-памяти. Таким образом, компьютер с гарвардской архитектурой при определенной сложности схемы быстрее, чем компьютер с архитектурой фон Неймана, поскольку шины инструкций и данных расположены на разных, не связанных между собой физически, каналах. Исходя из физического разделения шин команд и данных, разрядности этих шин (следовательно, и адресные пространства) могут иметь различные значения и физически не могут пересекаться друг с другом.
Т.е. благодаря гарвардской архитектуре в AVR одна команда выполнялась за один такт.
Скриншот ST Visual Programmer:
Оперативка нас пока не интересует, на скриншоте красными стрелками помечены кнопки чтения и заливки прошивки.
Попытка прочитать что-то без программатора приведет к ошибке:
С программатором, но без микроконтроллера, тоже приведет к ошибке:
Пример успешного чтения прошивки:
Полученную прошивку можно тут же обратно записать в микроконтроллер или сохранить в файл. Можно открыть любую другую прошивку в формате ihex и из программы прошить микроконтроллер.
3. Среда разработки IAR
После того, как с прошивками разобрались, осталось узнать в чем эти STM8 программировать. Своего инструментария для разработки на Си у ST нет, а имеющиеся компиляторы или платны или доступны с ограничениями. Часто как наиболее оптимальное решение предлагается COSMIC, но без лицензионного ключа вы ничего в нем не сделаете, а он выдается спустя несколько дней с момента запроса (я ждал три дня). IAR имеет ограничение 8Кбайт, но лицензионный ключ выдается сразу. Причем ключ может выдаться на полностью функциональную версию, с ограничением в 30дней использования. Т.к. STM8S103F3P6 имеет как раз всего 8Кбайт, то большего как бы и не надо. В любом случае пока идет ключ для COSMIC, можно воспользоваться IAR. Скачать его можно с сайта IAR: https://www.iar.com/iar-embedded-workbench/#!?architecture=STM8
После установки, вам предложат заполнить анкету и выбрать тип лицензии. После чего на email придет ссылка с лицензионным ключом. Введя этот ключ при первом запуске IAR вы попадаете в главное окно программы.
По второй ссылке, хоть речь идет и о IAR для ARM, большая часть посвящена самой среде разработке IAR. Я не буду повторять описанного там материала, а буду на него опираться.
Сейчас наша задача составить простой Blink, скомпилировать его и загрузить в микроконтроллер. Для этого сначала нужно создать новый проект:
затем, задать параметры проекта:
после чего откроется рабочее окно, где слева будет браузер проекта, в центре текстовый редактор, в снизу окно для логов. На панели инструментов не трудно будет найти кнопки компиляции и загрузки проекта в микроконтроллер:
Но прежде, чем что-то компилировать, следует сначала настроить проект. Поэтому в браузере проекта следует щелкнуть правой кнопкой по названию проекта, и открыть Options
где первым делом, во вкладке target следует выбрать целевой микроконтроллер:
а в качестве отладчика ST-LINK
Так же полезно будет зайти в опции IAR в настроить окно вывода сообшений:
После чего можно уже будет нажать на кнопку компиляции:
В нижнем окне логов появится отладочная информация.
Плата STM8S103S103F3P имеет два светодиода Один выполняет роль индикатора питания, другой подтянут к пину PB5(да, как в Arduino pin13).
Попробуем написать программу для мигания этим светодиодом:
Закомментируем сначала функцию delay, скомпилируем проект, подключим ST-Link с микроконтроллером и нажмем зеленый треугольник «Debug and Download» .
и попадем в окно отладчика. Справа будет ассемблерный листинг программы загруженной в микроконтроллер, слева на панели инструментов появятся кнопки для управления пошаговой отладкой. Нажимая «Step over» раз за разом, светодиод будет на плате будет то загораться то, гаснуть.
Раскомментиров delay, скомпилировав и загрузив прошивку еще раз в микроконтроллер, на панели отладки можно будет нажать на красный крестик. Тогда программа запустится на выполнение и светодиод начнет периодически мигать с интервалом примерно 1/5 сек.
Резюмируя можно сказать, за небольшую сумму (170 руб за ST-Link2 + 68 руб за плату STM8S103F3P6) получили в свои руки достаточно профессиональную связку железа и софта, с которыми можно сделать многое.