Atollic True Studio - урок по переносу проекта для STM32

В качестве примера для STM32 взят демонстрационный проект широко распространенной в кругах эмбеддеров реализации файловой системы FAT от ChaN, еще именуемой FatFs, для SD-карт памяти. По ссылке [1] в разделе Загрузки можно скачать набор примеров подключения карты к различным микроконтроллерам. В архиве лежит каталог с примером для платы STM32VLDiscovery с микроконтроллером STM32F100. Работа достаточно качественная, компилируется и работает без проблем и дополнительных настроек. Качаем и распаковываем. Предполагается, что саму среду уже загрузили с atollic.com и установили. Пример написан без использования библиотек посторонних разработчиков. Исходный пример компилируется и линкуется из командной строки под управлением утилиты make из среды Linux. Утилита make – это ставший стандартом способ управления процессом компиляции. В каталоге с примером для STM32 находится Makefile – текстовый файл, в котором расписан процесс компиляции и линковки. Если его открыть, то можно распознать списки объектных файлов, которые будут получены в результате компиляции, название компилятора, которым будет компилироваться программа arm-none-eabi-gcc и сопутствующие утилиты. В Makefile сосредоточена вся информация по процессу компиляции. Многие проекты свободного ПО для встраиваемых систем организованы по такому же принципу.

Запускаем Atollic, выбираем File, New, C Project, Empty Project. Вводим подходящее название проекта. В поле Toolchains выбираем Atollic ARM Tools. Создается почти пустой проект, что и нужно (Рисунок 1).

Atollic True Studio - урок по переносу проекта для STM32
Рисунок 1.

Выделяем вновь созданный проект правой кнопкой на вкладке Project Explorer и из контекстного меню выбираем Import…. Если вкладки Project Explorer нет, то из пункта View выбираем Project Explorer. В открывшемся окне Import выбираем File System и кнопку Next>. Затем выбираем каталог с примером проекта и все файлы с расширениями «.c» и «.h». Снимки экрана операций приведены на Рисунках 2 и 3.

Atollic True Studio - урок по переносу проекта для STM32
Рисунок 2.
Atollic True Studio - урок по переносу проекта для STM32
Рисунок 3.

Выбранные файлы будут скопированы в папку с проектом и включены в процесс компиляции. Кроме файлов с исходным кодом, нужно импортировать скрипт линкера – файл с расширениям «.ld». Этот файл управляет линковкой программы. Следующий этап – настройка параметров компиляции. В Makefile имеются все данные для настройки компиляции, но это для тех, кто хорошо разбирается в процессе.

Atollic True Studio - урок по переносу проекта для STM32
Рисунок 4.

Выбираем пункт Project, Properties, C/C++ Build, Settings. В окне Settings на вкладке Target Settings будет предложено выбрать целевую систему, для которой будет сформирован массив с параметрами компиляции. Кроме параметров компиляции будет и создан скрипт линковки для целевой системы, который будет заменен на имеющийся в примере. Выбираем STM32F100RB и сохраняем (Рисунок 4).

Atollic True Studio - урок по переносу проекта для STM32
Рисунок 5.

Там же на вкладке выбираем Tool Settings, затем C Compiler и Optimization. Ставим галки на Prepare dead code removal и на Pretare dead data removal. Поясняет операцию Рисунок 5.

В пункте C linker, General в этом же окне ставим галки на Do not use standard start files и Do not use standard default libraries. В поле ввода Linker script подставляем путь к файлу скрипта линкера, который поставляется с примером и импортирован в проект ранее. Файлы проектов находятся в домашнем каталоге пользователя в подкаталоге "Atollic", там нужно искать каталог созданного проекта с файлами (Рисунок 6).

Atollic True Studio - урок по переносу проекта для STM32
Рисунок 6.

В пункте Optimization ставим галку Dead code removal. В пункте Other, Output format выделяем галкой Convert build output. По завершении компиляции будет создан двоичный образ для записи во флэш-память микроконтроллера в выбранном формате. Снимок экрана показан на Рисунке 7.

Atollic True Studio - урок по переносу проекта для STM32
Рисунок 7.

Суммарно действующие параметры, с которыми будет вызываться компилятор и линковщик, можно посмотреть, выделив в меню пункты C compiler и C Linker; они должны быть такими как на Рисунках 8 и 9.

Atollic True Studio - урок по переносу проекта для STM32
Рисунок 8.

Компилируется проект командой из основного меню Project, Build Project. Информация о процессе компиляции выводится в текстовую консоль. Если окно консоли неактивно, его можно вызвать из основного меню View, Console. Если компиляция прошла успешно, будут созданы файлы с расширениями «.elf» и «.hex» или «.binary».

Atollic True Studio - урок по переносу проекта для STM32
Рисунок 9.

Для записи двоичного образа программы в микроконтроллер на первых порах можно использовать программу STM32 ST-Link Utility. Для более профессиональной работы нужно настроить среду разработки, чтобы использовать утилиту командной строки ST-LINK_CLI.exe, поставляемой с STM32 ST-Link Utility. Если ST-Link не установлена, то нужно скачать дистрибутив и установить. В основном меню выбираем Run, External tools…, External Tools Configure. Ставим фокус на Program, создаем конфигурацию для программы прошивки, вводим подходящее название, подставляем путь к утилите ST-LINK_CLI.exe, выставляем рабочий каталог для утилиты и задаем параметры запуска ‘-c ID=0 SWD –P C:UsersuserAtollicTrueSTUDIOSTM32_workspace_9.0FATFS_RLOCMANDebugFATFS_RLOCMAN.hex’. Двоичный файл с прошивкой в формате «.hex» или «.binary» в каталогах "Debug" или "Release", в зависимости от активной конфигурации. По умолчанию устанавливается конфигурация Debug. Процесс конфигурирования иллюстрируется Рисунком 10.

Atollic True Studio - урок по переносу проекта для STM32
Рисунок 10.

Схема подключения (Рисунок 11), взятая из каталога демонстрационного проекта, была вложена в папку с программным кодом. Контроллер подключается к компьютеру через RS-232. В микроконтроллере STM32F100 отсутствует аппаратный контроллер USB, наверно именно поэтому автор программы выбрал RS-232, еще достаточно распространенный в промышленности и в различном специальном оборудовании. Для сопряжения нужно использовать устройство на микросхемах, подобных MAX3232. Контакты платы STM32VLDiscovery используются следующим образом: PA10 – Rx, PA9 – Tx, PA6 MISO – DO, PA7 MOSI – DI, PA5 – SCLK, PA4 – CS_SEL; PC4 нужно замкнуть на GND.

Atollic True Studio - урок по переносу проекта для STM32
Рисунок 11.

После подключения SD-карты и записи программы в микроконтроллер подключаемся к компьютеру через RS-232, возможно, с помощью переходника RS-232–USB. Для общения используем какую-либо терминальную программу. Параметры настройки порта: скорость 115200, 8N1. В Atollic имеется простой терминал последовательного порта (Рисунок 12), окно которого открывается из основного меню посредством View, Terminal. Когда откроется терминальное окно, жмем Ctrl+Alt+Shift+T, – появится окошко настройки параметров соединения.

Atollic True Studio - урок по переносу проекта для STM32
Рисунок 12.

Если связь исправна, то после сброса микроконтроллера должно появиться сообщение с информацией о программе и приглашение к вводу команд ‘>’.

По команде '?', выводится краткий справочник по командам. Команда ‘di 0’ выполнит инициализацию карты. Если команда прошла успешно, то ответ будет ‘rc=0’, противное означает какую-то неисправность. Командой ‘ds 0’ проверяем статус устройства. Монтируем файловую систему: ‘fi 0’; проверяем статус системы: ‘fs 0’ (Рисунок 13). Команда ‘fl’ выводит содержимое текущего каталога.

Atollic True Studio - урок по переносу проекта для STM32
Рисунок 13.

Программа задействует часы реального времени микроконтроллера, встроен также программный календарь. По команде ‘t’ на экран выводится текущее время. Дата и время устанавливаются командой ‘t 2019 1 25 12 30 00’. Если подключить батарейное питание к контакту VBAT платы, то время будет отсчитываться и при отсутствии основного питания. Не забудьте убрать перемычку SB1 на плате.

Драйвер USART сделан с использованием обработчика прерываний и кольцевого буфера. Для формирования точных временных задержек создан обработчик прерываний на системном таймере. Среда разработки имеет развитые средства для навигации по исходному коду. Изучая профессиональные программные проекты можно повысить свою квалификацию как программиста. Удачи в работе.

Материалы по теме

Загрузки

Добавить свое объявление

* заполните обязательные данные

Статистика eFaster:

посетило сегодня 676
сейчас смотрят 22
представлено поставщиков 382
загружено
позиций
25 067 862