Embedded Linux
Stránky v této části se věnují operačnímu systému Linux a jeho použití v embedded zařízeních. Najdete zde trochu teorie, informace jak zprovoznit vývojové prostředí a také řadu praktických příkladů.
Co nás čeká ...
Počítač programátora
Úplně na začátku, ještě než začneme hledat vhodné vývojové nástroje, si musíme položit otázku, jaký operační systém by měl běžet na našem počítači, aby se nám co nejlépe pracovalo. Musí to být nutně stejný operační systém, který poběží v embedded zařízení, pro které budeme vyvíjet aplikace? Nebo můžeme pracovat v našem oblíbeném operačním systému, byť v embedded zařízení poběží úplně jiný operační systém? A čím je vlastně toto rozhodování ovlivněno? Tyto a další otázky si rozebereme v dalším textu kapitoly.
Nativní nebo křížové nástroje?
Podobně jako si Hamlet v Shakespearově dramatu pokládal kardinální otázku: ”Být či nebýt?”, tak si i programátor aplikací pro embedded zařízení musí položit a (zodpovědět!) podobně klíčovou otázku: ”Nativní či křížové nástroje?”. Filozofování o životě a jeho smyslu necháme povolanějším. Onu programátorskou otázku, zda nativní či křížové nástroje, se však pokusíme zodpovědět v následujícím textu.
Kompilátor GCC
Bez kompilátoru by život programátora byl procházkou peklem. Vždyť kdo by dokázal psát své programy přímo ve strojovém kódu toho kterého procesoru? Naštěstí se takto trápit nemusíme. Stačí si vybrat spravný kompilátor, který podporuje cílovou platformu, a můžeme zvesela programovat. Což ovšem přináší nutnost, umět kompilátor správně používat a nastavit. V této části textu se proto zaměříme na oblast používání kompilátoru často opomíjenou, ale pro nás ”embedďáky” zvláště důležitou. Budeme totiž zjišťovat, kde kompilátor při překladu naší aplikace hledá hlavičkové soubory a systémové knihovny. Mimo to se však ještě seznámíme s oblíbeným křížovým kompilátorem gcc od firmy CodeSourcery a představíme si nejčastěji používané binární utility jako je linker apod.
Make a makefile
Důležitým a pro střední až velké projekty i nepostratelným nástrojem je program make (máme na mysli GNU make) a řídící soubor makefile. Pomocí make a souboru makefile můžeme efektivně řídit proces sestavení naší aplikace ze zdrojového kódu až ve výsledný spustitelný soubor. V následujícím textu si ukážeme, jak make pracuje. Také se naučíme, jak vytvořit soubor makefile tak, aby popisoval postup sestavení naší aplikace srozumitelný pro programam make.
Debugger GDB
Máme napsanou a zkompilovanou aplikaci, pustíme ji, ale ona nefunguje, jak jsme si představovali, nebo dokonce padá. Tehdy je nejvyšší čas povolat ke slovu dalšího nepostradelného pomocníka programátora - debugger - nástroj pro ladění chyb. Jako programátoři aplikací pro operační systém Linux použijeme známý a léty ověřený GNU debugger zkráceně též gdb. V následujícíh řádcích se seznámíme s jeho možnostmi a ovládáním. Dozvíme se i něco málo o trasovacích nástrojích a zjistíme, že i když je debugger gdb nástrojem pro příkazovou řádku, tak přesto existují programy, které slouží jako jeho zdařilé grafické nadstavby.
Integrovaná vývojová prostředí
Pod pojmem integrovaná vývojová prostředí (zkráceně IDE) si většina z nás představí velký moloch, který si stačí stylem klik-další-klik nainstalovat (nejčastěji na Windows) a pak už můžeme zvesela vyvíjet. Pojem ”integrovaná” pak značí nejen to, že se nám na pozadí nainstatalují všechny potřebné (i nepotřebné) nástroje, ale hlavně to, že tyto nástroje lze ovládat z jednoho společného grafického uživatelského rozhraní. My si zde však krátce představíme integrovaná vývojová prostředí, která nabízejí hlavně to integrující grafické rozhraní, do kterého lze zaintegrovat naše vlastní programátorské nástroje jinak ovládané z příkazové řádky.
Editor vi
V době rozmachu integrovaných vývojových prostředích, které oplývají více či méně povedených GUI, je zdánlivě nelogické věnovat pozornost textovému editoru zdrojového kódu. Nicméně textový editor vi je velmi používaný na většině Unixových systému, Linux nevyjímaje. Z našeho pohledu je zajímavý ale především tím, že jeho omezená verze bývá velmi často také součástí linuxové distribuce pro cílová zařízení. Zvláště, pokud je tato distribuce postavena na Busyboxu.
Sestavení linuxové distribuce
Sestavení vlastní linuxové distribuce je jedním ze zásadních úkolů, které musí vývojář aplikací pro embedded zařízení zvládnout. Málokteré embedded zařízení má natolik neomezené systémové prostředky, že v něm lze provozovat běžnou linuxovou distribuci. O specifičnosti hardware takového zařízení ani nemluvě.
Úvod do vývoje ovladačů
Co asi tak může vést vývojáře aplikací k tomu, aby si zkusil napsat vlastní ovladač zařízení? Nuda? To možná, ale spíše je to touha poznat, jak funguje jádro systému Linux, co se ”tam vevnitř” vlastně děje. Nebo také prostě fakt, že mu na stole přistála nová počítačová periférie s tím, že je potřeba, aby pro ni napsal podporu do Linuxu. Vždyť je přece programátor.
HW přípravek
Chcete si hrát s hardwarem, ale nemáte vývojový kit s nějakým mikrokontrolérem? Nevadí, v následujícím textu si povíme, jak vlastními silami zkonstruovat jednoduchý HW přípravek, který nám umožní vyzkoušet si ovládání jednoduchých zařízení z běžného počítače přes paralelní port. Postupně si zkonstruujeme zařízení se čtyřmi LED diodami, dále si připojíme LCD displej pro zobrazování krátkých textů a nakonec si vytvoříme také jedno vstupní zařízení - maticovou klávesnici s šestnácti klávesami. A navíc využijeme našich znalostí o vývoji ovladačů zařízení pod operačním systémem Linux a napíšeme si pro všechna tři zařízení vlastní ovladače. Budeme tak schopni tato zařízení využívat i z uživatelských aplikací.