ARM tanfolyam 2 elads Fejleszt krnyezet Codesourcery G

  • Slides: 30
Download presentation
ARM tanfolyam 2. előadás

ARM tanfolyam 2. előadás

Fejlesztő környezet - Codesourcery G++ lite: Letölthető a mentorgraphics honlapjáról (ARM-EABI változat) - Eclipse

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

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: ARMCodesourcery mappába • Eclipse bemásolása

Telepítési sorrend • Codesourcery G++ lite telepítése a C: ARMCodesourcery mappába • Eclipse bemásolása a C: ARMeclipse mappába • Az eclipse indítása után: Help->Install New Software->Add és a. zip fájt megadni (GNU-ARM plugin) (next-ok : D )

Új project • File->New->C project->ARM Cross Target application és kiválasztani hogy Sourcery G++ lite

Ú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,

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

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-M 0 • …GCC C Compiler->Directories: hozzáadni a projecten belül a

• Target processor->Cortex-M 0 • …GCC C Compiler->Directories: hozzáadni a projecten belül a CMSIS mappát • …GCC C Compiler->Miscellanous->Language standard: ISO C 99 with GNU extensions • Majd a …GCC C linker-> stm 32_flash. ld

Szükséges fájlok összegyűjtése • A kontrollerhez letöltött libraryból fájlokat kell összeválogatni • • •

Szükséges fájlok összegyűjtése • A kontrollerhez letöltött libraryból fájlokat kell összeválogatni • • • STM 32 F 0 xx_Std. Periph_Lib_V 1. 0. 0LibrariesCMSISDeviceSTSTM 32 F 0 xxInclude LibrariesCMSISDeviceSTSTM 32 F 0 xxSourceTemplatesTrue. STUDIO. s ASM file ->A kiterjesztést. S-re átírni (nagy. S) LibrariesCMSISDeviceSTSTM 32 F 0 xxSourceTemplates ebből a system_stm 32 f 0 xx. c LibrariesCMSISInclude összes. H LibrariesSTM 32 F 0 xx_Std. Periph_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: …ProjectSTM 32 F 0 xx_Std. Periph_TemplatesTrue. STUDIOProjectstm 32_flash. ld És a konfigfájl, ez lehet innen: …ProjectSTM 32 F 0 xx_Std. Periph_ExamplesGPIOIOTogglestm 32 f 0 xx_conf. h

Mintaprojectek • Tök jól használható mintakódok vannak a. zip fájlban a ProjectSTM 32 F

Mintaprojectek • Tök jól használható mintakódok vannak a. zip fájlban a ProjectSTM 32 F 0 xx_Std. Periph_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

stm 32 f 0 xx_conf. h • Csak azokat a fájlokat kapcsoljuk be amit

stm 32 f 0 xx_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 stm 32 f 0 xx_conf. h fájlt

Hibák • Assert_param-> be kell incluedolni a stm 32 f 0 xx_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

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…

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ó • 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é

Szoftveres késleltetés • Fontos a volatile kifejezés • Ezt írjuk a main() elé

GPIO init • A panelon a PC 8 -as lábon lévő LED-et akarjuk villogtatni

GPIO init • A panelon a PC 8 -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

Egészítsük ki a main-t! • Save + Build

Letöltés • STM 32 ST-LINK Utility • File open-> Projectrelease. . . hex •

Letöltés • STM 32 ST-LINK Utility • File open-> Projectrelease. . . hex • OK->Program-> • Majd a boardon reset gomb • Örül!

Következő project: PWM • • • PC 9 LED-en ->adatlap ->TIM 3_CH 4 Alteratív

Következő project: PWM • • • PC 9 LED-en ->adatlap ->TIM 3_CH 4 Alteratív funkcióba átkapcsolni TIM 3 -nak órajelet adni Időalapot beállítani Output. Compare modult beállítani Tetszőlegesen kitöltési tényezőt állítani

Timer Init

Timer Init

main() kiegészítése • Build majd Press play on tape

main() kiegészítése • Build majd Press play on tape

IT kezelés • Mi lenne ha, nem soft módon késleltetnénk, hanem IT-vel? • Már

IT kezelés • Mi lenne ha, nem soft módon késleltetnénk, hanem IT-vel? • Már jár egy timerünk, 100 Hz-el • Írjunk egy IT rutint, ami a kék LED-et kapcsolgatja!

IT kezelő konfigolása

IT kezelő konfigolása

IT handler • Létrehozni az IT kezelő fgv-t, a fgv nevét a startup. S

IT handler • Létrehozni az IT kezelő fgv-t, a fgv nevét a startup. S fájlból lehet kihámozni • A flaget nekünk kell törölni

A main() kiegészítése • Globális változók (volatile!)

A main() kiegészítése • Globális változók (volatile!)

Hardfault handler • Mint a kékhalál a PC-nél. • Célszerű belerakni egy LED bekapcsolását

Hardfault handler • Mint a kékhalál a PC-nél. • Célszerű belerakni egy LED bekapcsolását

A mai alkalom után tudunk… • GPIO-t kezelni • Timer-t elindítani, OC modult használni

A mai alkalom után tudunk… • GPIO-t kezelni • Timer-t elindítani, OC modult használni • IT-t bekapcsolni, használni • Szabad otthon kísérletezni : )

Köszönöm a figyelmet!

Köszönöm a figyelmet!