Pro mnohé vývojáře se však jedná o
zásadní problém, který lze nazvat strachem z něčeho nového, složitého a
neznámého. Proč přecházet od zavedeného programování v jazyku
symbolických instrukcí k něčemu méně efektivnímu? Na tuto otázku a
další by měl odpovědět následující text.
Pohled na vývoj z hlediska aplikace
Komplexnost současných jednočipových aplikací z oblasti automobilového průmyslu, GSM a dalších oblastí, spolu s narůstajícím tlakem na zpracování aplikací jasně směřují k použití vyšších programovacích jazyků.
Výhody použití vyšších programovacích jazyků při zpracování aplikací :
- snížení doby vývoje a tím spojených nákladů,
- zpřehlednění zdrojových kódů,
- dlouhodobou správa a údržbu projektu po garantovanou dobu podpory pro dané zařízení,
- důraz na multiplatformnost (jeden zdrojový kód pro různé typy mikroprocesorů),
Výrobci mikroprocesorů tento trend podporují a stále častěji integrují
větší množství paměti RAM a FLASH přímo na čipu. V základním popisu těchto
mikroprocesorů je přímo vyzdvihováno použití ve spojitosti s vyššími
programovacími jazyky
Proč použít jazyk C?
Jazyk C byl od prvopočátku navrhován k systémovému (nízkoúrovňovému) programování. Díky tomu se prosadil všude tam, kde je třeba přímo ovládat libovolný hardware. V jazyku C je napsaná celá řada operačních systému, uživatelských a jednočipových aplikací. Překladače jazyka C existují pro většinu dostupných typů procesorů.
Výhody jazyka CNevýhody jazyka Cjednoduchá přenositelnost zdrojových kódů programu (multiplatformnost), přehlednost zdrojových kódů programu a celkové zjednodušení při správě složitých projektů, rychlejší vývoj aplikací (použití standardních knihoven), nástroje na optimalizaci a validaci výsledného kódu programu, zavedený programovací jazyk, podporovaný výrobci hardwaru (mikroprocesorů) a softwaru (kompilátorů).
vyšší cena kvalitního vývojového prostředí, relativně větší nároky na paměť dat a programu výsledné aplikace, složitější na osvojení.
Implementace jazyka C u mikroprocesorů řady x51
Díky neutuchající oblibě mikroprocesorů řady x51 je k dispozici dostatečné množství kompilátorů jazyka C. Základní vlastností jazyka C je, že využívá intenzivně práce se zásobníkem (předávání parametrů, lokální proměnné, návratové adresy funkcí, reetrantní funkce, atd.). To je kamenem úrazu u mikroprocesorů řady x51, která není obdařena vhodným zásobníkovým systémem. Úspěšnost implementace jazyka C u mikroprocesorů řady x51 závisí na tom, jak se daný výrobce kompilátoru vypořádal s tímto nelehkým problémem. V další fázi se pak řeší specifické problémy s implementací jazyka C na 8bitový mikroprocesor řady x51
- přístup k interním a externím periferiím,
- správa přerušení,
- optimální využití omezené instrukční sady,
- specifické vlastnosti rozdílných paměťových prostorů,
- podpora různé konfigurace pamětí ROM a RAM,
- vysoká úroveň optimalizace pro maximální využití kódového prostoru,
- přepínání registrových bank,
- podpora různých klonů standardní 8051.
Počet kompilátorů jazyka C pro mikroprocesory řady x51, které můžeme nalézt na Internetu se
hravě vyšplhá k číslu dvacet. Jak se v takovém počtu kompilátorů jednoduše
zorientovat a podle čeho vybírat ten správný?
První věc co by měl každý zájemce udělat, je navštívit internetové
stránky daného výrobce. U většiny výrobců lze volně získat
ukázkovou verzi jejich produktu k vyzkoušení.
Tyto volné verze jsou různě limitovány například :
- velikostí výsledného kódu aplikace,
- počáteční adresou, na které je aplikace sestavena,
- časovým omezením doby používání,
- absencí některých knihoven (např. práce s plovoucí čárkou),
- dostupnými paměťovými modely,
- počtem podporovaných klonů mikroprocesorů x51,
- atd.
Takto volně získaná verze programu, často plně uspokojí potřeby začátečníka, studenta či amatéra. S dostupnými ač limitovanými nástroji, lze vytvořit spoustu funkčních a zajímavých aplikací. Speciálně vhodných pro základní řadu mikroprocesorů firmy Atmel, velice oblíbených u této skupiny vývojářů.
V oblasti GNU kompilátorů pro mikroprocesory řady x51 je k dispozici pouze jeden zástupce s názvem SDCC (Small Device C Compiller). Svými vlastnostmi výsledného kódu programu se řadí do střední třídy kompilátorů. Při realizaci složitějších projektů, je však třeba počítat, se zvýšeným úsilím, ze strany vývojáře k dosažení patřičného výsledku. Pokud se hodláte zabývat vývojem aplikací na profesionální úrovni nezbude vám nic než se poohlédnout po komerčním řešením.
Autor článku : Jan Řehák