Реклама ⓘ
Главная » Микроконтроллеры
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

IAR EWARM. STM32F030F4P6. Микроконтроллер отсутствует в списке...

Решил я сделать одно несложное устройство на микроконтроллере STM32. Начал искать недорогие варианты. После недолгих поисков мне приглянулся STM32F030F4P6. Заказал микроконтроллеры, получил посылку.

Вот так они выглядят. Корпус TSSOP-20.

Вытравил плату, настало время писать прошивку. Открываю IAR, создаю новый проект, и ... микроконтроллера не оказалось в списке выбора!

Я совсем не ожидал такого исхода событий, поэтому буду исправлять ситуацию. Всё делаю на примере STM32F030F4P6, для других микроконтроллеров всё делается по аналогии. Для начала заглядываю в даташит, и смотрю какое ядро используется в микроконтроллере.

На первой странице даташита написано, что используется ядро ARM Cortex M0. В настройках проекта на вкладке "General Options" выбираю ядро (core) Cortex M0.

Далее необходимо настроить адреса и количество памяти Flash и RAM. Захожу на вкладку "Linker", жму кнопочку "Edit".

На вкладке "Vector Table" проверяем стартовый адрес, с которого начинается выполнение программы. Должно стоять значение 0x08000000. Если всё верно - идём далее, если нет - правим.

Далее идём на следующую вкладку "Memory Regions". Здесь самое важное.

Необходимо задать начальные и конечные адреса для Flash и RAM памяти. Где же взять эти адреса? Идём в даташит, в раздел "Memory Mapping", и ищем там схематическое изображение адресного пространства микроконтроллера.

Итак, из этой картинки мы можем узнать адрес начала Flash, и адрес начала RAM, это будут значения 0x08000000 и 0x20000000 соответственно. Вбиваем эти значения в графы "Start". Теперь необходимо вычислить конечные значения "End" - они равны начальному значению + размер памяти, а размеры памяти можно без проблем найти в даташите. Ищем раздел "Description" и находим там табличку. В этой табличке указаны основные характеристики всей линейки микроконтроллеров, здесь же указаны объёмы Flash и RAM памяти. Находим в табличке наш микроконтроллер - в моём случае это STM32F030F4P6, смотрим количество памяти.

Теперь, зная объёмы памяти и начальные адреса, можно вычислить конечные адреса. Берём в руки калькулятор, и складываем. Не забываем, что 4 килобайта это 4096 байт, а 16 килобайт это 16384 байта.

Flash = 0x08000000 + ((16 * 1024) - 1)
Flash = 0x08000000 + 16383
Flash = 0x08000000 + 0x3FFF
Flash = 0x08003FFF

То же самое проделываем и для RAM памяти.

RAM = 0x20000000 + ((4 * 1024) - 1)
RAM = 0x20000000 + 4095
RAM = 0x20000000 + 0xFFF
RAM = 0x20000FFF

Мы рассчитали конечные адреса Flash и RAM памяти, вбиваем их в графы "End". Наверняка многим не понятно, почему при расчётах я отнимаю единичку. Дело в том, что по адресу Flash 0x08000000 уже находится первый байт, следовательно, нужно этот байт учесть при расчёте.

Итак, адреса вбили, переходим на последнюю вкладку "Stack/Heap Sizes". Здесь необходимо указать размеры стека (stack) и кучи (heap). Настройка этих значений индивидуальна для конкретного проекта. В своём проекте я выделяю под стек 1024 байта, а кучу не использую, поэтому ставлю по нулям.

Сохраняем проект, теперь добавляем файлы Standart Peripheral Library.

Запускаю компиляцию клавишей F7, и вуаля. Готово. Теперь можно программировать.

P.S. Общие особенности создания проекта в данной статье не рассматриваются. Прилагаю пустой настроенный проект IAR EWARM 6.60 под микроконтроллер STM32F030F4P6, вдруг кому пригодится.

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (9) | Я собрал (0) | Подписаться

0
optima #
А свежее IAR установить не судьба?
Прикрепленный файл: 72.jpg
Ответить
0

[Автор]
Zlodey #
Странно, только что посмотрел на официальном сайте - поддержки STM32F03xxx нету. Вот ссылка
https://www.iar.com/search-results/#/?devices_vendor=STMicroelectronics&devices_architecture=ARM&tab=devices
Ответить
0
Незнайка #
У вас скрин из какой версии?
Ответить
0

[Автор]
Zlodey #
В конце статьи версия указана - 6,60
Ответить
0
optima #
Это я привёл пример версии 7.2 и в ней уже этот камень есть! А сейчас уже актуальна версия 7.4.
Ответить
0
tankist #
Спасибо за статью. Проект собирается, но зашить его в контроллер не могу - нет flashloader для данного типа контроллера. А как заливали вы?
P.S. У меня отладчик J-Link.
Ответить
0

[Автор]
Zlodey #
Эта статья наверное уже не актуальна, вышли новые версии IAR, в них уже есть поддержка данных микроконтроллеров
Ответить
0
Анатолий #
Не в упрек, но то что вы здесь написали, понимаете вы и еще несколько человек. Я заказал из Китая плату STM32F030F4P6 уже почти неделю пытаюсь прошить. Безрезультатно.
Ответить
0

[Автор]
Zlodey #
Удалось прошить? Если нет - пишите в ЛС, может смогу помочь
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Pickit 2 - USB-программатор PIC-микроконтроллеров
Pickit 2 - USB-программатор PIC-микроконтроллеров
Модуль измерения тока на ACS712 (30А) Металлоискатель MD3010II
вверх