+
+
+ |
+
+ |
+
+ 0x420080
+ |
+
+
+
+ -
+
+
+
+ |
+
+
+ 1879
+ |
+
+ Main
+ |
+
+
+
+
+
+ thread1
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+ /root/workspace/devkit-affinity-exp/9-dr-check/src/ddmc.c
+
+
+
+
+
+
+ |
+
+ 18
+ |
+
+ 0x4007d8
+ |
+
+
+ 1874
+ |
+
+ Main
+ |
+
+
+
+
+
+
+
+
+
+ main
+
+
+
+
+ |
+
+
+
+
+
+ /root/workspace/devkit-affinity-exp/9-dr-check/src/ddmc.c
+
+
+
+
+
+
+ |
+
+ 46
+ |
+
+ 0x400990
+ |
+
+ Add "__asm__ volatile("dmb sy");" in the position indicated by this item
+ |
+
+
+
+
+
+
+ (0x420080)
+
+
+
+
+
+
+
+ (
+
+
+ :
+
+
+
+ /root/workspace/devkit-affinity-exp/9-dr-check/src/ddmc.c
+
+
+
+
+
+ ;
+
+ )
+
+
+
+
+
+
+ 13
+
+
+ 14
+
+
+ 15
+
+
+ 16
+
+
+ 17
+
+
+ 18
+
+
+ 19
+
+
+ 20
+
+
+ 21
+
+
+ 22
+
+
+ 23
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ volatile int *x, *y, *r1, *r2;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ void thread1(void *arg) {
+
+
+
+
+
+
+
+
+
+
+ while(flag == 0);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ //__asm__ volatile("dmb sy");
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (
+
+
+ :
+
+
+
+ /root/workspace/devkit-affinity-exp/9-dr-check/src/ddmc.c
+
+
+
+
+
+ ;
+
+ )
+
+
+
+
+
+
+ 41
+
+
+ 42
+
+
+ 43
+
+
+ 44
+
+
+ 45
+
+
+ 46
+
+
+ 47
+
+
+ 48
+
+
+ 49
+
+
+ 50
+
+
+ 51
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pthread_create(&t1, NULL, (void *)thread1, NULL);
+
+
+
+
+
+
+
+
+
+
+ pthread_create(&t2, NULL, (void *)thread2, NULL);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pthread_join(t1, NULL);
+
+
+
+
+
+
+
+
+
+
+ pthread_join(t2, NULL);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if (*r1 == 0 && *r2 == 1) {
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+ |
+
+ |
+
+ 0x4222a0
+ |
+
+
+
+ -
+
+
+
+ |
+
+
+ 1880
+ |
+
+ Main
+ |
+
+
+
+
+
+
+
+ thread2
+
+
+
+
+
+
+ |
+
+
+
+
+
+ /root/workspace/devkit-affinity-exp/9-dr-check/src/ddmc.c
+
+
+
+
+
+
+ |
+
+ 26
+ |
+
+ 0x400850
+ |
+
+
+ 1879
+ |
+
+ Main
+ |
+
+
+
+
+
+ thread1
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+ /root/workspace/devkit-affinity-exp/9-dr-check/src/ddmc.c
+
+
+
+
+
+
+ |
+
+ 21
+ |
+
+ 0x400808
+ |
+
+ Add "__asm__ volatile("dmb sy");" in the position indicated by this item
+ |
+
+
+
+
+
+
+ (0x4222a0)
+
+
+
+
+
+
+
+ (
+
+
+ :
+
+
+
+ /root/workspace/devkit-affinity-exp/9-dr-check/src/ddmc.c
+
+
+
+
+
+ ;
+
+ )
+
+
+
+
+
+
+ 21
+
+
+ 22
+
+
+ 23
+
+
+ 24
+
+
+ 25
+
+
+ 26
+
+
+ 27
+
+
+ 28
+
+
+ 29
+
+
+ 30
+
+
+ 31
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ void thread2(void *arg) {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ //__asm__ volatile("dmb sy");
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (
+
+
+ :
+
+
+
+ /root/workspace/devkit-affinity-exp/9-dr-check/src/ddmc.c
+
+
+
+
+
+ ;
+
+ )
+
+
+
+
+
+
+ 16
+
+
+ 17
+
+
+ 18
+
+
+ 19
+
+
+ 20
+
+
+ 21
+
+
+ 22
+
+
+ 23
+
+
+ 24
+
+
+ 25
+
+
+ 26
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ void thread1(void *arg) {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ //__asm__ volatile("dmb sy");
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ void thread2(void *arg) {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+ |
+
+ |
+
+ 0x4222c0
+ |
+
+
+
+ -
+
+
+
+ |
+
+
+ 1880
+ |
+
+ Main
+ |
+
+
+
+
+
+
+
+ thread2
+
+
+
+
+
+
+ |
+
+
+
+
+
+ /root/workspace/devkit-affinity-exp/9-dr-check/src/ddmc.c
+
+
+
+
+
+
+ |
+
+ 28
+ |
+
+ 0x400870
+ |
+
+
+ 1879
+ |
+
+ Main
+ |
+
+
+
+
+
+ thread1
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+ /root/workspace/devkit-affinity-exp/9-dr-check/src/ddmc.c
+
+
+
+
+
+
+ |
+
+ 19
+ |
+
+ 0x4007f4
+ |
+
+ Add "__asm__ volatile("dmb sy");" in the position indicated by this item
+ |
+
+
+
+
+
+
+ (0x4222c0)
+
+
+
+
+
+
+
+ (
+
+
+ :
+
+
+
+ /root/workspace/devkit-affinity-exp/9-dr-check/src/ddmc.c
+
+
+
+
+
+ ;
+
+ )
+
+
+
+
+
+
+ 23
+
+
+ 24
+
+
+ 25
+
+
+ 26
+
+
+ 27
+
+
+ 28
+
+
+ 29
+
+
+ 30
+
+
+ 31
+
+
+ 32
+
+
+ 33
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ void thread2(void *arg) {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ //__asm__ volatile("dmb sy");
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ unsigned int n = 0;
+
+
+
+
+
+
+
+
+
+
+ unsigned int count = 0;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (
+
+
+ :
+
+
+
+ /root/workspace/devkit-affinity-exp/9-dr-check/src/ddmc.c
+
+
+
+
+
+ ;
+
+ )
+
+
+
+
+
+
+ 14
+
+
+ 15
+
+
+ 16
+
+
+ 17
+
+
+ 18
+
+
+ 19
+
+
+ 20
+
+
+ 21
+
+
+ 22
+
+
+ 23
+
+
+ 24
+
+
+
+
+
+
+
+
+
+
+ volatile int *x, *y, *r1, *r2;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ void thread1(void *arg) {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ //__asm__ volatile("dmb sy");
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ void thread2(void *arg) {
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+