Bij embedded ontwikkelwerk wordt bij ieder project maatwerk geleverd. Vanzelfsprekend, omdat de software zeer nauw aan moet sluiten bij de aanwezige hardware.
Voordat PragmaLab een bijdrage aan een product gaat leveren, is het hardware traject meestal al gestart. De inbreng van PragmaLab begint vaak bij de keuze van de processor en noodzakelijke randcomponenten. Vooraf moet een reëel beeld bestaan van de prestaties en functies die verwacht worden van het embedded product. Het ontwerpen van de software kan daarna beginnen: welke modules zijn er nodig, welke componenten binnen en buiten de processor moeten worden aangestuurd, welke soorten geheugen zijn beschikbaar, etc, etc.
Wanneer een hardware prototype beschikbaar is, kan code op het target worden uitgetest. Werd vroeger de binairy (gecompileerde en gelinkte code) nog vaak in een EEPROM gebrand en op het bord ingestoken, tegenwoordig wordt bijna altijd van een 'in-circuit' methode gebruik gemaakt. Hierbij wordt de code vanaf een PC via een programmer in de processor ge-upload. JTAG is bijvoorbeeld een techniek die dit mogelijk maakt. Tijdens de ontwikkeling zijn er diverse manier om code te testen en te debuggen. Het beproefde loggen met zogeheten 'printf-statements' wordt nog veel gebruikt en ook het 'debug-LEDje' doet nog uitstekend dienst. . Maar ook geavanceerdere technieken worden ingezet. PragmaLab maakt vaak gebruik van In-Circuit-Emulators (ICE) om op source-niveau te kunnen debuggen. Deze, vaak kostbare, debuggers zijn soms de enige manier om hardnekkige fouten boven water te krijgen. Soms zelfs gaat het om fouten in de compiler. Kennis van de processor, de compiler en de assembly-instructies zijn daarbij onontbeerlijk.
Hieronder in vogelvlucht een aantal korte beschrijvingen van recente embedded projecten van PragmaLab.
|