mpconfigport.h 6.86 KB
Newer Older
1
2
#include <stdint.h>

Damien's avatar
Damien committed
3
4
5
6
// options to control how Micro Python is built

#define MICROPY_EMIT_THUMB          (1)
#define MICROPY_EMIT_INLINE_THUMB   (1)
7
#define MICROPY_ENABLE_GC           (1)
8
9
#define MICROPY_ENABLE_REPL_HELPERS (1)
#define MICROPY_ENABLE_FLOAT        (1)
Damien's avatar
Damien committed
10
11
12

// type definitions for the specific machine

Damien's avatar
Damien committed
13
14
#define BYTES_PER_WORD (4)

Damien's avatar
Damien committed
15
16
17
typedef int32_t machine_int_t; // must be pointer size
typedef uint32_t machine_uint_t; // must be pointer size
typedef void *machine_ptr_t; // must be of pointer size
18
typedef const void *machine_const_ptr_t; // must be of pointer size
Damien's avatar
Damien committed
19
typedef float machine_float_t;
20
21

machine_float_t machine_sqrt(machine_float_t x);
22
23
24

// board specific definitions

25
// choose 1 of these boards
26
27
//#define PYBOARD3
#define PYBOARD4
28
//#define STM32F4DISC
Dave Hylands's avatar
Dave Hylands committed
29
//#define NETDUINO_PLUS_2
30

31
32
33
#if defined (PYBOARD3)
    #define MICROPY_HW_BOARD_NAME       "PYBv3"

mux's avatar
mux committed
34
35
36
37
    #define MICROPY_HW_HAS_SWITCH       (1)
    #define MICROPY_HW_HAS_SDCARD       (1)
    #define MICROPY_HW_HAS_MMA7660      (1)
    #define MICROPY_HW_HAS_LIS3DSH      (0)
mux's avatar
mux committed
38
39
    #define MICROPY_HW_HAS_LCD          (0)
    #define MICROPY_HW_HAS_WLAN         (0)
mux's avatar
mux committed
40
41
42
43
44
    #define MICROPY_HW_ENABLE_RNG       (1)
    #define MICROPY_HW_ENABLE_RTC       (1)
    #define MICROPY_HW_ENABLE_TIMER     (1)
    #define MICROPY_HW_ENABLE_SERVO     (1)
    #define MICROPY_HW_ENABLE_AUDIO     (0)
45
46
47
48
49
50
51
52
53

    #define USRSW_PORT          (GPIOA)
    #define USRSW_PIN           (GPIO_Pin_13)
    #define USRSW_PUPD          (GPIO_PuPd_UP)
    #define USRSW_EXTI_PIN      (EXTI_PinSource13)
    #define USRSW_EXTI_PORT     (EXTI_PortSourceGPIOA)
    #define USRSW_EXTI_LINE     (EXTI_Line13)
    #define USRSW_EXTI_IRQN     (EXTI15_10_IRQn)
    #define USRSW_EXTI_EDGE     (EXTI_Trigger_Rising)
mux's avatar
mux committed
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

    /* LED */
    #define PYB_LED1_PORT   (GPIOA)
    #define PYB_LED1_PIN    (GPIO_Pin_8)

    #define PYB_LED2_PORT   (GPIOA)
    #define PYB_LED2_PIN    (GPIO_Pin_10)

    #define PYB_LED3_PORT   (GPIOC)
    #define PYB_LED3_PIN    (GPIO_Pin_4)

    #define PYB_LED4_PORT   (GPIOC)
    #define PYB_LED4_PIN    (GPIO_Pin_5)

    #define PYB_OTYPE       (GPIO_OType_OD)

    #define PYB_LED_ON(port, pin)  (port->BSRRH = pin)
    #define PYB_LED_OFF(port, pin) (port->BSRRL = pin)

73
#elif defined (PYBOARD4)
74
75
    #define MICROPY_HW_BOARD_NAME       "PYBv4"

mux's avatar
mux committed
76
77
78
79
    #define MICROPY_HW_HAS_SWITCH       (1)
    #define MICROPY_HW_HAS_SDCARD       (1)
    #define MICROPY_HW_HAS_MMA7660      (1)
    #define MICROPY_HW_HAS_LIS3DSH      (0)
80
    #define MICROPY_HW_HAS_LCD          (1)
mux's avatar
mux committed
81
    #define MICROPY_HW_HAS_WLAN         (0)
mux's avatar
mux committed
82
83
84
85
86
    #define MICROPY_HW_ENABLE_RNG       (1)
    #define MICROPY_HW_ENABLE_RTC       (1)
    #define MICROPY_HW_ENABLE_TIMER     (1)
    #define MICROPY_HW_ENABLE_SERVO     (1)
    #define MICROPY_HW_ENABLE_AUDIO     (0)
87
88
89
90
91
92
93

    #define USRSW_PORT          (GPIOB)
    #define USRSW_PIN           (GPIO_Pin_3)
    #define USRSW_PUPD          (GPIO_PuPd_UP)
    #define USRSW_EXTI_PIN      (EXTI_PinSource3)
    #define USRSW_EXTI_PORT     (EXTI_PortSourceGPIOB)
    #define USRSW_EXTI_LINE     (EXTI_Line3)
Dave Hylands's avatar
Dave Hylands committed
94
    #define USRSW_EXTI_IRQN     (EXTI3_IRQn)
95
    #define USRSW_EXTI_EDGE     (EXTI_Trigger_Rising)
mux's avatar
mux committed
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114

    /* LED */
    #define PYB_LED1_PORT   (GPIOA)
    #define PYB_LED1_PIN    (GPIO_Pin_13)

    #define PYB_LED2_PORT   (GPIOA)
    #define PYB_LED2_PIN    (GPIO_Pin_14)

    #define PYB_LED3_PORT   (GPIOA)
    #define PYB_LED3_PIN    (GPIO_Pin_15)

    #define PYB_LED4_PORT   (GPIOB)
    #define PYB_LED4_PIN    (GPIO_Pin_4)

    #define PYB_OTYPE       (GPIO_OType_PP)

    #define PYB_LED_ON(port, pin)  (port->BSRRL = pin)
    #define PYB_LED_OFF(port, pin) (port->BSRRH = pin)

115
#elif defined (STM32F4DISC)
116
117
    #define MICROPY_HW_BOARD_NAME       "F4DISC"

mux's avatar
mux committed
118
119
120
121
    #define MICROPY_HW_HAS_SWITCH       (1)
    #define MICROPY_HW_HAS_SDCARD       (0)
    #define MICROPY_HW_HAS_MMA7660      (0)
    #define MICROPY_HW_HAS_LIS3DSH      (1)
mux's avatar
mux committed
122
123
    #define MICROPY_HW_HAS_LCD          (0)
    #define MICROPY_HW_HAS_WLAN         (0)
mux's avatar
mux committed
124
125
126
127
128
    #define MICROPY_HW_ENABLE_RNG       (1)
    #define MICROPY_HW_ENABLE_RTC       (1)
    #define MICROPY_HW_ENABLE_TIMER     (1)
    #define MICROPY_HW_ENABLE_SERVO     (0)
    #define MICROPY_HW_ENABLE_AUDIO     (0)
129
130
131
132
133
134
135
136
137

    #define USRSW_PORT          (GPIOA)
    #define USRSW_PIN           (GPIO_Pin_0)
    #define USRSW_PUPD          (GPIO_PuPd_NOPULL)
    #define USRSW_EXTI_PIN      (EXTI_PinSource0)
    #define USRSW_EXTI_PORT     (EXTI_PortSourceGPIOA)
    #define USRSW_EXTI_LINE     (EXTI_Line0)
    #define USRSW_EXTI_IRQN     (EXTI0_IRQn)
    #define USRSW_EXTI_EDGE     (EXTI_Trigger_Falling)
mux's avatar
mux committed
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156

    /* LED */
    #define PYB_LED1_PORT   (GPIOD)
    #define PYB_LED1_PIN    (GPIO_Pin_14)

    #define PYB_LED2_PORT   (GPIOD)
    #define PYB_LED2_PIN    (GPIO_Pin_12)

    #define PYB_LED3_PORT   (GPIOD)
    #define PYB_LED3_PIN    (GPIO_Pin_15)

    #define PYB_LED4_PORT   (GPIOD)
    #define PYB_LED4_PIN    (GPIO_Pin_13)

    #define PYB_OTYPE       (GPIO_OType_PP)

    #define PYB_LED_ON(port, pin)  (port->BSRRL = pin)
    #define PYB_LED_OFF(port, pin) (port->BSRRH = pin)

Dave Hylands's avatar
Dave Hylands committed
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
#elif defined (NETDUINO_PLUS_2)
    #define MICROPY_HW_BOARD_NAME       "NetduinoPlus2"

    #define MICROPY_HW_HAS_SWITCH       (1)

    // On the netuino, the sdcard appears to be wired up as a 1-bit
    // SPI, so the driver needs to be converted to support that before
    // we can turn this on.
    #define MICROPY_HW_HAS_SDCARD       (0)
    #define MICROPY_HW_HAS_MMA7660      (0)
    #define MICROPY_HW_HAS_LIS3DSH      (0)
    #define MICROPY_HW_HAS_LCD          (0)
    #define MICROPY_HW_HAS_WLAN         (0)
    #define MICROPY_HW_ENABLE_RNG       (1)
    #define MICROPY_HW_ENABLE_RTC       (0)
    #define MICROPY_HW_ENABLE_TIMER     (1)
    #define MICROPY_HW_ENABLE_SERVO     (1)
    #define MICROPY_HW_ENABLE_AUDIO     (0)

    #define USRSW_PORT          (GPIOB)
    #define USRSW_PIN           (GPIO_Pin_11)
    #define USRSW_PUPD          (GPIO_PuPd_NOPULL)
    #define USRSW_EXTI_PIN      (EXTI_PinSource11)
    #define USRSW_EXTI_PORT     (EXTI_PortSourceGPIOB)
    #define USRSW_EXTI_LINE     (EXTI_Line11)
    #define USRSW_EXTI_IRQN     (EXTI15_10_IRQn)
    #define USRSW_EXTI_EDGE     (EXTI_Trigger_Rising)

    /* LED */
    #define PYB_LED1_PORT   (GPIOA)         // Blue LED
    #define PYB_LED1_PIN    (GPIO_Pin_10)

    #define PYB_LED2_PORT   (GPIOC)         // White LED (aka Power)
    #define PYB_LED2_PIN    (GPIO_Pin_13)

    #define PYB_LED3_PORT   (GPIOA)         // Same as Led(1)
    #define PYB_LED3_PIN    (GPIO_Pin_10)

    #define PYB_LED4_PORT   (GPIOC)         // Same as Led(2)
    #define PYB_LED4_PIN    (GPIO_Pin_13)

    #define PYB_OTYPE       (GPIO_OType_PP)

    #define PYB_LED_ON(port, pin)  (port->BSRRL = pin)
    #define PYB_LED_OFF(port, pin) (port->BSRRH = pin)

    #define HSE_VALUE (25000000)
204
205
#endif

206
207
#define STM32F40_41xxx
#define USE_STDPERIPH_DRIVER
Dave Hylands's avatar
Dave Hylands committed
208
#if !defined(HSE_VALUE)
209
#define HSE_VALUE (8000000)
Dave Hylands's avatar
Dave Hylands committed
210
#endif
211
212
#define USE_DEVICE_MODE
//#define USE_HOST_MODE