Why do you need to use _ _ DSB (); _ _ ISB () in program development
This article will explain in detail why you need to use _ _ DSB (); _ _ ISB () in program development. The editor thinks it is very practical, so I share it with you as a reference. I hope you can get something after reading this article.
Q: why you need to use _ _ DSB (); _ _ ISB ()
Static inline void relocate_vector_table (void) {SCB- > VTOR = VECTOR_ADDRESS & SCB_VTOR_TBLOFF_Msk; _ _ DSB (); _ ISB ();}
A: instruction synchronization data synchronization
Disorder is a processor characteristic, which has little to do with whether it is optimized or not. Most mcu are level 2, level 3, and do not support out-of-order, so you can see that most of the operations in mcu are null operations, but os places for portability. Disorder often requires deep flow, which of course is not a sufficient or necessary relationship. The main problem is to solve the visibility problem. If there is only one core, it doesn't matter whether it is chaotic or out of sync. Anyway, you are the only one who uses the data or instructions. But when you add multiple cores or multiple master, such as dma, other master can't see your local content, so you often need this synchronization measure.
This is the end of this article on why you need to use _ _ DSB (); _ _ ISB () in program development. I hope the above content can be of some help to you, so that you can learn more knowledge. if you think the article is good, please share it for more people to see.