sam3_chipid.h
Go to the documentation of this file.
00001
00036 #ifndef SAM3_CHIPID_H
00037 #define SAM3_CHIPID_H
00038 
00042 #define CHIPID_CIDR      (*((reg32_t *)(0x400E0940)))
00043 
00044 #define CHIPID_VERSION_MASK     0x1F
00045 #define CHIPID_VERSION()        ((CHIPID_CIDR) & CHIPID_VERSION_MASK) ///< Current version of the device.
00046 
00047 #define CHIPID_EPRCOC_SHIFT     5
00048 #define CHIPID_EPRCOC_MASK      0xE0
00049 #define CHIPID_EPRCOC()      (((CHIPID_CIDR) & CHIPID_EPRCOC_MASK) >>  CHIPID_EPRCOC_SHIFT)    ///< Embedded processor.
00050 
00051 #define CHIPID_NVPSIZ_SHIFT      8
00052 #define CHIPID_NVPSIZ_MASK      0xF00      ///< Nonvolatile program memory size.
00053 #define CHIPID_NVPSIZ()      (((CHIPID_CIDR) & CHIPID_NVPSIZ_MASK) >>  CHIPID_NVPSIZ_SHIFT) ///< Nonvolatile program memory size.
00054 
00055 #define CHIPID_NVPSIZ2_SHIFT     12
00056 #define CHIPID_NVPSIZ2_MASK     0xF000     ///< Second nonvolatile program memory size.
00057 #define CHIPID_NVPSIZ2()      (((CHIPID_CIDR) & CHIPID_NVPSIZ2_MASK) >>  CHIPID_NVPSIZ2_SHIFT) ///< Second nonvolatile program memory size.
00058 
00059 #define CHIPID_SRAMSIZ_SHIFT     16
00060 #define CHIPID_SRAMSIZ_MASK     0xF0000    ///< Internal SRAM size.
00061 #define CHIPID_SRAMSIZ()      (((CHIPID_CIDR) & CHIPID_SRAMSIZ_MASK) >>  CHIPID_SRAMSIZ_SHIFT) ///< Internal SRAM size.
00062 
00063 #define CHIPID_ARCH_SHIFT        20
00064 #define CHIPID_ARCH_MASK        0xFF00000  ///< Architecture identifier.
00065 #define CHIPID_ARCH()      (((CHIPID_CIDR) & CHIPID_ARCH_MASK) >>  CHIPID_ARCH_SHIFT) ///< Architecture identifier.
00066 
00067 #define CHIPID_NVTYP_SHIFT       28
00068 #define CHIPID_NVTYP_MASK       0x70000000 ///< Nonvolatile program memory type.
00069 #define CHIPID_NVTYP()      (((CHIPID_CIDR) & CHIPID_NVTYP_MASK) >>  CHIPID_NVTYP_SHIFT) ///< Nonvolatile program memory type.
00070 
00071
00072 const char *chipid_eproc_name(int idx);
00073 const char *chipid_nvpsize(int idx);
00074 const char *chipid_sramsize(int idx);
00075 const char *chipid_archnames(unsigned value);
00076 const char *chipid_nvptype(int idx);
00077
00078 #endif /* SAM3_CHIPID_H */