Predhodni članek, objavljen v reviji Svet Elektronike, je podal že sila zahtevno implementacijo RFID oznak, in sicer smo za demonstracijo uporabili tip kartic Mifare Classic 1K [1], s katerim smo implementirali prispodobo kavnega avtomata. Po tehtnem premisleku in verjetno tudi opustitvi razvoja CooCox razvojnega orodja (v zadnjem času je njihova spletna stran sila nedostopna), sem se odločil, da vam predstavim delo s HAL knjižnicami in njihove prednosti ter slabosti.
V tokratni izdaji revije Svet Elektronike bomo tako napravili preskok iz standardne periferne knjižnice na novejšo zasnovo programiranja STM mikrokontrolerjev, pri katerem lahko periferijo nastavimo kar s klikanjem! Tako bomo v prvem delu spoznali orodje, s katerim je mogoče konfigurirati procesorje družine STM32F4 (seveda so podprte tudi ostale, a zaenkrat bomo predstavili le F4 serijo, ki smo jo do sedaj kar dobro spoznali). V prvem delu bomo predstavili razvojna orodja, s katerimi bomo v nadaljevanju razvijali aplikacije. Da osvojimo osnove razvojnih orodij, smo si zamislili sila enostavno aplikacijo, katera bo za generiranje ure uporabila zunanji kristal, nato pa v sekundnem intervalu preklapljala LED diode plošče.
Razvojna orodja
Za razvoj novih aplikacij ugnezdenih sistemov bomo presedlali na novejši trend programiranja preko HAL knjižnic. Kot vsaka stvar ima to določene prednosti, a tudi slabosti. Prednosti so vsekakor grafično programiranje, prenosljivost kode med različnimi družinami STM procesorjev in avtomatizirano konfiguriranje periferije glede na izbrane parametre. Z drugimi besedami, potrebno je vložiti manj napora za izdelavo aplikacije. Slabosti najdemo predvsem v zelo obsežni generirani binarni kodi, ki so še posebej nevarne v zahtevnih in hitrih ISR rutinah – enostavno se zgodi, da se prekinitev prepočasi izvede na mikrokontrolerju, ki bi to moral obdelati za malo malico. A tudi na tem področju se stanje izboljšuje, kajti z novimi različicami počasi dodajajo komplet knjižnic Low-Level ali krajše LL, ki so na nivoju standardne periferne knjižnice.
Prvo orodje (čeprav mi sicer ni jasno, zakaj je to ločeno) bo razvojno okolje IDE, ki ga imenujejo SW4STM32 [2]. Ker si je to ime nenormalno težko zapomniti, dajmo povedati, da je ime sestavljeno iz SW 4 STM32 ali programska oprema za STM32. Za tiste, ki ste že uporabljali to okolje, a ga poznate pod francoskim imenom ACx, naj povem, da ta IDE ni nič drugega kot AC6 (navadno ga iščem kar pod tem imenom).
Na kratko, če naredimo primerjavo med CooCox in omenjenim IDE, sta oba osnovana na Eclipse okolju, vendar smo pri CooCox morali ločeno namestiti prevajalnik (arm-eabi toolchain), ki pa je sedaj že vključen v samo razvojno okolje AC6. Druga dobra lastnost AC6 orodja je, da kot vsak Eclipse, podpira teme in barve izvorne kode, kar zna blagodejno vplivati na vaše oči v poznih večernih urah. Teme mi nikakor ni uspelo zamenjati v CooCox razvojnem okolju.
Programiranje s HAL knjižnicami (1) – Razvojna orodja
2017_SE253_37