arm cm3 dsb instrukce

Jan Waclawek konfera na efton.sk
Pátek Červen 5 10:20:00 CEST 2020


> Jinak øeèeno - pokud máte napøíklad globální 
> promìnnou, kterou sdílíte mezi smyèkou hlavního programu a pøerušením, 
> nestaèí jí deklarovat jako volatile, musíte použít nìco jako 
> std::atomic<type>. 

U Cortex-M3/M4 toto nie je potrebne riesit (s vynimkou LDM/STM, ktore su z
principu problematicke operacie, hojne sa vyskytujuce aj v ARM erratach, a
pochybujem, ze by ich nejaky prekladac generoval pre volatile premenne),
vid napr. Cortex-M4 TRM, 3.5 Write buffer:

If an interrupt
comes in while  DMB or  DSB is waiting for the write buffer to drain, the
processor returns to the
instruction following the  DMB or  DSB after the interrupt completes. This
is because interrupt
processing acts as a memory barrier operation.

wek


Další informace o konferenci Hw-list