Programovani ARM, bylo prepinani seriovek
Martin Úlehla
ok9swl na gmail.com
Středa Březen 13 15:27:39 CET 2019
Ještě bych zde do komunity předal jedno varování...
Měli jsme schůzi se zástupci ST, protože jsme jako jedni z prvních
narazili na problém zpětného "kopnutí" u A/D na STM32F1 řady. Řešení
tohoto problému jsme sice nedostali, řekli nám tehdy že A/D mají
koupené, ale....
Některé funkce jsme nepoužívali z jejich knihovny, ale kvůli rychlosti
(motor control) jsme v přerušení přistupovali přímo na registry. Byli z
toho dost odvaření a důrazně nás upozorňovali, že *ne všechny logicky
správné sekvence nastavení registrů vedou k fyzicky správnému chování
procesoru*.
Tedy když už chcete přistupovat k HW přímo bez jejich knihovny, dostali
jsme instrukci ať kopírujeme/dodržujeme sekvence nastavení z jejich
knihoven. Pokud toto nedodržíte, může být chování procesoru
nepředvídatelné a datasheet toto nepokrývá (nepočítá se při složitosti
procesoru s přímým střílením hexačísel do registrů).
Jak moc je to vážné varování jsem se nikdy nedozvěděl, ale neměl jsem
potřebu se mu zbytečně protivit a ctím to dodnes i u konkurenčních
procesorů. Jak víte v oblasti pohonů končí chyby hromádkami drahého uhlí.
Martin
Dne 13. 03. 19 v 15:08 Miroslav Mraz napsal(a):
> Asi to není tak jednoduché. Jen těch modelů od ST je tolik, že se v tom
> ztrácím. A zřejmě se v tom ztrácí i to ST. Překladačů pro platformu ARM
> je také hodně - namátkou IAR, Keil (ARM), gcc, clang a kdoví co ještě.
> Když ve firemním IDE použijete jeden, naštvete ty, co používají jiný,
> když to uděláte pro všechny (a ST to má pro ty hlavní uděláno), bude z
> toho nepřehledný moloch.
> Pak zbývá ta obtížnější cesta - naučit se jak to funguje. Věřte, že
> pokud to uděláte, zjistíte, že na tom zase tak moc složitého není. V
> mnohém jsou ty ARMy na programování jednodušší než mnohý 8-bit. A
> protože obsluha periferií je většinou jen malou částí projektu, poznáte
> výhody 32-bitové architektury a zpátky se vám už nebude chtít vracet.
>
> Mrazík
Další informace o konferenci Hw-list