Flux de lucru flexibil pentru o dezvoltare mai eficientă

Instrumente de dezvoltare pentru software embedded

by gabi

(© Infineon)

Succesul unui produs depinde, de asemenea, de dezvoltarea eficientă a software-ului încorporat. Pentru aceasta, dezvoltatorii și echipele trebuie să poată lucra împreună în condiții cât mai flexibile, atât cât este optim pentru ei. Întrebarea esențială este: ce caracteristici și capabilități trebuie să aducă instrumentele de dezvoltare pentru a face acest lucru posibil?

Majoritatea producătorilor de semiconductori oferă propriile instrumente de dezvoltare pentru ca acestea să contribuie la o dezvoltare de produse eficientă. Nu se poate răspunde la întrebarea dacă acestea oferă tot ceea ce este necesar pentru atingerea obiectivului fără a lua în considerare mai multe aspecte, dincolo de instrumentele în sine. Mai degrabă, este nevoie de un mediu de dezvoltare holistic, format din instrumente hardware și software, drivere de execuție embedded, biblioteci, documentație și multe altele. Folosind ca exemplu software-ul ModusToolbox™ de la Infineon, vom arăta aici ce anume sporește, de fapt, eficiența activității de dezvoltare a inginerului specialist în aplicații embedded.

Software-ul ModusToolbox este un mediu de dezvoltare extensibil care acceptă o gamă largă de microcontrolere și kituri de dezvoltare de la Infineon. Acesta include o colecție de diverse instrumente de dezvoltare, biblioteci și resurse de execuție embedded pentru dezvoltarea flexibilă de software embedded.

Aplicațiile desktop pot fi utilizate pentru a crea noi proiecte embedded, pentru a gestiona componentele software și pentru a configura perifericele dispozitivelor și middleware-ul. La acestea se adaugă instrumentele de dezvoltare tipice pentru compilare, programare și depanare. Acestea valorifică numeroasele depozite găzduite pe GitHub de la Infineon și de la parteneri, care includ mostre de cod, pachete de compatibilitate pentru plăci, middleware și sprijin pentru aplicații. Împreună cu documentația, conținutul de instruire și o comunitate de suport tehnic, rezultatul este un flux de lucru complet pentru dezvoltatorii de aplicații embedded.

Fluxul de lucru ideal pentru dezvoltare

Dacă sunteți în căutarea fluxului de lucru ideal pentru dezvoltarea sistemelor embedded, nu trebuie să căutați prea departe. Primul inginer pe care îl veți întreba, vă va asigura că fluxul de lucru pe care îl urmează el este cel corect. Prin urmare, deoarece fiecare echipă de dezvoltare sau dezvoltator de sisteme embedded are un flux de lucru unic, mediul de dezvoltare ar trebui să ofere un grad ridicat de flexibilitate. Acesta este, de asemenea, un pilon central al software-ului ModusToolbox.

Inima procesului de dezvoltare

Figura 1: Dezvoltarea eficientă a produselor necesită nu numai instrumentele ideale, ci și software-ul și comunitatea corespunzătoare. (© Infineon)

Inima procesului de dezvoltare este mediul integrat de dezvoltare (IDE). Dezvoltatorul de aplicații embedded îl utilizează zilnic atunci când codifică și depanează firmware-ul embedded. Teoretic, acesta ar trebui să fie un mediu familiar pentru fiecare dezvoltator. ModusToolbox include un IDE bazat pe Eclipse pentru utilizatorii care doresc să dezvolte în cadrul Eclipse și cu compilatorul Arm® GCC. Ca editor alternativ, este disponibil Microsoft VS Code, care utilizează exact același lanț de instrumente și comenzi de compilare Arm GCC. Prin intermediul extensiilor VS Code, acesta oferă capabilități complete de programare și de depanare.

În plus, proiectele ModusToolbox pot fi utilizate și pe toate IDE-urile și toolchains-urile importante, cu suport nativ pentru IAR Embedded Workbench și Arm Microcontroller Developers Kit (µVision).

Totuși, un mediu de dezvoltare flexibil și eficient trebuie să meargă dincolo de editoarele de cod și de depanarea grafică. Acesta este motivul pentru care nucleul software-ului ModusToolbox este un sistem de construcție bazat pe Makefile și o interfață (shell) de linie de comandă pentru a automatiza sistemele de construcție și a facilita un flux de lucru de integrare continuă. Acest sistem de compilare cu scripturi este crucial pentru un mediu de dezvoltare cu adevărat flexibil, care poate fi adaptat la cerințele exacte ale dezvoltatorului. În timp ce face acest lucru, el poate fi sigur că rezultatul compilat va fi în concordanță cu codul furnizat de Eclipse IDE sau VS, deoarece utilizează exact aceleași comenzi ale sistemului de compilare și opțiuni de compilare.

Un astfel de suport pentru comenzi de construcție cu scripturi și integrare continuă conduce cvasi-automat la fluxuri de lucru pentru dezvoltare colaborativă. Controlul versiunilor, depozitele Git, rețetele make – acestea sunt esențiale pentru modul în care sunt distribuite și gestionate activele de execuție embedded în ModusToolbox. În același timp, acestea sunt componentele centrale pentru dezvoltarea colaborativă în cadrul unei echipe.

Extinderea acestor capabilități ale ModusToolbox la codul aplicației utilizatorului permite dezvoltatorilor să colaboreze eficient în cadrul echipei și să asigure versiunea corectă a driverelor, middleware-ului, bibliotecilor și BSP-urilor furnizate constant în cadrul fluxurilor de construcție cu integrare continuă.

HAL și driverele low-level oferă mai multe posibilități

Figura 2: ModusToolbox de la Infineon include numeroase instrumente, precum și middleware cu exemple de proiecte și numeroase pachete de suport pentru plăci (BSP − Board Support Packages). (© Infineon)

Pentru inginerii din domeniul embedded, fiecare decizie reprezintă o echilibrare a compromisurilor și optimizărilor. De la alegerea dispozitivelor și a caracteristicilor produsului, la echilibrul ideal între performanța și capabilitățile acestora, pe de o parte și costul și consumul de putere, pe de altă parte, până la API-urile specifice utilizate pentru a dezvolta o aplicație.

Adesea, posibilitățile de optimizare a API-urilor sunt limitate de driverele furnizate de producătorul de semiconductori. Nu este cazul cu software-ul ModusToolbox. Motivul este că acesta oferă atât drivere periferice de nivel scăzut, cât și un strat de abstractizare hardware (HAL). Stratul de abstractizare hardware furnizează API-uri unificate, care sunt compatibile între diferite familii de dispozitive. Ca urmare, codul aplicației dezvoltat cu aceste funcții este foarte reutilizabil și, de obicei, mai ușor de programat, deoarece unele dintre specificitățile hardware subiacente sunt mascate pentru a favoriza funcțiile tipice ale cazurilor de utilizare. De asemenea, permite integrarea rapidă a bibliotecilor middleware și a stivelor de comunicații.

Cu toate acestea, trebuie făcute compromisuri atunci când se lucrează exclusiv pe un nivel abstract. Motivul este acela că orice tip de abstractizare duce la un anumit grad de ineficiență și, cu cât vă îndepărtați mai mult de hardware-ul de bază, cu atât mai mult vă îndepărtați de controlul detaliat al perifericului în cauză. În schimb, driverele low-level oferă un control total asupra perifericului. De asemenea, acestea oferă funcții special create pentru caracteristicile și capabilitățile dispozitivului corespunzător.

Deoarece ModusToolbox oferă drivere HAL și drivere low-level, un dezvoltator de dispozitive embedded le poate utiliza pe ambele în cadrul unei singure aplicații. Pe de o parte, acest lucru face posibilă obținerea echilibrului necesar între portabilitate și reutilizarea codului cu API-urile HAL, dar, pe de altă parte, face posibilă dezvoltarea codului într-un mod care să fie strâns legat de capabilitățile hardware-ului. Din acest punct de vedere, se poate dezvolta cod și software de economisire a memoriei care să fie optim adaptat la aplicația specifică în cauză.

Middleware și biblioteci

Figura 3: Dezvoltatorii pot beneficia de capabilitățile și posibilitățile oferite în ModusToolbox atunci când dezvoltă software embedded pentru nenumărate aplicații. (© Infineon)

O altă provocare pentru inginerii specializați în aplicații embedded este integrarea bibliotecilor și a middleware-ului. Majoritatea furnizorilor de semiconductori oferă acces la un ecosistem de middleware standard în industrie, dezvoltat și furnizat special de către respectivul furnizor, uneori în colaborare cu parteneri. În unele cazuri, însă, oferta este foarte rudimentară. Alții oferă exemple de referință în cadrul mediului de dezvoltare. Acestea pot acționa ca punct de plecare și arată că middleware-ul poate funcționa pe hardware-ul în cauză. ModusToolbox dispune, de asemenea, de exemple de cod în cadrul ModusToolbox Project Creator pentru exemple de proiecte de la Infineon și de la parteneri.

Dezvoltatorului embedded îi revine adesea sarcina de a integra acest middleware în aplicația sa concretă. ModusToolbox face acest lucru posibil cu ajutorul unui manager de bibliotecă, care este în măsură să colecteze fișierele sursă necesare din depozitele GitHub, să rezolve orice dependență de middleware-ul aferent și să actualizeze rețetele make necesare pentru a include sursele selectate. Documentația furnizată împreună cu fiecare director sursă de middleware descrie în detaliu toate modificările Makefile necesare pentru a utiliza middleware-ul în aplicație.

Concluzie

Baza pentru o dezvoltare eficientă este un mediu de dezvoltare flexibil care permite dezvoltatorilor de aplicații embedded să își definească fluxul de lucru individual. Împreună cu unul dintre kiturile de dezvoltare pentru microcontrolerele PSoC™ suportate, ModusToolbox oferă acest tip de flexibilitate, de la alegerea suportului de compilare IDE sau a liniei de comandă suportate până la diferitele opțiuni pentru drivere API și integrare middleware.

Autori:
Ralf Kern,
Line Manager, Rutronik
Clark Jarvis
, Senior Staff Technical Marketer la Infineon

Rutronik | https://www.rutronik.com

S-ar putea să vă placă și