Template для STM32 (IAR+PHYDriver+CMSIS+FreeRTOS)

Если кто не в курсе, то template это шаблон по русски. Зачем он нужен? Ну если вам не охото париться каждый раз при создании нового проекта вытаскивая куски рабочего кода из старых проектов и удаляя всё ненужное, то он может вам пригодиться.

Кроме того в данном шаблоне портирован FreeRTOS 7.1.0 под STM32F103VB + StdPerith Driver 3.5.0 на последний IAR 6.30, в общем всё свежак. Когда я попытался вместе всё это сварганить, то наловил кучу самых разных багов, поэтому если кто не хочет париться и наступать на мои грабли, то можете пользоваться готовым без проблем.

Итак шаблон включает в себя:
— демо проект под IAR 6.30 С/С++ для STM32F103VB
— CMSIS library
— StdPeriph Driver STM32F10xx V3.5.0
— FreeRTOS 7.1.0

Не знаю как тут прикреплять файлы в .rar, тогда вот ссылки
Скачать можно отсюда
Исходники просмотреть можно здесь
Или просто зайти сюда, вполне вероятно что template я буду обновлять со временем.

Комментарии (25)

RSS свернуть / развернуть
Пишет: «Not a valid project file» ((. Версия IAR 6.04. это из-за этого?
Когда я попытался вместе всё это сварганить, то наловил кучу самых разных багов
Например?
0
Пишет: «Not a valid project file» ((. Версия IAR 6.04. это из-за этого?
Такое по моему может быть, если в ручную изменить имя проекта, у меня там в README.txt есть инструкция как изменять имя проекта правильно. Вообще я проверял всё работает без проблем, на счёт версии IARa ничего не могу сказать, у меня на 6.30 всё без ошибок. Завтра на работе ещё раз проганю.

Например?
Ой, это долгая история), во первый CMSIS глючит с новой версий IARa, во-вторых новый FreeRTOS глючит с новой версией PHY драйверов. Я наверное дня 2-3 сражался с этой байдой. Запускаешь демо проект от фриРтоса компилится и работает, но там стоит старый PHY драйвер, подставляешь новый не работает =). +может быть куча ошибок если используешь с++, т.к. фриРтос написан на Си… долго всё это объяснять в общем)
0
А без StdPHYlib FreeRTOS работать не умеет?
0
Умеет. В комплекте libmaple лежит FreeRTOS, а StdPHYlib нет.
0
В чем тогда разницы работы с и без?
0
Собственно, StdPHYlib это только тоненькая кривая (в смысле дизайна) обертка над железом. На ее месте может быть что угодно. Разницы, естественно, никакой нет.
0
Тоесть либо используем ее, либо сами пишем прослойку между FreeRTOS и железом?
0
Угу. Либо используем другую прослойку (тот же libmaple, например).
0
Понятно, спасибо за разъяснения :)
Просто как-то недолюбливаю немного StdPHYlib, хотя и опыта с стм32 практически нет.
0
Ну значит я не один такой. Впрочем, libmaple тоже родилась не от большой любви к StdPHYlib.
0
проверил, всё компилится и работает нормально, наверное что-то в версии IARa после 6.10 они там какие-то изменения сделали. Также не забудьте сделать rebuild all
0
Не знаю как тут прикреплять файлы в .rar, тогда вот ссылки
Перепаковать в zip. Или просто переименовать, хотя это чуть хуже (впрочем, учитывая что у большинства стоит WinRAR или 7-Zip — подмененного расширения почти никто не заметит).
0
  • avatar
  • Vga
  • 21 февраля 2012, 07:33
Действительно все работает хорошо. Проверил на IAR 6.3.
0
  • avatar
  • rv3bj
  • 23 февраля 2012, 08:16
Используя IAR, надо помнить, что они довольно часто меняют свой формат. Так что проблема перевода проекта из одной версии в другую действительно существует. Поиск в инете помогает разобраться с этим. Можно использовать следующий документ — IAR_migration6.1to6.2.pdf или другое название его же TN0830 (Технические заметки). Документ скачан с сайта ST.
Что касается самого темплейта, то я его легко перенес на STM32 Discovery board. Просто подправил порт подключения светодиода и вот теперь он весело мигает.
0
  • avatar
  • rv3bj
  • 23 февраля 2012, 08:29
Забыл сказать, что плате Discovery я давно заменил процессор на STM32F105RBT6. У него много памяти на борту и тактовая частота до 72мгц.
0
  • avatar
  • rv3bj
  • 23 февраля 2012, 09:27
нда, к счастью контроллеры STM32 хорошо совместимы между собой, даже для перехода с STM32F10xx на STM32F20xx практически ничего менять не надо, да и F4 тоже очень похож
0
Все не так радужно, на самом деле. F2/F4 там разницы действительно очень мало, а вот F1->F2 там возни изрядно, причем почти со всей периферией.
0
не знаю, я вроде смотрел там надо лишь несколько пинов поменять, там даже в даташите есть инфа как сделать их совместимыми, я как раз собираюсь с F103 на F207 переходить, по мне так STMы посовместимей AVRок будут
0
По железу — да, там только два пина надо от земли отсоединить и подключить к ним конденсаторы (второй конец конденсатора на земле). Я имел в виду софтовую совметимость.
0
Ну, если пишешь сам — то софтовая совместимость как-то на второй план уходит. Если вдруг понадобилось в существующее железо воткнуть камень помощнее но в таком же корпусе — железная совместимость первостепенна…
0
Совершенно согласен. И тут с STM32 тягаться тяжело, по железу у них совместимость отличная. Более того, как-то в дискуссии на лифлабсе один чувак сказал, что как-то общался с людьми из ST и те утверждали, что даже распиновка различных корпусов делалась так, что внутри бОльшего можно разместить посадочное место для меньшего и распиновка (кроме дополнительных выводов на бОльшем) совпадет. Я проверял на паре 64-100 и, похоже, это действительно так. Зачет инженерам, вобщем.
0
Это гут. Иногда очень полезная вещь
0
Материал весьма ко времени — как раз от избытка оного стал разбираться с этой осью для МК. Правда, при попытке сварганить свой собственный проект IAR обматерил меня последними словами, а данная статья избавила меня от необходимости все это дело разгребать (все же разгребу, но позже).
Благодарствую премного.
0
Ребзя, ссылки не работают!!!

Вот шаблон для stm32f4discovery, там зашито мигание свЯтодиодой, на здоровье

rusfolder.net/files/40976888
0
Чуваки, ошибся с расчетом тактирования платы. Надо константу PLL_M в файле system_stm32f4xx.c изменить на 8
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.