Микроконтроллеры

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Микроконтроллеры » STM32 & STM8 » * » Keil


Keil

Сообщений 1 страница 2 из 2

1

Создание  шаблона проекта
     Скачиваем дистрибутив https://rutracker.org/forum/viewtopic.php?t=2305709
    Из всего пакета нам нужны только MDK522.EXE   и  keygen.exe . Устанавливаем ,генерируем серийный    номер,
  регистрируем.

После установки вылезет окно Pack Installer , если устанавливается с нуля необходимо   установить паки CMSIS , ARM compiler и паки на линейки что будем использовать, наша STM2F4 series.
   Если в процессе установки будут ошибки , необходимо перезапустить Keil с правами админа.

     Запускаем Keil.  Создаем новый проект Project → New uVision Project .
      Указываем местоположение проекта и его имя
( в моем случае    d:\Distr\PROGRAMM\Micro\STM32\Project_2017\Keil\F4xx\F4_disco_template\
             и F407_disco_template
)
   Далее в окне Select Device  for Target1  из списка STMicroelectronics выбираем STM32F407VGT6
                   (использую STM32F4 Discovery)
   Следующее окно Manage Run-Time Environment закрываем, использовать встроенные облегчалки  не будем.
   Сохраним  созданный проект File ->Save all
   Содержимое папке нашего проекта на данном этапе :
          DebugConfig\
          Listings\
          Objects\
          F407_disco_template.uvprojx
          F407_disco_template.uvoptx
          F407_disco_template.uvguix.Max

   Теперь добавим необходимый минимум для компиляции проекта и настроим проект .
   Дабы не было мешанины в проекте создадим папки, куда и будем копировать исходники и хэдеры.

   App\            -   для main.c
   CMSIS\        -  для хэдеров CMSIS
   inc\              -  для хэдеров своих модклей
   src\               -  для исходников своих модулей
   ST\              -  для  хэдеров, стартапа и модулей ST

  Все необходимые нам файлы Keil хранит в паках ,
путь к ним  (в моем случае c:\Program Files (x86)\Micro\Keil\ARM\PACK\Keil\STM32F4xx_DFP\2.11.0\)
И так нам нужны :
  Хэдеры CMSIS
      путь   c:\Program Files (x86)\Micro\Keil\ARM\PACK\Keil\STM32F4xx_DFP\2.11.0\Drivers\CMSIS\Include\
      файлы :
arm_common_tables.h
arm_const_structs.h
arm_math.h
cmsis_armcc.h
cmsis_armcc_V6.h
core_cm4.h
core_cmFunc.h
core_cmInstr.h
core_cmSimd.h

Хэдер вендора
   путь   
c:\Program Files (x86)\Micro\Keil\ARM\PACK\Keil\STM32F4xx_DFP\2.11.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include\
   
файл: stm32f407xx.h

Стартап
путь
c:\Program Files (x86)\Micro\Keil\ARM\PACK\Keil\STM32F4xx_DFP\2.11.0\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\
файл :      startup_stm32f407xx.s

  Файл System_xxx
путь 
c:\Program Files (x86)\Micro\Keil\ARM\PACK\Keil\STM32F4xx_DFP\2.11.0\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\
файл:   system_stm32f4xx.c
   
   Настроим проект .
   
http://s7.uploads.ru/IslOK.png

  Правой кнопкой по Target 1 в мэнегере проекта , выбираем Options for Target.
   Вкладки Device , Target , Asm и Linker  не изменяем .
   На вкладке   Output выставляем  опцию Create HEX File
   На вкладке Listing  отмечаем опции C Compiler Listing  и C Preprocessor Listing.
   На вкладке C/C++  прописываем дефайн     STM32F407xx           и прописываем пути к хэдерам  .\CMSIS;.\inc;.\ST

http://se.uploads.ru/XDJer.png




   На вкладке Debug  выбираем либо STLink, либо как у меня Jlink .
         У меня STM32F4 Discovery перешитая в Jlink этой утилитой      https://www.segger.com/jlink-st-link.html
    Здесь же  нажав Setting попадаем в меню настроек Link'a , если Link подключен он сразу определится .
     Выбираем порт отладки SWD  Port → SW , в окне SW Device появится информация о чипе, если подключен таргет.
     В этом же окне на вкладке Flash Download выставляем Reset and Run

Правой кнопкой по Target 1 в мэнегере проекта , выбираем Manage Project item.

http://sa.uploads.ru/fvgoq.png

   Редактируем название нашего таргета , в моем случае это     STM32F4_disco  .
   На вкладке   Groups  создаем виртуальные папки для исходников , именно они будут видны в мэнегере проекта.
  В моем случае имена этих папок совпадают с реальными .
App\
src\
ST\

В виртуальную папку ST   в вкладке Files   добавим  startup_stm32f407xx.s  и system_stm32f4xx.c
В итоге окно мэнегера проекта будет выглядеть так :

http://s8.uploads.ru/oMYvu.png

   
   Добавим main.c для чего правой кнопкой по вирт. папке  App → Add New item for group App
Прописываем имя файла и его расположение .
В нашем случае main.c и реальная папка App проекта.
     

http://s7.uploads.ru/5IZza.png




      Прописываем  в main.c

  #include "stm32f407xx.h"

int main (void)
{
while(1)
{
}

}

Компилируем , сохраняем проект File → Save all.
Шаблон проекта создан .
   Для использования шаблона  достаточно скопировать папку проекта целиком , переименовать файлы

F407_disco_template.uvoptx
F407_disco_template.uvprojx
F407_disco_template.uvguix.Max     ← Max имя юзера компа

  И переименовать  в опциях проекта (вкладка Output) Name of Executable.

http://sg.uploads.ru/N1Vdv.png












    И так создадим из шаблона новый проект переименовав его в F4_disco_blink

   
   Изменим содержимое main.c на

#include "stm32f407xx.h"

#define LED1_ON   GPIOD->BSRR=GPIO_BSRR_BS_12
#define LED1_OFF   GPIOD->BSRR=GPIO_BSRR_BR_12

    static volatile uint32_t TimingDelay;

/* Delay & timers */
    void SysTick_Handler(void) {
    if (TimingDelay) {
        TimingDelay--;
    }   
    }

   
    void Delay_mS(uint32_t nTime) {
    TimingDelay = nTime;

    while (TimingDelay);
    }

int main (void)
{

SysTick_Config(SystemCoreClock /1000);
RCC->AHB1ENR|=RCC_AHB1ENR_GPIODEN;
  GPIOD->MODER &= ~GPIO_MODER_MODER12 ;
    GPIOD->MODER |= GPIO_MODER_MODER12_0 ;

while(1)
{
     LED1_ON ;
     Delay_mS(500);
     LED1_OFF ;
     Delay_mS(500);
}

}

Скомпилируем  Project ->Rebuild all targets files.
Прошьем Flash->Download

PS . Частота внешнего кварца в system_stm32f4xx.c по дефолту 25МГц  на F4 Discovery установлен на 8МГц
  поэтому необходимо исправить строку 
  #define HSE_VALUE    ((uint32_t)25 000000)
на
#define HSE_VALUE    ((uint32_t)8000000)

Либо прописать дефайн HSE_VALUE  = 8000000

2

обновил.


Вы здесь » Микроконтроллеры » STM32 & STM8 » * » Keil