Certainly! For instance:
| if( (SIM_SDID & SIM_SDID_REVID_MASK) == 0) | //For Rev 1.0 silicon, must disable all Flash caching & Speculation |
| { |
| FMC_PFB0CR | &= ~0x1FUL; | //Clear these bits for errata e2647 & e2644 |
| FMC_PFB1CR | &= ~0x1FUL; |
| } |
Or, more generally:
switch((SIM_SDID & SIM_SDID_REVID(0xF))>>SIM_SDID_REVID_SHIFT)
{
case 0x0:
printf("Silicon rev 1.0\n");
break;
case 0x1:
printf("Silicon rev 1.1\n");
break;
case 0x2:
printf("Silicon rev 1.2\n");
break;
case 0x3:
printf("Silicon rev 1.4\n");
break;
case 0x7:
printf("Silicon rev 1.8\n");
break;
case 0xA:
printf("Silicon rev 2.2\n");
break;
case 0xC:
printf("Silicon rev 2.4\n");
break;