Renesas Electronics Corporation
Avtor: Brad Rex
Trženje elektronskih izdelkov je bistveno drugačno kot pred desetimi leti. Poleg običajnega napredka na področju strojnih električnih komponent ter vse večje gostote in izboljšanja zmogljivosti mikrokontrolerjev in mikroprocesorjev so se eksponentne spremembe na področju težavnosti osredotočile na programsko opremo.
Dva največja dejavnika, ki sta povzročila to hitro spremembo na področju razvoja programske opreme, sta bila odprtje trgovine z aplikacijami za mobilne telefone in vseprisotnost brezžične povezljivosti. Ti dve tehnologiji sta hkrati obogatili naše naprave in jih naredili bolj uporabne, hkrati pa povečali zapletenost izdelkov in inženirskega dela, ki stoji za njimi. Oglejmo si, kako so strnjen cikel načrtovanja izdelkov in spremembe pri razvoju programske opreme povečale obremenitev inženirjev in katera orodja obstajajo za razbremenitev.
Številna podjetja in razvijalci se usmerjajo k filozofiji «fail fast», pri kateri so ustvarjanje idej, testiranje in tržno preverjanje stisnjeni v tesno zanko, da bi dosegli želeni rezultat. V tem primeru je rezultat sprejetje določenega končnega izdelka ali storitve na trgu. To se bistveno razlikuje od bolj tradicionalnega serijskega razvojnega toka, pri katerem se veliko časa porabi za izpopolnjevanje zamisli, razvoj strojne opreme, delo na programski opremi in končno izdelavo izdelka, ki se uvede na trg.
V nasprotju s filozofijo „fail fast“, kjer inženirske ekipe „skunkworks“ nenehno razvijajo, preizkušajo in razvijajo potrditve konceptov izdelkov, hitro prototipiranje z razvojnimi kompleti, odprtokodnimi rešitvami ter preizkušenim in resničnim „breadboardingom“ omogoča inženirjem programske opreme hitro preizkušanje nove strojne programske opreme naprave, ki lahko enostavno pokaže, kako bo končni izdelek videti. Če so uspešni, lahko hitro razvijejo izdelek in ga dajo na trg pred konkurenco. Ta postopek se nato ponovi pri naslednjem izdelku.
Kot smo že omenili, je težava razvijalcev programske opreme v povezavi z zunanjim svetom. Če se ozremo nazaj, še pred slabim desetletjem številne naprave niso bile povezane z zunanjim svetom. Bilo je manj mobilnih aplikacij za nadzor in interakcijo z njimi. Posodobitve, če so sploh bile, so se večinoma izvajale prek USB vmesnika, računalniške aplikacije za izvajanje teh posodobitev pa so bile v najboljšem primeru površne, z opozorilnimi okni, ki so kričala, naj se naprava ne odklopi ali izgubi energije, sicer boste imeli na koncu okvarjeno napravo. Glede na to je bila programska oprema za te izdelke bolj robustna, saj se je vedelo, da je v prihodnosti morda ne bo mogoče posodobiti.
Če se hitro prestavimo v današnji čas, je večina naprav na trgu povezana z mobilnim telefonom ali lokalnim omrežjem prek Bluetooth ali Wi-Fi povezave. Nizkocenovna in nizkoenergijska omrežja LTE Cat-M1 in NB-IoT postajajo vse bolj priljubljena za stalno povezavo. Poznavanje programske opreme teh novih nizov in komunikacijskih protokolov pomeni, da se inženirski napori z gole kode zdaj prenašajo na uporabo RTOS sistema, kot sta Amazon FreeRTOS ali Azure RTOS podjetja Microsoft. Inženirji morajo povečati svoje znanje in miselnost načrtovanja, da lahko razvijajo v okolju z nitmi.
Te stalne povezave z zunanjim svetom zdaj povezujejo ugnezdeno napravo z mobilnimi aplikacijami, storitvami v oblaku, verigami orodij in algoritmi umetne inteligence in strojnega učenja ter brezžičnimi posodobitvami. To ima nekaj negativnih pomanjkljivosti. Nova orodja je treba prenesti in namestiti, včasih pa je težko najti ta orodja, zlasti na novih tehnoloških področjih, kjer je običajno veliko različnih ponudb, saj trg še ni ustaljen. Poleg obsežnih namestitev orodij je največja ovira učenje različnih tehnologij. Mnoge od teh tehnologij so videti in se počutijo povsem drugače kot pri delu s standardnim C jezikom, preklapljanje konteksta pa prinaša neučinkovitost. Čas, ki je potreben samo za prikaz delujoče predstavitve ali preizkusa koncepta, se začne povečevati, ko dodajamo dodatne dele.
Na tej točki je treba pojasniti eno stvar. Vsi inženirji, ki delajo na izdelku, morajo natančno poznati vse sestavne dele konstrukcije. Inženirji programske opreme morajo razumeti, kako komunicirati z različnimi vodili v napravi. Vedeti morajo, kako ustvariti niti in z njimi komunicirati. Toda ovira, ki jo mora naša industrija premagati, je obremenjevanje inženirskega osebja s tem, da mora postati strokovnjak na samem začetku cikla načrtovanja, da bi lahko uporabilo demo projekt ali si ogledalo delovanje naprave. Inženirji morajo biti prepričani, da lahko z napravami dosežejo svojo vizijo izdelka, in videti pomeni verjeti. Ko ste prepričani, da lahko vse komponente zadovoljijo vaše potrebe, si lahko inženirsko osebje vzame dovolj časa za študij in učenje o vseh komponentah, da bi povečalo in iz naprav izvleklo vsak delček zmogljivosti.
Po pravem inženirskem zgledu, ko obstaja težava, se rešitve za njeno rešitev običajno pojavijo na vrhu. Orodja za pospešen razvoj programske opreme, kot je Renesasov Quick-Connect Studio (QCStudio), si prizadevajo znižati razvojno letvico v fazi izdelave prototipov. Spletno orodje uporabnikom omogoča, da povlečejo in spustijo komponente na ravni rešitve. Ko ste zadovoljni z izbranimi komponentami, lahko QCStudio samodejno konfigurira naprave in ustvari prvi delujoči projekt z uporabo teh komponent. Inženirjem programske opreme se ni treba učiti o zapletenem multipleksiranju priključkov, povezavah vrat ali nastavitvah registrov samo zato, da bi preizkusili prototip. Orodje je polnopravni IDE, kodo pa lahko spreminjate neposredno v brskalniku. Ker QCStudio temelji na oblaku, se sestavljanje opravi na daljavo na strežniku v oblaku, ki je bogat z viri in zmogljiv, zato za sestavljanje kode ni potreben zmogljiv namizni ali prenosni računalnik. Po sestavljanju inženir nastavi strojno opremo natančno tako, kot je prikazano v programu QCStudio, prenese binarno sliko in takoj vidi rezultate.
Inženirji za ugnezdeno tehnologijo se soočajo s številnimi izzivi pri uvajanju izdelka na trg. Ker so programska oprema in sistemi vse bolj zapleteni, se bo potreba po učinkovitih in krajših ciklih načrtovanja le še povečevala. Z uporabo agilnih metodologij, ponovno uporabo skupnih ogrodij in arhitektur ter orodij za avtomatizacijo lahko inženirji programske opreme in sistemov sledijo dinamični naravi industrije in zagotavljajo izdelke višje kakovosti v krajšem času.