- 1. Развој захтева за производом
- 2. Дизајн система и развој алгоритма
- 3. Кодирање уграђеног фирмвера
- Тестирање уграђеног фирмвера
Развој софтвера је генерално тежак, али за уграђени систем је на потпуно новом нивоу тежине. Програмери фирмвера морају да имају добро знање о развоју хардвера и да разумеју унутрашњи рад уграђеног процесора. За данашњи чланак, делићу алате и савете који би се могли користити за постизање високог нивоа ефикасности и уклањање неких ствари које развој фирмвера чине досадним.
Развој уграђеног софтвера пролази кроз сличан процес развоја са „обичним“ развојем софтвера. Без обзира на усвојени модел развоја / управљања, уграђени развој софтвера углавном укључује следеће кораке:
- Развој захтева за производом
- Дизајн система и развој алгоритма
- Кодирање
- Тестирање
Испитаћемо неке потешкоће које долазе са овим фазама и неке алате који би могли повећати ефикасност и продуктивност.
1. Развој захтева за производом
Спецификације производа се често раде на уму дизајнера плоча. Обично садржи мало информација које би могле да помогну развоју фирмвера, па тако уграђени програмер завршава са мањкавим документом од 250 страница (просечно) који се не може користити за референце, а ако се не пажљиво размотри, лако би могао довести до превида у дизајну, што ће заузврат, довешће до продужења временског оквира пројекта, ако не и укупног неуспеха пројекта. Документи ретко садрже информације о регистрима или њиховим битним пољимаизмеђу осталог и ово кошта програмера фирмвера неколико радних сати док претражују документ како би идентификовали ствари попут тога који регистар припада којој групи и које битно поље припада којем регистру. Испод је неколико савета који се могу размотрити како би се осигурао развој кориснијих докумената о пројектним спецификацијама.
Употреба описа регистра
Као што је горе речено, програмери фирмвера морају да разумеју замршеност свих регистара, меморија итд. Свих контролних елемената (ЦПУ, МЦУ итд.) У пројекту да би могли ефикасно да контролишу све делове система. Да би то поставили на место, програмери фирмвера могу осигурати да документ са спецификацијама садржи одговарајући опис регистара заједно са меморијским мапама. Свим регистрима у контролном елементу може се доделити препознатљиво име због чега их је лако идентификовати у документу и сви могу бити вруће повезани тако да воде до листе у документу која наводи име, локацију, блок и адресу сваки регистар.
Описи задатака
Други начин на који документи са спецификацијама могу бити корисни за уграђене програмере је описивањем шта би сваки блок требало да ради и како то треба да уради. Такође у овој фази треба да постоје планови за руковање грешкама испод сваког блока. У основи ово изгледа као да каже програмер фирмвера; „Кад дођем овде, треба да радим ово, то и то, осигуравајући да се ово, то и оно не догоди“. Ово помаже у вођењу рада програмера и помаже у процени пројекта чак и пре него што дизајн почне да идентификује потенцијалне грешке и грешке, штедећи драгоцено време и новац.
Постоје и други фактори, укључујући структуру докумената, употребу фонтова који се лако читају (нешто са чим програмери могу да раде чак и када су уморни), графиконе и слике, где је то могуће, што би све могло да повећа ефикасност тима фирмвера након ове фазе.
2. Дизајн система и развој алгоритма
Ова фаза укључује развој псеудокода, дијаграма тока, државних машина и свега што је повезано са дизајном фирмвера. За ову фазу може се користити читав низ алата који помажу у организовању мисли, истраживању старог / претходно написаног софтвера око пројекта и развоју сопственог дијаграма тока, државног аутомата итд. Неки од ових алата су разматрани у наставку.
ПИМ-ови
У овој фази развоја производа програмери имају тенденцију да много пишу док прикупљају ресурсе на пројекту од веб веза до формула итд. Један од најбољих начина за праћење ових информација како би касније били корисни је употреба ПИМ-а алати (управљање информацијама о производу). Постоји поприличан број ПИМ-ова, али поменућу неколико са неким изванредним карактеристикама.
1. Еверноте
Еверноте вам помаже да правите белешке доступне на било којој платформи, тако да белешку коју сте направили на рачунару можете да проверите док сте у аутобусу кући. Белешке су добро организоване и у њима је могуће потпуно претраживати, тако да ћете увек наћи оно што вам треба.
2. ТрункНоте
Трунк ноте је апликација за вођење белешки налик на Вики. Доноси сву организациону моћ викија у бележење. То је апликација заснована на мобилном телефону, али се лако може синхронизовати са рачунаром путем ВИФИ-а.
Друге врсте ПИМ-ова попут Тиддливики-а итд. Сваки од њих долази са карактеристикама које га могу учинити привлачнијим за одређене појединце и могу узети узорковање пре него што се коначно одлучите за један.
Разумевање наследног кодекса
Друга група алата која је веома корисна током фазе дизајнирања су алати за разумевање наслеђених кодова. У ситуацијама када је производ који је дизајниран побољшана верзија претходног производа, програмеру би могло бити корисно да прегледа рад који је већ урађен да би добио неке идеје и можда делиће кода за овај нови пројекат. Ово би могао бити прилично дуг пут, поготово ако нисте део тима који је створио претходни софтвер. Постоји поприличан број софтвера који помаже у изградњи стабала, креирању документације и дијаграма тока из већ написаног кода.
1. Кисеоник
Докиген је прилично моћан алат који помаже у стварању документације из изворних кодова. Углавном је дизајниран за рад са Ц ++, али такође ради са Ц, Питхон и неким другим језицима. Има могућност издвајања структуре кода било ког кода, пружајући аутоматски генерисане графиконе зависности и дијаграме наслеђивања који помажу у визуализацији кода.
2. Грапхвиз
Према њиховој веб локацији, грапхвиз помаже у представљању структурних информација као дијаграма апстрактних графова и мрежа. Може се користити заједно са Докиген-ом за боље разумевање графике коју производи.
3. Срецорд
Срецорд је моћан алат за манипулацију сликама фирмвера и претварање између различитих формата датотека. Може се користити за израчунавање и извршавање ЦРЦ-а и контролних сума на бајт блоковима, исправљање датотека грешака створених због грешака у алатним ланцима и филтрирање или премештање одељака датотека између осталог. Више информација о његовој употреби можете пронаћи на страници СоурцеФорге.
Неке друге алатке које спадају у ову категорију су ЦристалРев и Хекплорер између осталих.
Развијање алгоритама
Сва агрегата истраживања и вођења белешки за развој алгоритама који се завршавају у псеудокоде и дијаграме тока за пројекат. Постоји неколико алата за израду дијаграма тока и иако већина њих није искључива за развој фирмвера, они пружају корисне и важне функције које једноставно одрађују посао, а такође помажу у одржавању графикона током циклуса развоја производа. Испод су неки од најбољих алата за дијаграм тока.
1. КФСМ
КФСМ је графички алат за пројектовање и симулацију машина са коначним стањима. Његова способност да симулира дизајн чини га много бољим од већине осталих софтвера у овој групи. То је посебно корисно када дизајнирате државне машине за ФПГА и сличан циљни хардвер.
2. Луцидна табела
Луцид цхарт је вероватно најбољи и најфлексибилнији софтвер за дијаграм тока. Заснован је на Интернету и има тимске функције које вам омогућавају да радите између више уређаја и сарађујете у реалном времену са саиграчима.
3. Мицрософт Висио
Висио је тренутно један од најбољих графичких алата. Има низ објеката из различитих поља који олакшавају описивање било чега. Међутим, не долази са функцијама које побољшавају сарадњу међу тимовима и може се користити само на Виндовс машини на којој је инсталиран.
4. Гоогле презентације
Једна од кључних ствари у развоју производа у данашњем свету је употреба алата који омогућавају тимовима да ефикасно сарађују ма где се налазили, а то је једна ствар коју Гоогле презентације доносе на своје место. Може се користити за израду свих врста графикона, од дијаграма тока софтвера до организационих дијаграма и менталних мапа. Заснован је на облаку и ради у готово свим популарним прегледачима.
Постоји неколико других алата за креирање дијаграма тока и развој општег алгоритма, као и обично, сваки са својим за и против.
3. Кодирање уграђеног фирмвера
Све што је споменуто до ове тачке води овде. Свет СДК-ова и ИДЕ-а, избор алата у овој фази зависи од циљног уређаја и карактеристика које ће бити уграђене у уређај, из тог разлога ћу из дискусије изузети популарне СДК-ове и ИДЕ-је попут МПЛАБ-а итд. И само се придржавати на алате који се по својој природи више допуњују.
1. КТ (ГУИ развој)
Екрани (интерактивни или не) најпопуларнији су медији за пружање повратних информација корисницима данас, а КТ-ов СДК је један од најбољих тамо и вероватно није непознаница никоме из уграђеног круга. Пружа функције „превлачења и испуштања“ које олакшавају развој сложених апликација заснованих на ГУИ-ју за уграђене уређаје, без обзира на циљну платформу или програмски језик који се користи за целокупан развој пројекта. У основи уклања стрес повезан са употребом кода за креирање корисничког интерфејса.
2. (брзи прототипи)
Једно од највећих уских грла у развоју уграђеног софтвера је чињеница да хардвер обично није доступан за тестирање ствари у покрету док се софтвер развија. Често када је доступан, програмери фирмвера морали би чекати све време потребно да хардвер буде спреман да ради мало или ништа. Ово повећава време испоруке и не ствара простор за ону врсту синхронизације између хардверских инжењера и програмера фирмвера која би повећала квалитет производа. Да би помогли у решавању овог проблема, момци из компаније ВаСТ креирали су виртуелну платформу за прототипирање на нивоу електронских система која би се могла користити за креирање прототипа виртуелног хардвера на којој се уграђени софтвер може извршити за одређивање перформанси система пре него што хардвер буде спреман.
3. Кисеоник (документација)
Један од најважнијих делова писања било ког кода је документација, а један од најпопуларнијих алата за то је Докиген. Поред његове употребе за разумевање старог софтвера, Докиген има могућност аутоматског издвајања коментара из кода и креирања документације која га укључује. Структуре кисеоника укључују датотеке графички и креирају референце за сваку функцију, променљиву и макро који се користе у вашем коду. Дијаграми тока и дијаграми тока података такође могу бити уграђени у документацију комбиновањем Докиген-а и грапхвиз-а.
4. ГИТ (Системи за контролу верзија)
Тешко је веровати да неко данас развија софтвер било које врсте без некаквог система за контролу верзија, али за сваки случај то је прилично лоша идеја која може довести до грешака које ће вас коштати времена и новца. Гит се истиче из свих алата за контролу верзија из неколико разлога. Отвореног је кода, брз, ефикасан и углавном локални. Асидес Гит, алати попут субверзије такође су вредни помена.
Тестирање уграђеног фирмвера
Тестирање је важан део развојног процеса за било шта. Фирме губе хиљаде долара када се уређаји опозову због грешака у фирмверу, па је то део развоја који треба схватити врло озбиљно. То се често ради, руку под руку, са кодирањем и први сет алата за тестирање кода, вероватно су отклањачи погрешака унутар ИДЕ-а или СДК-а који се користе за пројекат. Тестирање долази у различитим облицима и изводи се у различитим фазама, као такво, укључује различите врсте алата. Алати за тестирање формирају пресеке за развој фирмвера преко валидације дизајна до статичких анализа и алата за тестирање у току рада. Испод је неколико алата које сматрам заиста корисним.
1. Цристал РЕВ
Цристал ревс је алат за проучавање кода. Може се користити за генерисање дијаграма тока из Ц / Ц ++ кода што га чини одличним алатом за преглед сопственог кода и утврђивање да ли је прелиминарни дизајн оно што је примењено. Кристалним обртајем моћи ћете брзо да видите разлику између дизајна и примене. Његова способност генерисања дијаграма тока, података и протока позива из кодова такође га чини алатом корисним за анализу старог кода.
2. ПЦ- Линт
ПЦ-линт је један од најстаријих алата за тестирање фирмвера у свету. Способан је да анализира софтвер за идентификовање грешака, сигурносних пропуста и осигура да је код написан у складу са индустријским стандардима. Слични алати укључују полиспаце и ЛРДА, патлиџан и Тесси, између осталих.
3. Виресхарк
Ово добро дође приликом израде мрежних уређаја. То је у основи њушкалица пакета и могла би вам помоћи да прегледате податке које ваш уређај преноси. Ово може помоћи у осигурању уређаја.
4. Управљачки програм за виртуелни серијски порт
ВСПД би елтима софтвер је алат који сам недавно представио и од пријатеља. Долази веома корисно када радите на управљачким програмима уређаја и осталим развојима повезаним са портом. Виртуелни серијски цом порт вам даје могућност тестирања понашања цом портова без циљног уређаја. Можете створити неограничен број портова који може да опонаша сва подешавања стварних портова. Софтвер такође долази са функцијама као што су подела серијског порта, спајање Цом портова, коришћење свеза цом цом порт веза између осталих сјајних карактеристика.
То је све за овај чланак, хвала што сте одвојили време за читање. Иако је немогуће навести све алате тамо, надам се да ће вам неки од ових алата бити корисни.