STM32F4, latence/rezie preruseni

Jan Waclawek konfera na efton.sk
Úterý Duben 16 20:35:25 CEST 2013


Pri vstupe do prerusenia sa ukladaju na zasobnik registre R0-R3 a R12-R16 (t.j. aj SP, PC, LR) a este dva stavove wordy, a trva to 10 cyklov vratane fetchu prvej instrukcie prerusenia (vsetko za predpokladu nulovych waitstatov). Je to z pohladu pouzitelnosti dost vela, najma ak je clovek zvyknuty riesit realtime veci v preruseni, ale jednak , a tiez vzhladom na dohody o tom, kto kedy ake registre uklada (tzv. ABI), toto zabezpecuje to, ze v preruseni moze byt pouzita akakolvek funkcia, nie je nutne ju prekladacu nijako specialne oznacovat. Ta latencia je samozrejme dlhsia tiez o trvanie neprerusitelnych instrukcii v prerusovanej urovni, sice ARM velkoryso pise ze to je vzdy len jeden cyklus (a su tam fakt vychytavky ako prerusitelne a po ukonceni preruesnia restartovae delenie ktore inak trva dlhsie), ale ked sa clovek zacita do celeho toho stroja, nuz tak to nemusi byt (a v drvivej vacsine pripadov veru ani nie je) len ten jeden cyklus... Plus samozrejme nasledky z "pomalost
 i" FLASH, co je na dalsie dlhe rozpravanie.

Co sa tyka FP registrov u Cortex-M4, tie sa pri defaultnom nastaveni neukladaju, len ak sa v preruseni pouzije FP operacia. Toto sa vola lazy stacking a je k tomu appnote ktory vrelo doporucujem precitat.

Pri odchode z prerusenia to iste v opacnom smere, ak nenastalo ine prerusenie atd.atd.atd. Takze minimalne prerusenie bez akehokolvek tela trva 20 cyklov.

Pan kolega Stengl by nam pre pobavenie mohol pripadne prezradit, kolko to trva u tych Cortex-R; pocitam ze to bude tiez dost dramaticky rozdiel vzhladom na to ze u Cortex-M ARM machruje s "extremely low latency interrupt"... ;-)

Opakujem sa, ale je to tak - toto vsetko je dan za to ze to nie je mikrokontroler ale SoC. Ako aj pisete, pre realtime treba preferovat pracu s hardwarom, robit realtime softwarom je vyrazne tazsie ako u mikrokontrolerov. Je to fajn az do okamihu, ked toho hardwaru sa zacne nedostavat - proste to nie je tak flexibilne ako ked sa clovek nauci poriadne programovat mikreokontrolery.

wek


Další informace o konferenci Hw-list