- 1. Produkto reikalavimo plėtra
- 2. Sistemos projektavimas ir algoritmų kūrimas
- 3. Įterptosios programinės įrangos kodavimas
- Įterptosios programinės įrangos testavimas
Programinės įrangos kūrimas paprastai yra sunkus, tačiau įterptinei sistemai tai yra visiškai naujas sunkumų lygis. Programinės aparatinės įrangos kūrėjai turi gerai išmanyti aparatūros kūrimą ir suprasti vidinį įdėto procesoriaus darbą. Pateikdamas šios dienos straipsnį dalinsiuosi įrankiais ir patarimais, kurie galėtų būti naudojami norint pasiekti aukštą efektyvumo lygį ir pašalinti kai kuriuos dalykus, dėl kurių firmware kūrimas tampa nuobodus.
Įterptosios programinės įrangos kūrimas vyksta panašiai kaip ir „įprastas“ programinės įrangos kūrimo procesas. Nepaisant priimto kūrimo / valdymo modelio, įterptosios programinės įrangos kūrimas paprastai apima šiuos veiksmus:
- Produkto poreikio plėtra
- Sistemos projektavimas ir algoritmų kūrimas
- Kodavimas
- Testavimas
Mes išnagrinėsime kai kuriuos su šiais etapais susijusius sunkumus ir kai kurias priemones, kurios galėtų padidinti efektyvumą ir produktyvumą.
1. Produkto reikalavimo plėtra
Produktų specifikacijos dažnai daromos atsižvelgiant į plokštės dizainerius. Paprastai joje yra nedaug informacijos, kuri galėtų padėti kurti programinę aparatinę įrangą, todėl įterptosios programinės įrangos kūrėjas gauna 250 puslapių (vidutinį) dokumentą, kurio negalima naudoti nuorodoms, ir jei jis nebus kruopščiai apsvarstytas, jis gali lengvai sukelti dizaino aplaidumą, kuris savo ruožtu, paskatins projekto laikotarpio pratęsimą, jei ne bendrą projekto nesėkmę. Dokumentuose retai yra informacijos apie registrus ar jų bitų laukusbe kita ko, tai kainuoja programinės aparatinės įrangos kūrėjams keletą darbo valandų, kai jie ieško dokumento, kad nustatytų tokius dalykus, kaip kuris registras priklauso kuriai grupei ir kuris bitų laukas priklauso kuriam registrui. Toliau pateikiami keli patarimai, kuriuos būtų galima apsvarstyti siekiant užtikrinti naudingesnių projekto specifikacijų dokumentų rengimą.
Registrų aprašų naudojimas
Kaip aptarta aukščiau, programinės aparatinės įrangos kūrėjai turi suprasti visų projekto valdymo elementų (procesoriaus, MCU ir kt.) Visų registrų, atminties ir pan. Subtilybes, kad galėtų efektyviai valdyti visas sistemos dalis. Norėdami tai įdiegti, programinės aparatinės įrangos kūrėjai gali užtikrinti, kad specifikacijos dokumente būtų tinkamas registrų aprašymas kartu su atminties žemėlapiais. Visiems valdymo elemento registrams galėtų būti priskirtas skiriamasis vardas, kurį būtų lengva identifikuoti dokumente, ir jie visi galėtų būti susieti taip, kad dokumente atsirastų sąrašas, kuriame būtų nurodytas asmens vardas, vieta, blokas ir adresas. kiekvieno registro.
Užduočių aprašymai
Kitas būdas, kaip specifikacijos dokumentai gali būti naudingi įterptosios programinės įrangos kūrėjams, yra aprašymas, ką kiekvienas blokas turėtų daryti ir kaip tai turėtų daryti. Taip pat šiame etape kiekviename bloke turėtų būti numatyti klaidų tvarkymo planai. Iš esmės tai atrodo kaip programinės aparatinės įrangos kūrėjo sakymas; „Kai aš čia pateksiu, aš turiu padaryti tai, tai ir tai, užtikrindamas, kad to, ano ir to neatsirastų“. Tai padeda orientuoti kūrėjo darbą ir padeda įvertinti projektą dar prieš pradedant projektavimą nustatyti galimas klaidas ir klaidas, taupant brangų laiką ir pinigus.
Yra ir kitų veiksnių, įskaitant dokumentų struktūrą, lengvai skaitomų šriftų naudojimą (su tuo kūrėjai gali dirbti net ir pavargę), diagramas ir paveikslėlius, jei įmanoma, tai gali padidinti firmware komandos efektyvumą po šio etapo.
2. Sistemos projektavimas ir algoritmų kūrimas
Šis etapas apima pseudokodų, schemų, būsenos mašinų ir visko, kas susiję su programinės įrangos kūrimu, kūrimą. Šiame etape nemažai įrankių gali būti naudojami organizuoti mintis, tyrinėti seną / anksčiau parašytą programinę įrangą aplink projektą ir sukurti savo schemą, valstybinę mašiną ir pan. Kai kurie iš šių įrankių aptariami toliau.
PIM
Šiame produkto kūrimo etape kūrėjai linkę daug rašyti, kai renka projekto išteklius nuo internetinių nuorodų iki formulių ir kt. Vienas iš geriausių būdų sekti šią informaciją, kad vėliau ji būtų naudinga, yra PIM naudojimas. (informacijos apie produktą valdymo) įrankiai. Yra nemažai PIM, tačiau paminėsiu keletą su keliomis išskirtinėmis savybėmis.
1. „Evernote“
„Evernote“ padeda jums užsirašyti bet kurioje platformoje esančias pastabas, kad galėtumėte patikrinti užrašą, kurį padarėte savo kompiuteryje važiuodami autobusu namo. Užrašai yra gerai sutvarkyti ir juose galima visiškai ieškoti, todėl visada rasite tai, ko jums reikia.
2. „TrunkNote“
„Trunk note“ yra į „Wiki“ panaši užrašų rengimo programa. Tai atneša visą vikių organizacinę galią į užrašus. Tai yra mobiliojo telefono programa, tačiau ją galima lengvai sinchronizuoti su kompiuteriu per WIFI.
Kiti PIM tipai, pvz., „Tiddlywiki“ ir kt.
Senojo kodekso supratimas
Kita įrankių grupė, kuri yra labai naudinga projektavimo etape, yra įrankiai, skirti suprasti senus kodus. Tais atvejais, kai kuriamas produktas yra patobulinta ankstesnio produkto versija, kūrėjui gali būti naudinga peržiūrėti jau atliktą darbą, kad gautų idėjų ir galbūt kodo bitų šiam naujam projektui. Tai gali būti gana ilgas kelias, ypač jei nebuvote komandos, sukūrusios ankstesnę programinę įrangą, dalis. Yra nemažai programinės įrangos, padedančios kurti medžius, kurti dokumentus ir schemas iš jau parašyto kodo.
1. Deguonis
„Doxygen“ yra gana galingas įrankis, padedantis sukurti dokumentaciją iš šaltinio kodų. Jis daugiausia buvo skirtas dirbti su C ++, bet taip pat veikia su C, Python ir kai kuriomis kitomis kalbomis. Jis turi galimybę išskleisti bet kurio kodo struktūrą, pateikdamas automatiškai sukurtas priklausomybės diagramas ir paveldėjimo diagramas, kurios padės vizualizuoti kodą.
2. Graphviz
Pasak jų interneto svetainės, graphviz padeda pateikti struktūrinę informaciją kaip abstrakčių grafikų ir tinklų diagramas. Jis gali būti naudojamas kartu su „Doxygen“, kad geriau suprastumėte jo gaminamą grafiką.
3. Įrašas
„Srecord“ yra galingas įrankis, leidžiantis valdyti programinės aparatinės įrangos vaizdus ir konvertuoti skirtingus failų formatus. Juo galima apskaičiuoti ir atlikti baitų blokų CRC ir kontrolines sumas, ištaisyti klaidų failus, sukurtus dėl klaidingų įrankių grandinių, ir filtruoti ar perkelti failų sekcijas. Daugiau informacijos apie jo naudojimą galite rasti „SourceForge“ puslapyje.
Kai kurie kiti įrankiai, priskiriami šiai kategorijai, yra „ CrystalRev“ ir „ Hexplorer“ .
Algoritmų kūrimas
Visi tyrimai ir užrašų rinkiniai sudaro algoritmų sukūrimą į pseudokodus ir projekto schemas. Yra kelios schemų schemoms kurti skirtos priemonės ir, nors dauguma jų nėra skirtos tik programinės aparatinės įrangos kūrimui, jos suteikia naudingų ir svarbių funkcijų, kurios paprasčiausiai padaro darbą ir taip pat padeda išlaikyti diagramas viso produkto kūrimo ciklo metu. Žemiau pateikiami keli geriausi schemų sudarymo įrankiai.
1. QFSM
QFSM yra grafinis įrankis, skirtas projektuoti ir imituoti baigtinių būsenų mašinas. Jo sugebėjimas imituoti dizainą daro jį geresnį nei dauguma kitos šios grupės programinės įrangos. Tai ypač naudinga, kai kuriate valstybines mašinas FPGA ir panašiai tikslinei aparatinei įrangai.
2. Lucid diagrama
„Lucid“ diagrama yra neabejotinai geriausia ir lankstiausia „schemų schema“. Jis sukurtas žiniatinklyje ir turi komandos funkcijų, leidžiančių dirbti tarp kelių įrenginių ir realiu laiku bendradarbiauti su komandos draugais.
3. „Microsoft Visio“
„Visio“ yra vienas geriausių grafinių įrankių šiuo metu. Jame yra įvairių laukų objektų masyvas, leidžiantis lengvai apibūdinti bet ką. Tačiau jame nėra funkcijų, kurios sustiprina komandų bendradarbiavimą ir gali būti naudojamos tik „Windows“ kompiuteryje, kuriame jis yra įdiegtas.
4. „Google“ skaidrės
Vienas iš pagrindinių dalykų kuriant produktus šiuolaikiniame pasaulyje yra įrankių naudojimas, leidžiantis komandoms efektyviai bendradarbiauti bet kur, kad ir kur jis yra, ir tai yra vienas dalykas, kurį „Google“ skaidrės atneša. Jis gali būti naudojamas kuriant visų rūšių diagramas nuo programinės įrangos schemų iki organizacinių schemų ir minčių žemėlapių. Jis yra pagrįstas debesimis ir veikia beveik visose populiariose naršyklėse.
Kaip įprasta, yra keletas kitų schemų ir algoritmų kūrimo įrankių, kiekvienas turi savo privalumus ir trūkumus.
3. Įterptosios programinės įrangos kodavimas
Čia veda viskas, kas buvo paminėta iki šio momento. SDK ir IDE pasaulis, įrankių pasirinkimas šiame etape priklauso nuo tikslinio įrenginio ir jame įrengiamų funkcijų, dėl šios priežasties iš diskusijos išskirsiu populiarius SDK ir IDE, pvz., MPLAB ir kt. priemonėms, kurios labiau viena kitą papildo.
1. QT (GUI kūrimas)
Šiais laikais populiariausi terpės, teikiančios atsiliepimus vartotojams, yra ekranai (interaktyvūs ar ne), o QT SDK yra vienas geriausių ten ir tikriausiai niekam nepažįstamas įterptame rate. Jame pateikiamos „nuvilkimo“ funkcijos, leidžiančios lengvai kurti sudėtingas GUI pagrįstas programas įterptiesiems įrenginiams, neatsižvelgiant į tikslinę platformą ar programavimo kalbą, naudojamą bendram projekto vystymui. Iš esmės tai pašalina stresą, susijusį su kodo naudojimu kuriant vartotojo sąsajas.
2. (greitas prototipų kūrimas)
Vienas iš didžiausių įterptosios programinės įrangos kūrimo trūkumų yra tai, kad aparatūros paprastai nėra, kad būtų galima išbandyti dalykus kelyje, kol yra kuriama programinė įranga. Dažnai, kai ji yra prieinama, programinės aparatinės įrangos kūrėjai būtų priversti palaukti visą laiką, kol aparatinė įranga bus paruošta mažai ir nieko nedarant. Tai padidina pristatymo laiką ir nesudaro vietos sinchronizavimui tarp aparatūros inžinierių ir programinės įrangos kūrėjų, kurie būtų pakėlę produkto kokybę. Norėdami padėti išspręsti šią problemą, „VaST“ vaikinai sukūrė elektroninių sistemų lygio virtualaus prototipų kūrimo platformą, kurią būtų galima naudoti virtualiam aparatūros prototipui sukurti kurioje įterptoji programinė įranga gali būti vykdoma siekiant nustatyti sistemos našumą, kol aparatinė įranga dar nėra paruošta.
3. „Doxygen“ (dokumentacija)
Viena iš svarbiausių bet kokio kodo rašymo dalių yra dokumentacija ir viena iš populiariausių tam skirtų priemonių yra „Doxygen“. Be to, kad „Doxygen“ supranta seną programinę įrangą, ji gali automatiškai išgauti komentarus iš kodo ir sukurti jį įtraukiančią dokumentaciją. „Doxygen“ struktūros grafiškai apima failus ir sukuria nuorodas į kiekvieną jūsų kode naudojamą funkciją, kintamąjį ir makrokomandą. Srauto schemos ir duomenų srautų diagramos taip pat gali būti įtrauktos į dokumentaciją, derinant „Doxygen“ su „graphviz“.
4. GIT (versijų valdymo sistemos)
Šiais laikais sunku patikėti, kad kas nors kuria bet kokio tipo programinę įrangą be tam tikros versijų valdymo sistemos, tačiau tik tuo atveju, jei jūs tai darote, tai yra gana bloga idėja, kuri gali sukelti klaidų, kurios jums kainuos laiką ir pinigus. „Git“ išsiskiria tarp visų versijų valdymo įrankių dėl kelių priežasčių. Tai yra atviro kodo, greita, efektyvi ir dažniausiai vietinė. Be „Git“, verta paminėti ir tokias priemones kaip perversmas.
Įterptosios programinės įrangos testavimas
Testavimas yra svarbi bet kurio kūrimo proceso dalis. Firmos praranda tūkstančius dolerių, kai prietaisai atšaukiami dėl programinės aparatinės įrangos klaidų, todėl tai yra viena iš kūrimo dalių, į kurias reikėtų žiūrėti labai rimtai. Dažniausiai tai daroma kartu su kodavimu ir pirmuoju įrankiu, skirtu kodo testavimui, tikriausiai yra IDE ar SDK, naudojamų projektui, derintojai. Testavimas yra įvairių formų ir atliekamas skirtingais etapais, todėl apima įvairias priemones. Tikrinimo įrankiai, naudojantys programinės aparatinės įrangos kūrimą, apima dizaino patvirtinimą ir statinės analizės bei vykdymo laiko testavimo įrankius. Žemiau yra keletas įrankių, kurie man atrodo tikrai naudingi.
1. Crystal REV
„Crystal revs“ yra įrankis, skirtas studijuoti kodą. Jis gali būti naudojamas generuoti schemą iš C / C ++ kodo, o tai yra puikus įrankis peržiūrėti savo kodą ir pamatyti, ar preliminarus dizainas yra tai, kas buvo įgyvendinta. Su „kristalų apsisukimais“ galėsite greitai pamatyti skirtumą tarp dizaino ir įgyvendinimo. Gebėjimas generuoti srautų diagramas, duomenis ir skambučių srautus iš kodų taip pat daro įrankį, naudingą analizuojant seną kodą.
2. PC- pūkelis
PC-lint yra viena iš seniausių programinės aparatinės įrangos testavimo įrankių. Jis gali analizuoti programinę įrangą, kad būtų galima nustatyti klaidas, saugumo spragas ir užtikrinti, kad kodas buvo parašytas laikantis pramonės standartų. Panašioms priemonėms priskiriama „polyspace“ ir, be kita ko, LRDA, „Baklažanai“ ir „Tessy“.
3. „Wireshark“
Tai praverčia kuriant tinklo įrenginius. Iš esmės tai yra paketinis snifferis ir gali padėti peržiūrėti duomenis, kuriuos perduoda jūsų įrenginys. Tai gali padėti apsaugoti įrenginį.
4. Virtualus nuosekliojo uosto tvarkyklė
VSPD by eltima programinė įranga yra įrankis, kurį neseniai pristačiau ir draugas. Tai labai patogu dirbant su įrenginių tvarkyklėmis ir kitomis su kompiuteriu susijusiomis naujovėmis. Virtualusis nuoseklusis „Com“ prievadas suteikia galimybę išbandyti „Com ports“ elgseną be tikslinio įrenginio. Galite sukurti neribotą uostų skaičių, kuris galėtų imituoti visus realių „com“ prievadų nustatymus. Programinėje įrangoje taip pat yra tokių funkcijų kaip nuoseklusis prievadų padalijimas, „Com“ prievadų sujungimas, kitų „cool“ funkcijų naudojimas.
Viskas už šį straipsnį, ačiū, kad skyrėte laiko skaityti. Nors neįmanoma išvardyti visų įrankių, tikiuosi, kad kai kurie iš šių įrankių jums bus naudingi.