1 #define CPU_ID *((volatile unsigned char*)0xffff4200) 2 main()3int main() { 4 // try switching between threads using `thread 1` and `thread 2`! 5 int done = 0; 6 int x = 0; 7 8 // diverging paths on each CPU core 9 if (CPU_ID == 0xaa) { 10 while (!done) {} 11 return x; 12 } else { 13 // big, useless loop to test ctrl-c functionality 14 for (int i = 0; i < 1024 * 32; i++) { 15 x += 1; 16 } 17 done = 1; 18 // loop forever 19 for (;;) {} 20 } 21 } 22