ARM tanfolyam 2. előadás
Fejlesztő környezet - Codesourcery G++ lite: Letölthető a mentorgraphics honlapjáról (ARM-EABI változat) Eclipse CDT GNU-ARM Eclipse plugin
ARM-hoz tartozó fájlok A gyártó honlapjáról letölthető, Általában standard peripherials library néven fut, és .zip fájlban van Továbbá az esetleges devboardhoz tartozó fájlok, driverek, programozó szoftverek
Telepítési sorrend Codesourcery G++ lite telepítése a C:\ARM\Codesourcery mappába Eclipse bemásolása a C:\ARM\eclipse mappába Az eclipse indítása után: Help->Install New Software->Add és a .zip fájt megadni (GNU-ARM plugin) (next-next-ok :D )
Új project File->New->C project->ARM Cross Target application és kiválasztani hogy Sourcery G++ lite Utána a köv. oldalon csak a Release mellett legyen pipa Majd Finish
Project konfigolása Ezután CMSIS mappát létrehozni és telepakolni fájlokkal DE: Most egszerűbb, mert előre kiadtam egy üres projectet
Beállítások A Project Explorerben a project nevén jobbklikk->Properties… A feljövő ablakban baloldalt a C/C++ build->Settings menüpontot megnyitni
Target processor->Cortex-M0 …GCC C Compiler->Directories: hozzáadni a projecten belül a CMSIS mappát …GCC C Compiler->Miscellanous->Language standard: ISO C99 with GNU extensions Majd a …GCC C linker-> stm32_flash.ld
Szükséges fájlok összegyűjtése A kontrollerhez letöltött libraryból fájlokat kell összeválogatni STM32F0xx_StdPeriph_Lib_V1.0.0\Libraries\CMSIS\Device\ST\STM32F0xx\Include\ \Libraries\CMSIS\Device\ST\STM32F0xx\Source\Templates\TrueSTUDIO\ .s ASM file ->A kiterjesztést .S-re átírni (nagy .S) Libraries\CMSIS\Device\ST\STM32F0xx\Source\Templates\ ebből a system_stm32f0xx.c \Libraries\CMSIS\Include\ összes .H \Libraries\STM32F0xx_StdPeriph_Driver\ ebből az \inc és \src mappából most az alábbiakat ….rcc.c és rcc.h ->órajel modul driver ….gpio.c és gpio.h -> portlábakhoz állítgató cuccok, meg konfig cuccok ….tim.c és tim.h -> timer Linkerscript: …\Project\STM32F0xx_StdPeriph_Templates\TrueSTUDIO\Project\stm32_flash.ld És a konfigfájl, ez lehet innen: …\Project\STM32F0xx_StdPeriph_Examples\GPIO\IOToggle\stm32f0xx_conf.h
Mintaprojectek Tök jól használható mintakódok vannak a .zip fájlban a \Project\STM32F0xx_StdPeriph_Examples mappában. Perifériánként csoportosítva a mintakódokat. A projecteket sajnos nem lehet csak úgy megnyitni, de ugyanígy összegyűjthetőek mint visszább írtam
stm32f0xx_conf.h Csak azokat a fájlokat kapcsoljuk be amit használunk, mert a beincluedolt fájlokat befordítja Save! Majd build!
Hibák Assert_param-> be kell incluedolni a stm32f0xx_conf.h fájlt a periféria drivereknél a .c-be Javítás:
Hibák, folytatás… A startup.S-ben ki kell kommentelni a bl __libc_init_array sort -->nem lesz malloc :( de megvagyunk nélküle, meg elvileg kijavítható hiba
Hibajavítás után… Hibátlan fordítás Nekiállhatunk értelmeset kódolni…
LED villogtató Csináljunk egyszerű hello world progit Kell hozzá: Késleltetés LED villogtatás
Szoftveres késleltetés Fontos a volatile kifejezés Ezt írjuk a main() elé
GPIO init A panelon a PC8-as lábon lévő LED-et akarjuk villogtatni Órajelet adni a perifériának->ADATLAP
Egészítsük ki a main-t! Save + Build
Letöltés STM32 ST-LINK Utility File open-> \Project\release\.... .hex OK->Program-> Majd a boardon reset gomb Örül!