Настройка проекта в Keil uvision5

 

Сам я начинающий в этом деле, если что не так опишу, просьба сильно не пинать) 

До работы с STM микроконтроллерами, упорно изучал AVR. После приобретения своей первой платы STM32f3discovery, своим первым проектом, конечно же, хотел помигать светодиодами. Думал ща приду домой, включу и сразу начну программировать и без проблем делать всякие там проекты. Но не тут то было. После создания проекта постоянно вылетали всякие ошибки, компилятор постоянно ругался на недостающие файлы. 

Наиболее часто вылетала ошибка типа этой:

«.\Objects\Ex3.axf: Error: L6218E: Undefined symbol assert_param (referred from stm32f30x_adc.o).
Not enough information to list image symbols.
Finished: 1 information, 0 warning and 1 error messages.
".\Objects\Ex3.axf" - 1 Error(s), 497 Warning(s).
Target not created.»

После долгих попыток наконец-то удалось установить причину всех моих неудач. Ниже представлены несколько шагов, которые делаю я для создания проекта. Эти шаги облегчат процесс создание своих первых проектов на микроконтроллерах семейства STM32.

Среда Keil имеет свои «внутренние» файлы, которые она использует по умолчанию. К примеру фалы отвечающие за конфигурацию периферии и др. Для того чтобы компилятор использовал скипированные файлы необходимо сделать

1. Шаг первый – скачиваем файлы настройки контроллера

Для того чтобы настроить свой первый проект вам необходимо для начала скачать архив для вашей конкретной платы с официального сайта

www.st.com

Для своей платы STM32f3Discovery я скачал архив с примерами по ссылки

http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1576/LN1531/PF252054#

Далее распаковываем данный архив.

2. Создаем папки проекта

После этого в папке с проектом создаем 4 папки

  • cmsis – папка содержащая файлы настройки микроконтроллера;
  • pl – папка с файлами переферрий;
  • user – пользовательская папка, тут главный исполняемый файл;
  • startup – начальная инициализация/

У меня это выглядит так:

"F:\Projects\STM32\Ex4\cmsis"

"F:\Projects\STM32\Ex4\pl"

"F:\Projects\STM32\Ex4\startup"

"F:\Projects\STM32\Ex4\user"

3. Создаем аналогичные группы в среде Keil u vision

Аналогично в нашем проекте создаём группы с такими же названиями. Названия можно давать любые, но чтобы не путаться лучше такие же, как и сами папки.

Важно понимать, что создание группы в проекте это не создание аналогичных папок в папке проекта, а всего лишь группировка исполняемых файлов.

Создаем группы в среде Keil

4. Копируем нужные файлы в папки проекта

Далее нам необходимо скопировать из нашего,ранее скаченного архива, следующие файлы.

В папку cmsis следующие 3 файла:

  1. " F:\Projects\STM32\Ex4\cmsis\system_stm32f30x.c"
  2. " F:\Projects\STM32\Ex4 \cmsis\system_stm32f30x.h"
  3. " F:\Projects\STM32\Ex4cmsis\stm32f30x.h"

Файл stm32f30x.h – это файл необходимый для настройки работы микроконтроллера.

В папку pl две папки из STM32F30x_StdPeriph_Driver это

 inc  и src, в которых находится куча файлов для работы с периферией.

Также в папку pl необходимо скопировать файл stm32f30x_conf.h из любого проекта.

В итоге имеем:

  1. "F:\Projects\STM32\Ex4\pl\stm32f30x_conf.h"
  2. "F:\Projects\STM32\Ex4\pl\inc\тут куча файлов h"
  3. "F:\Projects\STM32\Ex4\pl\src\ тут куча файлов c"

В папку startupкопируем следующий файл

"F:\Projects\STM32\Ex4\startup\startup_stm32f30x.s"

В папке userсоздаем наш исполняемый файл main.c

5. Добавляем файлы в проект

В среде Keil нам необходимо добавить некоторые файлы в  созданные группы.

  1. В группу cmsis добавляем один файл system_stm32f30x.c;
  2. В группу pl все си-шные файлы периферии из папки src;
  3. В группу startup файл startup_stm32f30x.s;
  4. А в папке user создаем файл main.cв ручную.

На данном этапе это выглядит так:

6. Самый главные этап создания проекта

Далее нам необходимо открыть файл stm32f30x.h и убрать комментарий со следующей строки:

/* #define USE_STDPERIPH_DRIVER*/

В результате Keil начинает использовать ваши скопированные файлы.

7. Добавляем в проект стандартную библиотеку core

Для того чтобы добавить данную библиотеку необходимо менеджере проектов выбрать пунк Run-TimeEnviroment и поставить галочку в поле CMSIS.

Далее открываем наш main.c и компилируем, если ошибок нет. Значит проект настроен верно.

Комментарии  

 
#1 Никита 08.01.2016 18:55
Здравствуйте, а какой конкретно архив Вы скачали?
Цитировать
 
 
#2 admin 08.01.2016 19:36
Цитирую Никита:
Здравствуйте, а какой конкретно архив Вы скачали?

Здравсвуйте, точно сейчас не могу вспомнить но вроде этот
STSW-STM32108
STM32F30x/31x DSP and standard peripherals library,includi ng 81 examples for 25 different peripherals and template project for 5 different IDEs (UM1581)

находится во вкладке design and resources
Цитировать
 
 
#3 сергей 09.08.2018 12:02
Сделал как в стать ,ошибок нет,, компилируется, заливаю в stm32f407ve .тишина ,ногодрыг не работает Keil 5. Использьовал стандартную SPL.тотже контролер под кокосом с спл работает,дрыгет ногой. Если использовать куб мх и библиотеку HAL то в keil5 работает. Подозреваю важно какая версия библиотеки SPL и спользуется под Keil. Если stm32f103 то все работает и SPL. Вопрос , известну ли проверенные библиотеки SpL подstm32f407 для Keil5 , кто проверял?
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Последние комментарии

Последнии темы форума

  • Нет сообщений для показа