Archiv pro rubriku: Programování

Programování

01-Pi0 Bare-Metal, první test

První starostí je zjistit zda je nová hračka vůbec naživu. Pokud nechcete instalovat Linux našel jsem velmi jednoduchý test. Připojte úplný usb kabel v Pi0 do konektoru usb (ne do pwr), v Pi0 nesmí být vložena sd karta. Pak připojte usb kabel do PC. Po pár vteřinách PC musí detekovat nový hardware asi takto:Sláva Pi0 žije. Protože ovladače asi nenajdeme ukončíme to stornem.

Tak a teď co je potřeba:

Z hardware jednoznačně Pi0, něco čím jej budeme napájet (postačí USB z PC), a nějakou mikrosd kartu (stačí i kapacitně docela malá)

Jako první si stáhneme „GNU ARM Embedded Toolchain“ a nainstalujeme. Zapamatujeme si kam se instalovalo – pomůže třeba i CTRL+C a CTRL+V někam do textového souboru.

Druhý v pořadí je „Code::Blocks„. Stáhneme a nainstalujeme. Po instalaci spusťte program, ten nám asi sdělí, že nenašel nic čím by mohl překládat – to je ok, poté můžete asociovat soubory s Code::Blocks – a teď už je IDE nastartované. Nyní je potřeba nastavit kompiler -> takže Settings, Compiler, vybereme GNU GCC pro ARM, záložka Toolchain Executables a nastavit takto:Compilers instalation directory jste si určitě zapamatovali že.

Teď si stáhneme tento zazipovaný projekt, rozbalíme ho a otevřeme v Code::Blocks. Stiskem CTRL+F11 přeložíme. Pokud vše prošlo podle očekávání tak se v adresáři projektu objeví nová složka bin a v ní je potřebný výsledný soubor kernel.img.

Nyní si připravíme mikrosd. Kartu naformátujeme na FAT32 a je potřeba na ní uložit soubor „bootcode.bin“ a soubor „start.elf“, které stáhneme zde. Jako třetí na kartu uložíme náš „kernel.img“. Kartu vložíme do Pi0, zapneme napájení a můžeme vychutnávat výsledek celého dlouhého procesu – ano je to tak bliká nám LED.

STM32F4discovery a oled displej SSD1306

Vlastním malinkatý modul oled displeje s rozhraním i2c. Řídícím čipem je ssd1306 a rozlišení displeje je 128*64 pixelů. V tomto projektu je základní ovládání displeje s nějakým tím výpisem znaků.

Displej je celkem pomalý a ani to jak jsem to napsal není moc optimalizované, ale na základní pochopení to asi stačí.

Kompletní zazipovany projekt je zde.

STM32F100 pod kapotou

Nečekejte od mne kompletní popis všeho co STM32F100 nabízí. Nepoužívám všechny funkce a ani všechny periferie. Možná taky že něco nepopíšu zcela přesně. Pokud najdete nějakou nesrovnalost dejte vědět a já to opravím.

STM32F100 patří do skupiny procesorů Cortex-M3, jeho jádro je 32-bitové (data, registry, přístup do paměti). Mcu má oddělenou instrukční a datovou sběrnici (Hardvarská architektura), byť nakonec paměťový prostor je společný. Instrukční soubor je označován jako Thumb2 což je rozšířená skupina instrukcí Thumb.

Pokračování textu STM32F100 pod kapotou