neděle 15. února 2026

Bare metal projekt pro STM32F411 v STM32CubeIDE 2.0+

Motivace:

STM32CubeIDE nemá šablonu pro vytvoření projektu pouze se základními knihovnami, vytváří buď úplně čistý projekt nebo vyžaduje vytvoření komplexního projektu s HAL knihovnami pomocí externího generátoru CubeMX (verze před 2.0 měla CubeMX integrovaný).

Video návod - https://youtu.be/SyemPsp2jN4 - nebo zde:

Řešení:

Soubory ke stažení (akce na stránkách st.com vyžadují registraci a přihlášení, konkrétní verze jsou i na "mém" DropBox-u):

Po instalaci CubeIDE nastavení Workspace (viz. příspěvek zde) vedou k vytvoření projektu následující kroky:

  • V menu File volba STM32 Project Create/Import
  • V nabídce zvolit "STM32CubeIDE Empty Project"
  • Začít psát typ procesoru - začít psát F411 (v KEI/MAP se používá kit Nucleo STM32F411) a vybrat v nabídce STM32F411RETx
  • Zvolit název projektu (žádné mezery a české znaky) a nechat výchozí nastavení
  • Základní kostra projektu je připravena ...
  • Není potřeba soubor ...RAM.ld, vybrat "pravým" a zvolit Delete
  • Kostra hlavní souboru main.c je jednoduchá, ale nebude se používat, celý obsah lze smazat a nahradit vzorovým kódem pro blikání LED. Zatím ale chybí potřebné knihovny
  • Vzhledem k tomu, CubeIDE neumí kompletní projekt, je potřeba přidat soubory "ručně". Protože jsou součástí CMSIS knihovny, vytvoříme nový "zdrojový adresář" - pravým na projekt a vybrat "Source Folder"
    • Pozor - ne jen "Folder", ale "Source Folder"
  • Jméno např. CMSIS, tak to používáme ve všech příkladech
  • Do tohoto adresáře je potřeba nakopírovat z repozitory následující soubory (k nalezení v adresářích podle cesty):
    • Drivers\CMSIS\Include\cmsis_compiler.h
    • Drivers\CMSIS\Include\cmsis_gcc.h
    • Drivers\CMSIS\Include\cmsis_version.h
    • Drivers\CMSIS\Include\core_cm4.h
    • Drivers\CMSIS\Include\mpu_armv7.h
    • Drivers\CMSIS\Device\ST\STM32F4xx\Include\stmf4xx.h
    • Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f411xe.h
    • Drivers\CMSIS\Device\ST\STM32F4xx\Include\system_stm32f4xx.h
    • Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c
  • Pokud by se instalovalo z github-zdrojů, tak větev Drivers\CMSIS\Device\ST je prázdná a je v "tom druhém" projektu "cmsis-device-f4" přímo v adresářích "Include" a "Source"
  • Každopádně, v adresáři CMSIS by pak mělo být 9 souborů:
  • Pokus překladu (ikona "kladívko" nebo Build Projekt) vede na chyby
    • Překladač hlásí, že nemůže najít hlavičkové soubory = nemá cestu k CMSIS adresář. 
  • Je potřeba ve vlastnostech projektu (pravým na projektu a Properties) zvolit C/C++ General a Path and Symbols. V záložce Includes doplnit (Add...) adresář CMSIS a zaškrtnout "všechny konfigurace" a "všechny jazyky"
  • Pro kontrolu by pod záložkou "Source Location" měl být adresář CMSIS vidět - to se stalo automaticky při vytvoření "Source Folder"
  • Po dalším pokusu o překlad se chyby změní, důležitá je chyba začínající "#error 'Please ...", která se objevila hlavičkovém souboru stm_32f4xx.h
  • Je totiž potřeba tomuto univerzálnímu souboru nastavit, který konkrétní typ procesoru chceme používat. Ideálně vybrat symbol STM32FxE a zkopírovat do schránky.
  • Opět ve vlastnostech projektu v "Path and Symbols" - nyní na záložce "Symbols" - přidat (Add...) tento symbol, opět pro všechny konfigurace i jazyky.
    • Původní podobný symbol STM32F411RETx ne možné smazat (Delete)
  • Nyní by měl překlad výchozí demo aplikaci proběhnout bez chyb a je možné ji otestovat na HW.
  • Celý postup je také předveden na youtube

Žádné komentáře:

Okomentovat