- 1. Razvoj zahtev za izdelke
- 2. Oblikovanje sistema in razvoj algoritmov
- 3. Kodiranje vdelane programske opreme
- Testiranje vdelane programske opreme
Razvoj programske opreme je na splošno težaven, za vgrajeni sistem pa je na povsem novi stopnji težavnosti. Razvijalci vdelane programske opreme morajo dobro poznati razvoj strojne opreme in razumeti notranje delovanje vdelanega procesorja. Za današnji članek bom delil orodja in nasvete, s katerimi bi lahko dosegli visoko stopnjo učinkovitosti in odpravili nekatere stvari, zaradi katerih je razvoj vdelane programske opreme dolgočasen.
Razvoj vdelane programske opreme gre skozi podoben razvojni postopek kot pri "običajnem" razvoju programske opreme. Ne glede na sprejeti model razvoja / upravljanja, razvoj vgrajene programske opreme na splošno vključuje spodnje korake:
- Razvoj zahteve po izdelku
- Oblikovanje sistema in razvoj algoritmov
- Kodiranje
- Testiranje
Preučili bomo nekatere težave, ki jih prinašajo te faze, in nekatera orodja, ki bi lahko povečala učinkovitost in produktivnost.
1. Razvoj zahtev za izdelke
Specifikacije izdelkov so pogosto narejene z mislijo na oblikovalce plošč. Običajno vsebuje malo informacij, ki bi lahko pomagale pri razvoju vdelane programske opreme, zato se razvijalec vdelane programske opreme konča z napačnim dokumentom na 250 straneh (v povprečju), ki ga ni mogoče uporabiti za sklice in če ne bo natančno preučen, bi lahko zlahka privedel do previdnosti pri oblikovanju, kar, vodijo k podaljšanju časovnega okvira projekta, če ne celo celotni neuspeh projekta. Dokumenti redko vsebujejo informacije o registrih ali njihovih bitnih poljihmed drugim to stane razvijalcem vdelane programske opreme več delovnih ur, ko iščejo po dokumentu, da prepoznajo stvari, na primer kateri register spada v katero skupino in katero bitno polje pripada kateremu registru. Spodaj je nekaj nasvetov, ki bi jih lahko upoštevali, da bi zagotovili razvoj uporabnejših dokumentov s projektnimi specifikacijami.
Uporaba registrskih opisov
Kot smo že omenili, morajo razvijalci vdelane programske opreme razumeti zapletenost vseh registrov, spominov itd. Vseh nadzornih elementov (CPU, MCU itd.) V projektu, da lahko učinkovito nadzorujejo vse dele sistema. Da bi to lahko postavili, lahko razvijalci vdelane programske opreme zagotovijo, da dokument s specifikacijami vsebuje ustrezen opis registrov skupaj s pomnilniškimi zemljevidi. Vsem registrom v kontrolnem elementu je bilo mogoče dodeliti značilno ime, ki jih je enostavno prepoznati v celotnem dokumentu, vsi pa so lahko vroče povezani, tako da vodijo do seznama v dokumentu, ki navaja ime, lokacijo, blok in naslov vsakem registru.
Opisi nalog
Drug način, kako lahko dokumente s specifikacijami uporabimo za razvijalce vdelane programske opreme, je opisovanje, kaj naj bi naredil posamezen blok in kako naj to stori. Tudi na tej stopnji bi morali biti načrti za ravnanje z napakami v vsakem bloku. V bistvu je to videti tako, kot pravi razvijalec vdelane programske opreme; "Ko pridem sem, moram narediti to, to in to, da se to, to in ono ne zgodi". To pomaga pri usmerjanju dela razvijalca in pomaga pri oceni projekta, še preden se načrt začne, da bi ugotovili morebitne napake in napake ter prihranili dragocen čas in denar.
Obstajajo še drugi dejavniki, vključno s strukturo dokumentov, uporabo pisav, ki jih je mogoče brati (s čimer lahko razvijalci delajo tudi, če so utrujeni), grafikoni in slike, kjer je to mogoče, kar lahko po tej stopnji poveča učinkovitost ekipe za vdelano programsko opremo.
2. Oblikovanje sistema in razvoj algoritmov
Ta stopnja vključuje razvoj psevdokod, diagramov poteka, državnih strojev in vsega, kar je povezano z zasnovo vdelane programske opreme. V tej fazi je mogoče uporabiti kar nekaj orodij, ki pomagajo organizirati misli, raziskati zapuščino / predhodno napisano programsko opremo okoli projekta in razviti lasten diagram poteka, državni stroj itd. Nekatera od teh orodij so opisana spodaj.
PIM-ji
Na tej stopnji razvoja izdelka razvijalci pogosto pišejo, ko zbirajo vire v projektu od spletnih povezav do formul itd. Eden najboljših načinov za sledenje tem informacijam, da so kasneje koristne, je uporaba PIM (orodja za upravljanje informacij o izdelkih). Obstaja kar nekaj PIM-jev, vendar jih bom omenil z nekaj izjemnimi lastnostmi.
1. Evernote
Evernote vam pomaga zapisovati zapise, ki so na voljo na vseh platformah, tako da lahko v računalniku preverite zapiske, ki ste jih naredili v avtobusu domov. Opombe so dobro organizirane in jih je mogoče v celoti iskati, tako da boste vedno našli tisto, kar potrebujete.
2. TrunkNote
Trunk note je Wiki podobna aplikacija za zapisovanje zapiskov. Vpisuje vso organizacijsko moč wikija. Je aplikacija, ki temelji na mobilnem telefonu, vendar jo je mogoče enostavno sinhronizirati z računalnikom prek WIFI.
Druge vrste PIM-ov, kot je Tiddlywiki itd. Vsak od njih ima funkcije, zaradi katerih je privlačnejši za določene posameznike, in lahko vzame nekaj vzorcev, preden se končno odločite za enega.
Razumevanje zapuščinske kode
Druga skupina orodij, ki so zelo koristna v fazi načrtovanja, so orodja za razumevanje starih kod. V primerih, ko je izdelek, ki je zasnovan, izboljšana različica prejšnjega izdelka, se lahko razvijalcu zdi koristno pregledati že opravljeno delo, da bi dobili nekaj idej in morda delčke kode za ta novi projekt. To je lahko precej dolga pot, še posebej, če niste bili del ekipe, ki je zgradila prejšnjo programsko opremo. Obstaja kar nekaj programske opreme, ki pomaga graditi drevesa, ustvarjati dokumentacijo in diagrame poteka iz že napisane kode.
1. kisik
Doxygen je precej močno orodje, ki pomaga ustvarjati dokumentacijo iz izvornih kod. Zasnovan je bil predvsem za delo s C ++, deluje pa tudi s C, Pythonom in nekaterimi drugimi jeziki. Ima zmožnost izvlečenja strukture kode katere koli kode, ki zagotavlja samodejno generirane grafe odvisnosti in diagrame dedovanja za lažjo vizualizacijo kode.
2. Graphviz
Po njihovem spletnem mestu Graphviz pomaga predstaviti strukturne informacije kot diagrame abstraktnih grafov in omrežij. Uporablja se lahko skupaj z Doxygenom za boljše razumevanje grafike, ki jo proizvaja.
3. Srecord
Srecord je močno orodje za obdelavo slik vdelane programske opreme in pretvorbo med različnimi formati datotek. Uporablja se lahko za izračun in izvajanje CRC-jev in kontrolnih vsot na bajtnih blokih, popravljanje datotek z napakami, ustvarjenimi zaradi napačnih orodij, in med drugim filtriranje ali premikanje delov datotek. Več informacij o njegovi uporabi najdete na njeni strani SourceForge.
Nekatera druga orodja, ki spadajo v to kategorijo, so CrystalRev in Hexplorer med drugim.
Razvijanje algoritmov
Vsi agregati raziskav in zapisov pri razvoju algoritmov, ki se za projekt ločijo v psevdokode in diagrame poteka. Obstaja več orodij za razvoj diagramov poteka in čeprav večina od njih ni izključno namenjena razvoju vdelane programske opreme, ponujajo koristne in pomembne funkcije, ki preprosto opravijo delo in pomagajo vzdrževati lestvice skozi ves razvojni cikel izdelka. Spodaj je nekaj najboljših orodij za diagrame poteka.
1. QFSM
QFSM je grafično orodje za načrtovanje in simulacijo končnih avtomatov. Z zmožnostjo simulacije modelov je boljši od večine druge programske opreme v tej skupini. To je še posebej koristno, ko načrtujete državne stroje za FPGA in podobno ciljno strojno opremo.
2. Lucidna karta
Lucid chart je verjetno najboljša in najbolj prilagodljiva programska oprema za diagrame poteka. Je spletna in ima skupinske funkcije, ki vam omogočajo delo med več napravami in sprotno sodelovanje s soigralci.
3. Microsoft Visio
Visio je trenutno eno najboljših grafičnih orodij. Ima vrsto predmetov z različnih področij, ki omogočajo enostavno opisovanje česar koli. Vendar pa nima funkcij, ki izboljšujejo sodelovanje med skupinami, in ga je mogoče uporabljati samo na Windows računalniku, na katerem je nameščen.
4. Google Diapozitivi
Ena ključnih stvari pri razvoju izdelkov v današnjem svetu je uporaba orodij, ki skupinam omogočajo učinkovito sodelovanje, ne glede na to, kje so, in to je ena stvar, ki jo Google diapozitivi prinesejo na svoje mesto. Uporablja se lahko za razvoj vseh vrst grafikonov, od diagramov poteka programske opreme do organizacijskih in miselnih zemljevidov. Temelji na oblaku in deluje v skoraj vseh priljubljenih brskalnikih.
Obstaja več drugih orodij za ustvarjanje diagramov poteka in splošni razvoj algoritmov, kot običajno, vsako s svojimi prednostmi in slabostmi.
3. Kodiranje vdelane programske opreme
Vse, kar je bilo omenjeno do tega trenutka, vodi sem. V svetu SDK-jev in IDE-jev je izbira orodij v tej fazi odvisna od ciljne naprave in funkcij, ki jih je treba vgraditi v napravo, zato bom iz razprave izključil priljubljene SDK-je in IDE-je, kot je MPLAB itd. do orodij, ki se po naravi bolj dopolnjujejo.
1. QT (razvoj uporabniškega vmesnika)
Zasloni (interaktivni ali ne) so danes najbolj priljubljeni mediji za zagotavljanje povratnih informacij uporabnikom, QT-jev SDK pa je eden najboljših in verjetno nikomur v vgrajenem krogu ni tuj. Ponuja funkcije "povleci in spusti", ki olajšajo razvoj zapletenih aplikacij, ki temeljijo na GUI, za vdelane naprave, ne glede na ciljno platformo ali programski jezik, ki se uporablja za celoten razvoj projekta. V bistvu odpravlja stres, povezan z uporabo kode za ustvarjanje uporabniških vmesnikov.
2. (Hitro izdelava prototipov)
Eno največjih ozkih grl pri razvoju vdelane programske opreme je dejstvo, da strojna oprema običajno ni na voljo za testiranje stvari na poti, medtem ko se programska oprema razvija. Včasih, ko je na voljo, bi morali razvijalci vdelane programske opreme čakati ves čas, ko je bila strojna oprema pripravljena, da naredi malo ali nič. To podaljša čas izvedbe in ne ustvarja prostora za takšno sinhronizacijo med inženirji strojne opreme in razvijalci vdelane programske opreme, ki bi povečala kakovost izdelka. Da bi rešili to težavo, so fantje iz podjetja VaST ustvarili platformo za virtualno prototipiranje na ravni elektronskih sistemov, ki bi jo lahko uporabili za izdelavo prototipa navidezne strojne opreme. na katerem je mogoče izvršiti vdelano programsko opremo za določitev zmogljivosti sistema, preden je strojna oprema pripravljena.
3. Kisik (dokumentacija)
Eden najpomembnejših delov pisanja katere koli kode je dokumentacija in eno izmed najbolj priljubljenih orodij za to je Doxygen. Poleg njegove uporabe za razumevanje stare programske opreme ima Doxygen možnost samodejnega pridobivanja komentarjev iz kode in ustvarjanja dokumentacije, ki jo vključuje. Strukture kisika vključujejo datoteke grafično in ustvarjajo reference za vsako funkcijo, spremenljivko in makro, ki se uporabljajo v vaši kodi. Diagrame poteka in diagrame pretoka podatkov je mogoče vdelati tudi v dokumentacijo s kombiniranjem Doxygena in graphviz.
4. GIT (sistemi za nadzor različic)
Težko je verjeti, da kdo danes razvija kakršno koli programsko opremo brez nekakšnega sistema za nadzor različic, toda za vsak primer to je precej slaba ideja, ki bi lahko privedla do napak, ki vas bodo stale časa in denarja. Git izstopa med vsemi orodji za nadzor različic iz več razlogov. Je odprtokodna, hitra, učinkovita in večinoma lokalna. Poleg omenjenega je vredno omeniti tudi orodja, kot je subverzija.
Testiranje vdelane programske opreme
Testiranje je pomemben del razvojnega procesa za kar koli. Podjetja izgubijo na tisoče dolarjev ob odpoklicu naprav zaradi napak vdelane programske opreme, zato je to del razvoja, ki ga je treba jemati zelo resno. Pogosto se to naredi z roko v roki s kodiranjem in prvi nabor orodij za testiranje kode je verjetno odpravnik napak znotraj IDE ali SDK, ki se uporablja za projekt. Testiranje je na voljo v različnih oblikah in se izvaja v različnih fazah, zato vključuje različna orodja. Orodja za testiranje tvorijo razvoj vdelane programske opreme od validacije zasnove do statične analize in orodij za izvajanje med izvajanjem. Spodaj je nekaj orodij, ki se mi zdijo resnično koristna.
1. Crystal REV
Crystal revs je orodje za preučevanje kode. Uporablja se lahko za ustvarjanje diagrama poteka iz kode C / C ++, zaradi česar je odlično orodje za pregled lastne kode in preverjanje, ali je bila izvedena predhodna zasnova. S kristalno hitrostjo boste lahko hitro videli razliko med zasnovo in izvedbo. Njegova sposobnost ustvarjanja diagramov poteka, podatkov in pretoka klicev iz kod je tudi orodje, uporabno za analizo starejše kode.
2. PC-Lint
PC-lint je eno najstarejših orodij za preizkušanje vdelane programske opreme. Sposoben je analizirati programsko opremo za prepoznavanje napak, varnostnih ranljivosti in zagotoviti, da je bila koda napisana v skladu z industrijskimi standardi. Podobna orodja med drugim vključujejo polispace in LRDA, jajčevce in Tessy.
3. Wireshark
To je priročno pri gradnji omrežnih naprav. V bistvu gre za vdihavanje paketov in vam lahko pomaga pri ogledu podatkov, ki jih prenaša vaša naprava. To bi lahko pomagalo pri zaščiti naprave.
4. Gonilnik navideznih serijskih vrat
Programska oprema VSPD by eltima je orodje, ki sem ga pred kratkim predstavil tudi prijatelj. To je zelo priročno pri delu z gonilniki naprav in drugimi razvoji, povezanimi s pristanišči. Navidezna serijska com vrata vam omogočajo, da brez ciljne naprave preizkusite vedenje com portov. Lahko ustvarite neomejeno število vrat, ki lahko posnemajo vse nastavitve resničnih pristanišč. Programska oprema ima na voljo tudi funkcije, kot so delitev serijskih vrat, združitev vrat Com, med drugimi zanimivimi funkcijami uporabite povezave com port.
To je to za ta članek, hvala, ker ste si vzeli čas za branje. Čeprav ni mogoče verjetno našteti vseh orodij, upam, da so vam nekatera od njih koristna.