1 / 30

ARM tanfolyam

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

hilda
Download Presentation

ARM tanfolyam

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ARM tanfolyam 2. előadás

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

  3. 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

  4. 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 )

  5. Ú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 legyenpipa • Majd Finish

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. stm32f0xx_conf.h • Csak azokat a fájlokat kapcsoljuk be amit használunk, mert a beincluedolt fájlokat befordítja • Save! • Majd build!

  12. Hibák • Assert_param-> be kell incluedolni a stm32f0xx_conf.h fájlt a periféria drivereknél a .c-be • Javítás:

  13. 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

  14. Hibajavítás után… • Hibátlan fordítás • Nekiállhatunk értelmeset kódolni…

  15. LED villogtató • Csináljunk egyszerű hello world progit • Kell hozzá: • Késleltetés • LED villogtatás

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

  17. GPIO init • A panelon a PC8-as lábon lévő LED-et akarjuk villogtatni • Órajelet adni a perifériának->ADATLAP

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

  19. Letöltés • STM32 ST-LINK Utility • File open-> \Project\release\.... .hex • OK->Program-> • Majd a boardon reset gomb • Örül!

  20. Következő project: PWM • PC9 LED-en ->adatlap ->TIM3_CH4 • Alteratív funkcióba átkapcsolni • TIM3-nak órajelet adni • Időalapot beállítani • OutputCompare modult beállítani • Tetszőlegesen kitöltési tényezőt állítani

  21. Timer Init

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

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

  24. IT kezelő konfigolása

  25. 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

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

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

  28. 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 :)

  29. Köszönöm a figyelmet!

More Related