arm cm3 dsb instrukce
Jan Waclawek
konfera na efton.sk
Pátek Červen 12 09:49:10 CEST 2020
> A jak jste psal ?e DSB je neúeinná pro registry poeru?ení, neplatí toté?
> i pro Peripheral SRAM?
Aha este toto.
"Neucinna" je silne slovo.
U toho prerusenia ide o to, ze sa k slovu dostavaju dve signalove cesty:
jednou je cesta od procesora, cez zbernice, do periferie ktora to
prerusenie vyvolala, a odtial este do NVIC kontrolera; druhou cestou je
vykonavanie instrukcii, ktorymi sa odchadza z prerusenia. Ak ta druha
cesta je rychlejsia, dojde k prekvapujucemu znovuvyvolaniu prerusenia.
U SRAM v pripade toho LPC1769 si neviem predstavit scenar, kde by nastala
podobna situacia "dvoch ciest" s prekvapujucim nasledkom. Ako Tomas
Dresler napisal, u CM3 nenastava preusporiadanie pristupov, len ich
zlucovanie, a aj to len v ramci jedneho slova. Inaksie povedane, jedina
"nekonzistencia" obsahu SRAM (co potencialne "uvidi" niekto iny, napr.
DMA) moze nastat len vtedy, ak su za sebou dva zapisy do dvoch roznych
casti toho isteho slova, a nie je medzi nimi ziadny iny pristup na ten
isty port procesora (S). Lenze ak procesor neurobi ziadny iny pristup na
ten S port (ktory je jediny cez ktory moze riadit periferie), co by mohlo
vyvolat nejaku akciu, ktora by z tej SRAM citala, synchronne (t.j.
zamerne) "medzi" tymi dvomi zapismi?
Ako vravim, v drvivej vacsine pripadov toto netreba riesit. Ano, je
potrebne si vypestovat cit, kedy nastava ta "mensina" pripadov (s ktorou
sa znova drviva vacsina uzivatelov nikdy nestretne); bohuzial, toto si asi
vyzaduje prax.
wek
Další informace o konferenci Hw-list