Главная » Микроконтроллеры
Призовой фонд
на октябрь 2017 г.
1. Термометр Relsib WT51
Рэлсиб
2. 1000 руб
PCBWay
3. Регулируемый паяльник 60 Вт
Паяльник
4. 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 чел.

Комментарии (6) | Я собрал (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.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

AVR-программатор USB ASP
AVR-программатор USB ASP
МиниПК MK809V - 4 ядра, Android 4.4.2 Печатная плата для усилителя "LM3886 + AD825"
вверх