- 1. Produktu prasību izstrāde
- 2. Sistēmas projektēšana un algoritmu izstrāde
- 3. Iegultās programmaparatūras kodēšana
- Iegultās programmaparatūras pārbaude
Programmatūras izstrāde parasti ir sarežģīta, taču iegultai sistēmai tā ir pilnīgi jaunā grūtības pakāpē. Programmaparatūras izstrādātājiem ir jābūt labām zināšanām par aparatūras izstrādi un jāizprot iegultā procesora iekšējā darbība. Šodienas rakstam es dalīšos ar rīkiem un padomiem, kurus varētu izmantot, lai sasniegtu augstu efektivitātes līmeni un novērstu dažas lietas, kas programmaparatūras izstrādi padara garlaicīgu.
Iegultās programmatūras izstrāde notiek līdzīgi izstrādes procesam ar "parasto" programmatūras izstrādi. Neatkarīgi no pieņemtā izstrādes / pārvaldības modeļa, iegultās programmatūras izstrāde parasti ietver šādas darbības:
- Produkta prasības izstrāde
- Sistēmas projektēšana un algoritmu izstrāde
- Kodēšana
- Testēšana
Mēs izskatīsim dažas grūtības, kas rodas šajos posmos, un dažus instrumentus, kas varētu palielināt efektivitāti un produktivitāti.
1. Produktu prasību izstrāde
Produktu specifikācijas bieži tiek veiktas, ņemot vērā dēļu dizainerus. Parasti tajā ir maz informācijas, kas varētu palīdzēt programmaparatūras izstrādē, tādējādi iegultās programmatūras izstrādātājs nonāk ar kļūdainu 250 lappušu (vidēji) dokumentu, kuru nevar izmantot atsaucēm, un, ja tas netiek rūpīgi apsvērts, tas var viegli novest pie dizaina neievērošanas, kas savukārt, noved pie tā, ka projekta laika posms tiek pagarināts, ja ne vispārēja projekta neveiksme. Dokumentos reti ir informācija par reģistriem vai to bitu laukiemcita starpā, un tas programmaparatūras izstrādātājiem maksā vairākas cilvēka stundas, kad viņi meklē dokumentu, lai identificētu tādas lietas kā, piemēram, kurš reģistrs pieder kādai grupai un kurš bitu lauks pieder kādam reģistram. Tālāk ir sniegti daži padomi, kurus varētu apsvērt, lai nodrošinātu noderīgāku projekta specifikācijas dokumentu izstrādi.
Reģistru aprakstu izmantošana
Kā jau tika apspriests iepriekš, programmaparatūras izstrādātājiem ir jāsaprot visu vadības elementu (CPU, MCU utt.) Visu reģistru, atmiņu utt. Sarežģītība, lai varētu efektīvi kontrolēt visas sistēmas daļas. Lai to ieviestu, programmaparatūras izstrādātāji var nodrošināt, ka specifikācijas dokumentā ir pareizs reģistru apraksts kopā ar atmiņas kartēm. Visiem vadības elementa reģistriem varētu piešķirt atšķirīgu nosaukumu, kas tos viegli identificētu visā dokumentā, un tos visus varētu sasaistīt tādā veidā, lai dokumentā izveidotu sarakstu, kurā norādīts lietotāja nosaukums, atrašanās vieta, bloks un adrese. katru reģistru.
Uzdevumu apraksti
Vēl viens veids, kā specifikācijas dokumentus var padarīt noderīgus iegultās programmatūras izstrādātājiem, ir aprakstīt, kas katram blokam ir jādara un kā tas jādara. Arī šajā posmā zem katra bloka vajadzētu būt plānu kļūdu apstrādei. Būtībā tas izskatās kā programmaparatūras izstrādātāja teiktais; "Kad es nokļūstu šeit, man ir jādara tas, tas un tas, nodrošinot, ka tas, tas un tas nenotiek". Tas palīdz vadīt izstrādātāja darbu un palīdz novērtēt projektu pat pirms projektēšanas sākuma, lai identificētu iespējamās kļūdas un kļūdas, ietaupot dārgo laiku un naudu.
Ir arī citi faktori, tostarp dokumentu struktūra, viegli lasāmu fontu izmantošana (ar ko izstrādātāji var strādāt pat tad, ja tie ir noguruši), diagrammas un attēli, ja iespējams, tas viss varētu palielināt programmaparatūras komandas efektivitāti pēc šī posma.
2. Sistēmas projektēšana un algoritmu izstrāde
Šis posms ietver pseidokodu, blokshēmu, stāvokļa mašīnu un visa, kas saistīts ar programmaparatūras izstrādi, izstrādi. Šajā posmā diezgan daudz rīku var izmantot, lai palīdzētu sakārtot domas, izpētīt mantoto / iepriekš uzrakstīto programmatūru ap projektu un izstrādāt savu blokshēmu, stāvokļa mašīnu utt. Daži no šiem rīkiem ir aplūkoti turpmāk.
PIM
Šajā produkta izstrādes posmā izstrādātāji mēdz daudz rakstīt, vācot projektā resursus no tīmekļa saitēm līdz formulām utt. Viens no labākajiem veidiem, kā sekot šai informācijai, lai tā vēlāk būtu noderīga, ir PIM izmantošana (informācijas par produktu pārvaldība) rīki. Tur ir diezgan daudz PIM, bet es minēšu dažus ar dažām izcilām funkcijām.
1. Evernote
Evernote palīdz jums veikt piezīmes, kas ir pieejamas jebkurā platformā, lai jūs varētu pārbaudīt piezīmi, kuru esat izveidojis datorā, atrodoties autobusā mājās. Piezīmes ir labi organizētas un ir pilnībā meklējamas, tāpēc vienmēr atradīsit nepieciešamo.
2. TrunkNote
Trunk note ir Wiki līdzīga piezīmju veidošanas programma. Tas ienes piezīmju veidošanā visu wiki organizatorisko spēku. Tā ir mobilā tālruņa lietojumprogramma, taču to var viegli sinhronizēt ar datoru, izmantojot WIFI.
Cita veida PIM, piemēram, Tiddlywiki utt. Katram no tiem ir funkcijas, kas to var padarīt pievilcīgāku konkrētām personām, un, pirms jūs beidzot apmesties, var veikt dažus paraugus.
Izpratne par mantoto kodu
Vēl viena instrumentu grupa, kas ir ļoti noderīga projektēšanas stadijā, ir instrumenti, lai izprastu mantotos kodus. Situācijās, kad projektējamais produkts ir iepriekšējā produkta uzlabota versija, izstrādātājam var būt noderīgi pārskatīt jau paveikto darbu, lai iegūtu idejas un, iespējams, koda fragmentus šim jaunajam projektam. Tas varētu būt diezgan garš ceļš, it īpaši, ja jūs nebūtu daļa no komandas, kas izveidoja iepriekšējo programmatūru. Ir diezgan daudz programmatūras, kas palīdz veidot kokus, izveidot dokumentāciju un blokshēmas no jau uzrakstīta koda.
1. Skābeklis
Doxygen ir diezgan spēcīgs rīks, kas palīdz izveidot dokumentāciju no pirmkodiem. Tas galvenokārt tika paredzēts darbam ar C ++, bet darbojas arī ar C, Python un dažām citām valodām. Tam ir iespēja iegūt jebkura koda koda struktūru, nodrošinot automātiski ģenerētus atkarības grafikus un mantojuma diagrammas, kas palīdz kodu vizualizēt.
2. Graphviz
Saskaņā ar viņu vietni, graphviz palīdz uzrādīt strukturālo informāciju kā abstraktu grafiku un tīklu diagrammas. To var izmantot kopā ar Doxygen, lai labāk izprastu tā radīto grafiku.
3. Ieraksts
Srecord ir spēcīgs rīks, lai manipulētu ar programmaparatūras attēliem un pārveidotu starp dažādiem failu formātiem. To var izmantot, lai aprēķinātu un veiktu CRC un kontrolsummas baitu blokos, izlabotu kļūdainos failus, kas izveidoti kļūdainu rīkķēžu dēļ, kā arī filtrētu vai pārvietotu failu sadaļas. Plašāku informāciju par tā lietošanu var atrast tā SourceForge lapā.
Daži citi instrumenti, kas ietilpst šajā kategorijā, ir CrystalRev un Hexplorer .
Algoritmu izstrāde
Visi pētījumi un piezīmju apkopošana ir tādu algoritmu izstrāde, kuri projektam izveidojas par pseidokodiem un blokshēmām. Bloku diagrammu izstrādei pastāv vairāki rīki, un, lai gan lielākā daļa no tiem nav tikai programmaparatūras izstrāde, tie nodrošina noderīgas un svarīgas funkcijas, kas vienkārši paveic darbu, kā arī palīdz uzturēt diagrammas visā produkta izstrādes ciklā. Zemāk ir daži no labākajiem rīkiem, kas paredzēti blokshēmas veidošanai.
1. QFSM
QFSM ir grafisks rīks ierobežotu stāvokļu mašīnu projektēšanai un imitēšanai. Tā spēja simulēt dizainparaugus padara to daudz labāku nekā lielākā daļa citas šīs grupas programmatūras. Tas ir īpaši noderīgi, ja projektējat stāvokļa mašīnas FPGA un līdzīgai mērķa aparatūrai.
2. Lucid diagramma
Lucid diagramma neapšaubāmi ir labākā un elastīgākā blokshēmu programmatūra. Tā ir balstīta uz tīmekli, un tai ir komandas funkcijas, kas ļauj strādāt starp vairākām ierīcēm un reāllaikā sadarboties ar komandas biedriem.
3. Microsoft Visio
Visio ir viens no labākajiem grafiskajiem rīkiem pašlaik. Tajā ir dažādu lauku objektu masīvs, kas ļauj viegli aprakstīt jebko. Tomēr tam nav funkciju, kas uzlabo komandu sadarbību, un to var izmantot tikai Windows datorā, kurā tā ir instalēta.
4. Google prezentācijas
Viena no galvenajām lietām produktu izstrādē mūsdienu pasaulē ir tādu rīku izmantošana, kas ļauj komandām efektīvi sadarboties neatkarīgi no atrašanās vietas, un tā ir viena lieta, ko Google slaidi ienes. To var izmantot, lai izstrādātu visa veida diagrammas, sākot no programmatūras plūsmas diagrammām līdz organizatoriskajām shēmām un domu kartēm. Tas ir balstīts uz mākoņiem un darbojas gandrīz visās populārajās pārlūkprogrammās.
Kā parasti, blokshēmu izveidei un vispārīgai algoritmu izstrādei pastāv vairāki citi rīki, katram no tiem ir savi plusi un mīnusi.
3. Iegultās programmaparatūras kodēšana
Šeit ved viss, kas tika minēts līdz šim brīdim. SDK un IDE pasaule, rīku izvēle šajā posmā ir atkarīga no mērķa ierīces un ierīcē iebūvētajām funkcijām, šī iemesla dēļ es no diskusijas izslēgšu populāros SDK un IDE, piemēram, MPLAB utt. rīkiem, kas pēc būtības ir savstarpēji papildinošāki.
1. QT (GUI izstrāde)
Displeji (interaktīvi vai nē) mūsdienās ir vispopulārākie materiāli, kas sniedz atgriezenisko saiti lietotājiem, un QT SDK ir viens no labākajiem, kas tur, iespējams, nevienam nav svešs iegultā lokā. Tas nodrošina "velciet un nometiet" funkcijas, kas atvieglo sarežģītu, GUI balstītu lietojumprogrammu izstrādi iegultām ierīcēm neatkarīgi no mērķa platformas vai programmēšanas valodas, kas tiek izmantota kopējā projekta izstrādē. Tas būtībā novērš stresu, kas saistīts ar koda izmantošanu, lai izveidotu lietotāja saskarnes.
2. (ātra prototipēšana)
Viena no lielākajām sastrēgumiem iegultās programmatūras izstrādē ir fakts, ka aparatūra parasti nav pieejama, lai pārbaudītu lietas, atrodoties ceļā, kamēr programmatūra tiek izstrādāta. Bieži vien, kad tas ir pieejams, programmaparatūras izstrādātājiem būtu bijis jāgaida viss laiks, kas vajadzīgs, lai aparatūra būtu gatava darīt maz vai neko. Tas palielina sagatavošanās laiku un nerada vietu sinhronizācijai starp aparatūras inženieriem un programmaparatūras izstrādātājiem, kas būtu paaugstinājuši produkta kvalitāti. Lai palīdzētu atrisināt šo problēmu, VaST puiši izveidoja elektronisko sistēmu līmeņa virtuālo prototipu veidošanas platformu, kuru varētu izmantot, lai izveidotu virtuālu aparatūras prototipu kurā var izpildīt iegulto programmatūru, lai noteiktu sistēmas veiktspēju, pirms aparatūra ir gatava.
3. Skābeklis (dokumentācija)
Viena no vissvarīgākajām jebkura koda rakstīšanas daļām ir dokumentācija, un viens no populārākajiem rīkiem tam ir Doxygen. Papildus lietojumam, lai izprastu mantoto programmatūru, Doxygen spēj automātiski izvilkt komentārus no koda un izveidot dokumentāciju, kas to ietver. Skābekļa struktūras grafiski satur failus un izveido atsauces uz visām funkcijām, mainīgajiem un makro, kas tiek izmantoti jūsu kodā. Blokshēmas un datu plūsmas diagrammas var arī iestrādāt dokumentācijā, apvienojot Doxygen ar graphviz.
4. GIT (versiju kontroles sistēmas)
Mūsdienās ir grūti noticēt, ka kāds izstrādā jebkura veida programmatūru bez sava veida versiju kontroles sistēmas, taču, ja jūs to darāt, tā ir diezgan slikta ideja, kas varētu izraisīt kļūdas, kas jums izmaksās laiku un naudu. Git izceļas starp visiem versiju kontroles rīkiem vairāku iemeslu dēļ. Tas ir atvērtā koda, ātrs, efektīvs un galvenokārt vietējs. Papildus Gitam ir vērts pieminēt arī tādus rīkus kā graušana.
Iegultās programmaparatūras pārbaude
Testēšana ir svarīga izstrādes procesa sastāvdaļa. Firmas zaudē tūkstošiem dolāru, kad ierīces tiek atsauktas programmaparatūras kļūdu dēļ, tāpēc tā ir viena no attīstības daļām, kas jāuztver ļoti nopietni. Tas bieži tiek darīts, roku rokā, ar kodēšanu un pirmais rīku komplekts koda pārbaudei, iespējams, ir IDE vai SDK, kas tiek izmantots projektam, atkļūdotāji. Testēšana notiek dažādos veidos un tiek veikta dažādos posmos, tāpēc tā ietver dažādus rīkus. Pārbaudes rīki, kas veido programmaparatūras izstrādi, attiecas uz konstrukcijas validāciju līdz statiskās analīzes un izpildlaika pārbaudes rīkiem. Zemāk ir daži rīki, kas man šķiet patiešām noderīgi.
1. Kristāla REV
Kristāla apgriezieni ir rīks koda izpētei. To var izmantot, lai ģenerētu blokshēmu no C / C ++ koda, kas padara to par lielisku rīku, lai pārskatītu savu kodu un redzētu, vai sākotnējais dizains ir tas, kas tika ieviests. Izmantojot kristāla apgriezienus, jūs varēsiet ātri redzēt atšķirību starp dizainu un ieviešanu. Tā spēja ģenerēt plūsmu diagrammas, datus un zvanu plūsmu no kodiem arī padara to par rīku, kas ir noderīgs, lai analizētu mantoto kodu.
2. PC- Lint
PC-lint ir viens no vecākajiem programmaparatūras testēšanas rīkiem apkārt. Tas spēj analizēt programmatūru, lai identificētu kļūdas, drošības ievainojamības un nodrošinātu koda rakstīšanu atbilstoši nozares standartiem. Līdzīgi rīki ietver polispace un LRDA, Baklažānu un Tessy.
3. Wireshark
Tas ir noderīgi, veidojot tīkla ierīces. Būtībā tas ir pakešu sniffer un varētu palīdzēt apskatīt datus, kurus ierīce pārsūta. Tas varētu palīdzēt ierīces drošībā.
4. Virtuālais seriālā porta draiveris
VSPD by eltima programmatūra ir rīks, kuru nesen ieviesu arī draugs. Tas ir ļoti noderīgi, strādājot pie ierīču draiveriem un citiem ar portu saistītiem izstrādājumiem. Virtuālais seriālais com ports ļauj pārbaudīt kom portu darbību bez mērķa ierīces. Jūs varētu izveidot neierobežotu ostu skaitu, kas spēj atdarināt visus reālo com portu iestatījumus. Programmatūrai ir arī tādas funkcijas kā sērijveida portu sadalīšana, Com portu apvienošana, starp citiem atdzistām funkcijām izmantojiet saišu com portu savienojumus.
Tas ir par šo rakstu, paldies, ka veltījāt laiku lasīšanai. Lai gan nav iespējams droši uzskaitīt visus tur esošos rīkus, es ceru, ka daži no šiem rīkiem jums noderēs.