arm cm3 dsb instrukce

Jan Waclawek konfera na efton.sk
Pátek Červen 12 08:31:09 CEST 2020


> Jak jste to "SPI" nakonec vyøešil? 

Prechodom na STM32... :-) Ale nie kvoli tomuto.

Samozrejme ze som to nejako vyriesil a rozchodil, ale je to vela rokov,
nepamatam sa na detaily. Myslim, ze som len jednoducho preusporiadal
instrukcie, hadam som sa ani neobtazoval asemblerom, len som to nejako
prefackal v C. Bol to len pokus, v skutocnosti bol plan pouzit SPI a
naozaj som to SPI aj pouzil aj v tom LPC a potom aj v STM32, aj s DMA
atd., len som postupoval tak ako som postupoval vzdy, a ja to inak neviem,
od jednoduchsieho k zlozitejsiemu.

Bola to poucna facka a presne kvoli tomu som to potom zacal hlbsie skumat.

Poucne je to aj v tom, ze - z dovodov popisanych v dalsom - v tych
32-bitoch (SoC) netreba hladat tu uroven kontroly nad vecami, ktora bola v
8-bitoch (mcu). V principe zhruba plati, ze napriek cca 10x vyssej
"stitkovej rychlosti" sa "granularita" softwarovej kontroly nezlepsila,
stale je to na rozmedzi desatin us az jednotiek us; cokolvek co ma byt
presnejsie je potrebne riesit na to urcenym hardwarom.


> Asi tu kapitolu 34. podrobnì prostuduji celou, i když k ní nemám moc 
> dùvìry, je 10let stará bez jediné opravy

Aj to jadro je 10 rokov stare bez jedinej opravy (teda v tom konkretnom
kuse kremika)... :-)


> je nìkde celá specifikace CM3 
> u armù k dispozici, aktualizovaná veze v jediném dokumentu? 

Nie. Vzdy to treba skladat z criepkov. 

Kanonicka triada je ARMv7 ARM (vtipna skratka, znamena to Architecture
Reference Manual), Cortex-M3 TRM (Technical Reference Manual) a erraty
(tie jadra su tiez v reviziach, oznacovanych ako rXpY, a tie erraty
obsahuju pomerne obskurne a relativne priserne veci pre jednotlive
revizie). Su to priserne dokumenty, vsetko od ARM je priserne, nabubrale,
rozvlacne, plne ich vlastnej terminologie a explicitnych aj implicitnych
odkazov na nejake ich ine materialy, z ktorych nie vsetko je verejne
dostupne, alebo sa len jednoducho kvoli digitalnej hnilobe tazko hlada a
este tazsie chape. Ano aj ten web ARMu je priserny, aj sposob
prihlasovania co niekedy je treba, atd. Do urcitej miery je to
pochopitelne - nepotrebuju aby ich otravovali pristipkari (aj ked priserny
web je skor obrazom doby, vlastne nie je horsi ako web vacsiny
polovodiciarov, akurat sa spolu s nimi zapojili do sutaze "spravme www
nepouzitelnym"). Existuje seria kniziek "The definitive guide to
Arm-CortexM X" od Josepha Yiu, co obsahuje vlastne to iste ako ten ARM ARM
a CMx TRM, ale v citatelnej podobe. Joseph Yiu je zamestnanec ARMu - a to
tiez o niecom vypoveda.

Samozrejme, ze sa tam nedozviete vsetko, jednoducho preto nie, lebo cely
ten mcu je zlepenec, vlastne to nie je mikrokontroler ale SoC, t.j.
konvencny salovy pocitac napchaty do jedneho kusa kremika. Pozostava z
toho jadra, serie zbernic (ktore su zalozene na ARMovom standarde AMBA, to
sa da tiez tak trocha dohladat aj ked to je este menej zazivne citanie) v
matici s arbitratorom (ktory tiez obvykle nie je nijako alebo len v
naznakoch popisany) a pripadnymi medzikusmi na vstupoch a vystupoch, a
periferii (ktore mozu nemusia pochadzat od vyrobcu, obvykle je to mix, nie
uplne surody, co ma nasledky napr. aj na dokumentaciu). Klucovym prvkom k
casovaniu su waitstaty prechadzajuce celym retazcom od cielovej periferie
az k spotrebicu. Cele je to potom popretkavane este roznymi inymi
signalmi, napr. ako su tie prerusenia, k comu obvykle tiez nie je ani
ciarka a treba si to poskladat z naznakov a criepkov.

Cela tato problematika sa standardne riesi rozsiahlym mavanim rukou, v
style "good enough"; do urcitej miery to inak nejde. Je to cena, ktoru
platime za rychlost a zlozitost. Ako Tomas Dresler tu raz bol napisal, v
ST Vam radi nastartuju ten simulator, co je jediny sposob ako zistit
presne casovania, staci, ak u nich budete nakupovat v dostatocnom mnozstve
(vyjadrene v M$). 

V praxi to naozaj netreba riesit, s vynimkou specifickych pripadov.

wek



----- Original Message ---------------
Dík za odpovìï,  i pøíklad z praxe WEKu.
Jak jste to "SPI" nakonec vyøešil? DSB instrukcí? Nebo pøepnutím v MPU 
na periférii. Druhá cesta by asi byla rychlejší...
Asi tu kapitolu 34. podrobnì prostuduji celou, i když k ní nemám moc 
dùvìry, je 10let stará bez jediné opravy, je nìkde celá specifikace CM3 
u armù k dispozici, aktualizovaná veze v jediném dokumentu? Jako analog 
té kapitoly 34? Luštit to v desítkách dílèích dokumentù mnì odrazuje.

A ještì by mnì zajímalo jak to je s pamìmi, ram a flash. Ty asi nejsou 
souèástí jádra, a podobnì jako periférie si je do èipu pøilinkuje 
výrobce? Jaká je u nich skuteèná doba pøístupu? A èasování práce s 
pamìtí je odvozené od hodin procesoru? V té vnitøní struktuøe zatím tápu.
A jak jste psal že DSB je neúèinná pro registry pøerušení, neplatí totéž 
i pro Peripheral SRAM?




Další informace o konferenci Hw-list