Введение
В 2016 году была написана серия статей "AVR на C - просто?" - Часть 1, Часть 2, Часть 3, Часть 4. Уже тогда были мнения что 8-битные микроконтроллеры ненужны. Но прошло 6 лет и 8-битные существуют наравне с 32-битными. Причем цена не играет существенной роли в выборе микроконтроллера. Целесообразно делать выбор в соответствии с поставленной задачей. Зачем использовать производительный и "нафаршированный" камень для простых задач, таких как поморгать светодиодом, сделать электронный градусник или простой вольтметр - показометр. Почему STM8? Почему не STM32? Почитав статью пришел к выводу что для начинающего любителя микроконтроллеров лезть в дебри 32-битной архитектуры на ядре ARM Cortex-M3 та еще задача. Пока разбирешся может пропасть интерес к микроконтроллерам. Да и для STM8 обучающие руководства далеки для понимания. Хочется чего то простого на подобии Ардуино, но написанного на напрямую, без "скетчей". И слово то какое придумали "скетч" созвучно со скотчем и на нем склеенное - это так отступление.
Для кого это все? Для начинающего программиста - любителя постараюсь изложить свой подход к изучению STM8. Профессионалам в области микроконтроллеров наверное будет не очень интересно, но конструктивная критика приветствуется, без навязывания своего видения процесса разработки простых устройств на микроконтроллере.
1. Подготовка
Нам понадобится:
- Среда разработки (Code::Blocks);
- Компилятор (SDCC - Small Device C Compiler);
- Стандартная библиотека Standard Peripherals Library (SPL для STM8);
- Программа для загрузки микропрограмм в микроконтроллер (ST Visual Programmer для STM8);
- Программатор (обычный ST-Link подойдет);
- Микроконтроллер (STM8S103F3P6 подойдет, лучше распаянный на макетной плате);
- Прочее (провода, сопротивления, светодиоды, восьми сегментные индикаторы и др.).
1.1. Среда разработки
В качестве среды разработки остановимся на Code::Blocks. Скачать можно с сайта разработчика по ссылке. Скачивать можно последнюю версию, на сегодня это codeblocks-20.03. При этом предлагаю версию codeblocks-20.03mingw со встроенным компилятором GCC, вдруг вам захочется ознакомится c серией статей по AVR. Кстати описывать установку Code::Blocks в рамках данной статьи не вижу смысла, установка с подробностями и картинками описана в первой статье по AVR. Отмечу лишь что настройка для работы с STM8 будет подробно описана далее в этой статье.
1.2. Компилятор
Ну раз уж начали использовать свободно доступные программы, то и компилятор возьмем свободно распространяемый, а именно SDCC. К сожалению в GCC не поддерживается работа с STM8. Компилятор скачаем опять с сайта разработчиков по ссылке.
Рассмотрим установку под Win 7. Запускаем ранее скачанный файл sdcc-4.2.0-x64-setup.exe и по каритинкам:
- Принимаем лицензионное соглашение.
- Предлогает создать ссылку из меню «Пуск»
- Список устанавливаемых компонентов
- Путь установки
- Установка
- Добавление пути на файлы в PATH
- И завершение установки
Весь процесс установки можно описать как запустить файл и Next – Iagree - Next - Next - Next - Next – Next – Finish.
1.3. Создание проекта
Для объединения SDCC и Code::Blocks добавим мастер создания проектов для STM8. Нам понадобится «мастер» создания проектов, скачаем скрипты по ссылке.
Из полученного архива codeblocks-wizard-stm8-master.zip извлекаем папку stm8. Ее нужно поместить по пути (в случае если у вас Win 64) для системы Win32 путь может отличатся.
C:\Program Files\CodeBlocks\share\CodeBlocks\templates\wizard
Теперь в этой же папке находим файл config.script и в функцию function RegisterWizards() добави строку
RegisterWizard(wizProject, _T("stm8"), _T("STM8 Project"), _T("Embedded Systems"));
Должно получится примерно так
Теперь проверим работоспособность среды разработки для проектов STM8
Запускаем CodeBlocks и жмем Create a new project
Выбираем категорию проекта STM8 Project и жмем Go
Жмем Next>
Задаем название проекта (Project title:), каталог размещения проекта (Folder to crete project in:) и жмем Next>
Проверяем чтоб Compiler был Small Device C Compiler снимаем галку Create “Debug” configuration (хотя можна и оставить) и жмем Next>
Тут просто Finish.
В нижней части окна видим результат компиляции нашего, пока еще пустого проекта. Если в синем тексте нули то среда разработки готова для проектов STM8, но без использования Standard Peripherals Library (SPL для STM8)
1.4. Стандартная библиотека STM8
Чтоб облегчить разработку добавим модернизированные для работы с CDCC библиотеки SPL для STM8. Скачиваем доработанные библиотеки по ссылке.
Распаковываем архив STM8-SPL-SDCC-master.zip например
C:\STM8-SPL-SDCC-master
Подключаем к Code::Blocks
Менню Settings > Compiler
Подключаем библиотеки:
- Selected compiler выбрать Small Device C Compiler
- Вкладка Search directories
- К имеющейся строке SDCC (выделена) добавляем строки библиотек SPL
1.4. Программа для загрузки микропрограмм в микроконтроллер
Для загрузки программ в микроконтроллер используем ST Visual Programmer (stvp) загрузить можно по ссылке на сайте STMicroelectronics. При первом запуске STVP запросит выбрать микроконтроллера
После выбора откроется программа
На этом настройку программного обеспечения можно считать завершенной (условно, нет предела совершенству).
1.5. Программатор
В качестве программатора используем ST-Link v2 из известного магазина
1.6. Микроконтроллер
В качестве подопытного завалялась плата из поднебесной
Тут установлен микроконтроллер STM8S103F3P6, что подойдет для наших изысканий.
1.7. Прочее
Также понадобятся провода, возможно макетная плата, и многое другое.
Об этом в следующей части этой серии статей. Попробуем выяснить что программировать 8-битные микроконтроллеры от STM мало чем отличается от AVR.
Автор: vavaav