Multiregister transactions should be atomic
At the moment, transactions requiring access to multiple registers are not atomic. Therefore any SCA or GBT access, but maybe more, could be in conflict.
A locking mechanism should be put in place (a robust mutex in shared memory?) and locks should be added to the critical sections.
What is the expected correct behavior?
The transactions requiring access to multiple registers should be made atomic (e.g. SCA or GBT).
Add robust mutex in shared memory and use it throughout the codebase.