Choco OS  V.0.16.9.0
Join to the chocolate world
oc_machines_list.h
Go to the documentation of this file.
1 
28 #ifndef SYSTEM_PORTABLE_INC_OC_MACHINES_LIST_H_
29 #define SYSTEM_PORTABLE_INC_OC_MACHINES_LIST_H_
30 
31 #include <oc_1word.h>
32 
33 #define oC_FAMILY_MASK 0xF000
34 #define oC_CORTEX_MASK 0x0F00
35 #define oC_PROCESSOR_MASK 0x00FF
36 
37 #define oC_DEFINE_FAMILY( INDEX ) ( (INDEX) << 12 )
38 #define oC_DEFINE_CORTEX( INDEX ) ( (INDEX) << 8 )
39 #define oC_DEFINE_MACHINE( FAMILY , CORTEX , INDEX ) ( (FAMILY) | (CORTEX) | (INDEX) )
40 
41 #define oC_GET_MACHINE_FAMILY( MACHINE ) ( (MACHINE) & oC_FAMILY_MASK )
42 #define oC_GET_MACHINE_CORTEX( MACHINE ) ( (MACHINE) & oC_CORTEX_MASK )
43 #define oC_GET_MACHINE_PROCESSOR( MACHINE ) ( (MACHINE) & oC_PROCESSOR_MASK )
44 
45 #define oC_GET_MACHINE_ID(NAME) oC_1WORD_FROM_2(MACHINE_ , NAME)
46 #define oC_GET_FAMILY_ID(NAME) oC_1WORD_FROM_2(FAMILY_ , NAME)
47 #define oC_GET_CORTEX_ID(NAME) oC_1WORD_FROM_2(CORTEX_ , NAME)
48 
49 #define CORTEX_ARM_Cortex_M4 oC_DEFINE_CORTEX( 0x04 )
50 #define CORTEX_ARM_Cortex_M7 oC_DEFINE_CORTEX( 0x07 )
51 
52 #define FAMILY_LM4F oC_DEFINE_FAMILY( 0x01 )
53 #define FAMILY_STM32F7 oC_DEFINE_FAMILY( 0x02 )
54 
55 #define MACHINE_LM4F120H5QR oC_DEFINE_MACHINE( LM4F , ARM_Cortex_M4 , 0x01 )
56 #define MACHINE_STM32F746NGH6 oC_DEFINE_MACHINE( STM32F7 , ARM_Cortex_M7 , 0x02 )
57 
58 #endif /* SYSTEM_PORTABLE_INC_OC_MACHINES_LIST_H_ */
Contains macros for creating one word from more words in macros.