Mit dieser Library kann die 96bit lange “unique ID” der CPU ausgelesen werden.
Mit einer zweiten Funktion kann auch die CPU-ID und die CPU-Revision ausgelesen werden.
Voraussetzungen :
1 2 | Benutzte Module der CooCox-IDE : keine Benutzte Librarys : keine |
Enumerationen :
1 2 3 4 5 | typedef enum { UID_WORD_0 =0, // Bit 0-31 UID_WORD_1, // Bit 32-63 UID_WORD_2 // Bit 64-95 }UID_WORD_t; |
:
1 2 3 4 | typedef enum { ID_DEVICE =0, // Device-ID ID_REVISION // Revision-ID }ID_TYP_t; |
Funktionen :
1 2 | uint32_t UB_IDCHK_Read_UID(UID_WORD_t word_nr); // zum auslesen der "uique id" uint32_t UB_IDCHK_Read_ID(ID_TYP_t id_typ); // zum auslesen der cpu id und revision |
Beispiel :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | //-------------------------------------------------------------- // File : main.c // Datum : 01.01.2015 // Version : 1.0 // Autor : UB // EMail : mc-4u(@)t-online.de // Web : www.mikrocontroller-4u.de // CPU : STM32F4 // IDE : CooCox CoIDE 1.7.4 // GCC : 4.7 2012q4 // Module : CMSIS_BOOT, M4_CMSIS_CORE // Funktion : Demo der ID-Library // Hinweis : Diese zwei Files muessen auf 8MHz stehen // "cmsis_boot/stm32f4xx.h" // "cmsis_boot/system_stm32f4xx.c" //-------------------------------------------------------------- #include "main.h" #include "stm32_ub_id_check.h" int main(void) { uint32_t w0,w1,w2; SystemInit(); // Quarz Einstellungen aktivieren // auslesen der 96bit "unique ID" w0=UB_IDCHK_Read_UID(UID_WORD_0); w1=UB_IDCHK_Read_UID(UID_WORD_1); w2=UB_IDCHK_Read_UID(UID_WORD_2); while(1) { } } |
Hier die Library zum Download :
Hier der komplette CooCox-Projektordner zum Download :
http://stm32f4-discovery.com/2014/12/library-44-stm32f4-unique-id-and-flash-size/