source: rtems/c/src/lib/libbsp/arm/stm32f4/include/stm32f4.h @ 78c9fe8

5
Last change on this file since 78c9fe8 was 040ed0b4, checked in by Chris Nott <chrisn@…>, on 10/18/14 at 08:55:37

bsp/stm32f4: Add header files

Added register definition headers for STM32F4 ADC, EXTI, PWR, SYSCFG,
TIM, OTGFS and updated FLASH and RCC. Fixed PLL_Q for USB 48MHz
operation. Added flash prefetch enable.

  • Property mode set to 100644
File size: 6.5 KB
Line 
1/**
2 * @file
3 * @ingroup stm32f4_reg
4 * @brief Register definitions.
5 */
6
7/*
8 * Copyright (c) 2012 Sebastian Huber.  All rights reserved.
9 *
10 *  embedded brains GmbH
11 *  Obere Lagerstr. 30
12 *  82178 Puchheim
13 *  Germany
14 *  <rtems@embedded-brains.de>
15 *
16 * The license and distribution terms for this file may be
17 * found in the file LICENSE in this distribution or at
18 * http://www.rtems.org/license/LICENSE.
19 */
20
21#ifndef LIBBSP_ARM_STM32F4_STM32F4_H
22#define LIBBSP_ARM_STM32F4_STM32F4_H
23
24#include <bsp/utility.h>
25#include <bspopts.h>
26
27#define STM32F4_BASE 0x00
28
29#ifdef STM32F4_FAMILY_F4XXXX
30
31/**
32 * @defgroup stm32f4_reg Register Defintions
33 * @ingroup arm_stm32f4
34 * @brief Register Definitions
35 * @{
36 */
37
38#define STM32F4_APB1_BASE (STM32F4_BASE + 0x40000000)
39#define STM32F4_APB2_BASE (STM32F4_BASE + 0x40010000)
40#define STM32F4_AHB1_BASE (STM32F4_BASE + 0x40020000)
41#define STM32F4_AHB2_BASE (STM32F4_BASE + 0x50000000)
42
43/**
44 * @name STM32f4XXXX GPIO
45 * @{
46 */
47
48#include <bsp/stm32f4xxxx_gpio.h>
49#define STM32F4_GPIO(i) ((volatile stm32f4_gpio *) (STM32F4_BASE + 0x40020000) + (i))
50
51/** @} */
52
53/**
54 * @name STM32F4XXXX RCC
55 * @{
56 */
57
58#include <bsp/stm32f4xxxx_rcc.h>
59#define STM32F4_RCC ((volatile stm32f4_rcc *) (STM32F4_AHB1_BASE + 0x3800))
60
61/** @} */
62
63/**
64 * @name STM32F4XXXX FLASH
65 * @{
66 */
67
68#include <bsp/stm32f4xxxx_flash.h>
69#define STM32F4_FLASH ((volatile stm32f4_flash *) (STM32F4_BASE + 0x40023C00))
70
71/** @} */
72
73#include <bsp/stm32_i2c.h>
74
75/**
76 * @name STM32 I2C
77 * @{
78 */
79
80#define STM32F4_I2C3 ((volatile stm32f4_i2c *) (STM32F4_BASE + 0x40005C00))
81#define STM32F4_I2C2 ((volatile stm32f4_i2c *) (STM32F4_BASE + 0x40005800))
82#define STM32F4_I2C1 ((volatile stm32f4_i2c *) (STM32F4_BASE + 0x40005400))
83
84/** @} */
85
86/**
87 * @name STM32 USART
88 * @{
89 */
90
91#include <bsp/stm32_usart.h>
92#define STM32F4_USART_1 ((volatile stm32f4_usart *) (STM32F4_BASE + 0x40011000))
93#define STM32F4_USART_2 ((volatile stm32f4_usart *) (STM32F4_BASE + 0x40004400))
94#define STM32F4_USART_3 ((volatile stm32f4_usart *) (STM32F4_BASE + 0x40004800))
95#define STM32F4_USART_4 ((volatile stm32f4_usart *) (STM32F4_BASE + 0x40004c00))
96#define STM32F4_USART_5 ((volatile stm32f4_usart *) (STM32F4_BASE + 0x40005000))
97#define STM32F4_USART_6 ((volatile stm32f4_usart *) (STM32F4_BASE + 0x40011400))
98
99/** @} */
100
101/**
102 * @name STM32f4XXXX PWR
103 * @{
104 */
105
106#include <bsp/stm32f4xxxx_pwr.h>
107#define STM32F4_PWR ((volatile stm32f4_pwr *) (STM32F4_APB1_BASE + 0x7000))
108
109/** @} */
110
111/**
112 * @name STM32f4XXXX EXTI
113 * @{
114 */
115
116#include <bsp/stm32f4xxxx_exti.h>
117#define STM32F4_EXTI ((volatile stm32f4_exti *) (STM32F4_APB2_BASE + 0x3c00))
118
119/** @} */
120
121/**
122 * @name STM32f4XXXX SYSCFG
123 * @{
124 */
125
126#include <bsp/stm32f4xxxx_syscfg.h>
127#define STM32F4_SYSCFG ((volatile stm32f4_syscfg *) (STM32F4_APB2_BASE + 0x3800))
128
129/** @} */
130
131/**
132 * @name STM32f4XXXX FLASH
133 * @{
134 */
135
136#include <bsp/stm32f4xxxx_flash.h>
137#define STM32F4_FLASH ((volatile stm32f4_flash *) (STM32F4_AHB1_BASE + 0x3c00))
138
139/** @} */
140
141/**
142 * @name STM32f4XXXX TIM
143 * @{
144 */
145
146#include <bsp/stm32f4xxxx_tim.h>
147#define STM32F4_TIM1 ((volatile stm32f4_tim *) (STM32F4_APB2_BASE + 0x0000))
148#define STM32F4_TIM2 ((volatile stm32f4_tim *) (STM32F4_APB1_BASE + 0x0000))
149#define STM32F4_TIM3 ((volatile stm32f4_tim *) (STM32F4_APB1_BASE + 0x0400))
150#define STM32F4_TIM4 ((volatile stm32f4_tim *) (STM32F4_APB1_BASE + 0x0800))
151#define STM32F4_TIM5 ((volatile stm32f4_tim *) (STM32F4_APB1_BASE + 0x0c00))
152#define STM32F4_TIM6 ((volatile stm32f4_tim *) (STM32F4_APB1_BASE + 0x1000))
153#define STM32F4_TIM7 ((volatile stm32f4_tim *) (STM32F4_APB1_BASE + 0x1400))
154#define STM32F4_TIM8 ((volatile stm32f4_tim *) (STM32F4_APB2_BASE + 0x0400))
155#define STM32F4_TIM9 ((volatile stm32f4_tim *) (STM32F4_APB2_BASE + 0x4000))
156#define STM32F4_TIM10 ((volatile stm32f4_tim *) (STM32F4_APB2_BASE + 0x4400))
157#define STM32F4_TIM11 ((volatile stm32f4_tim *) (STM32F4_APB2_BASE + 0x4800))
158#define STM32F4_TIM12 ((volatile stm32f4_tim *) (STM32F4_APB1_BASE + 0x1800))
159#define STM32F4_TIM13 ((volatile stm32f4_tim *) (STM32F4_APB1_BASE + 0x1c00))
160#define STM32F4_TIM14 ((volatile stm32f4_tim *) (STM32F4_APB1_BASE + 0x2000))
161
162/** @} */
163
164/**
165 * @name STM32f4XXXX ADC
166 * @{
167 */
168
169#include <bsp/stm32f4xxxx_adc.h>
170#define STM32F4_ADC1 ((volatile stm32f4_adc_chan *) (STM32F4_APB2_BASE + 0x2000))
171#define STM32F4_ADC2 ((volatile stm32f4_adc_chan *) (STM32F4_APB2_BASE + 0x2100))
172#define STM32F4_ADC3 ((volatile stm32f4_adc_chan *) (STM32F4_APB2_BASE + 0x2200))
173#define STM32F4_ADC_COMMON ((volatile stm32f4_adc_com *) (STM32F4_APB2_BASE + 0x2300))
174
175/** @} */
176
177/**
178 * @name STM32f4XXXX OTGFS
179 * @{
180 */
181
182#include <bsp/stm32f4xxxx_otgfs.h>
183#define STM32F4_OTGFS_BASE (STM32F4_AHB2_BASE + 0x0000)
184#define STM32F4_OTGFS_CORE ((volatile stm32f4_otgfs *) (STM32F4_OTGFS_BASE + 0x000))
185#define STM32F4_OTGFS_DEV ((volatile stm32f4_otgfs_dregs *) (STM32F4_OTGFS_BASE + 0x800))
186#define STM32F4_OTGFS_INEP ((volatile stm32f4_otgfs_inepregs *) (STM32F4_OTGFS_BASE + 0x900))
187#define STM32F4_OTGFS_OUTEP ((volatile stm32f4_otgfs_outepregs *) (STM32F4_OTGFS_BASE + 0xb00))
188#define STM32F4_OTGFS_PWRCTL ((volatile stm32f4_otgfs_pwrctlregs *) (STM32F4_OTGFS_BASE + 0xe00))
189
190#define STM32F4_OTGFS_FIFO_BASE (STM32F4_OTGFS_BASE + USB_FIFO_BASE)
191
192/** @} */
193
194#endif /* STM32F4_FAMILY_F4XXXX */
195
196#ifdef STM32F4_FAMILY_F10XXX
197
198/**
199 * @name STM32F10 EXTI
200 * @{
201 */
202
203#include <bsp/stm32f10xxx_exti.h>
204#define STM32F4_EXTI ((volatile stm32f4_exti *) (STM32F4_BASE + 0x40010400))
205
206/** @} */
207
208/**
209 * @name STM32F10XXX GPIO
210 * @{
211 */
212
213#include <bsp/stm32f10xxx_gpio.h>
214#define STM32F4_GPIO(i) ((volatile stm32f4_gpio *) (STM32F4_BASE + 0x40010800 + i * 0x400))
215#define STM32F4_AFIO ((volatile stm32f4_afio *) (STM32F4_BASE + 0x40010000))
216
217/** @} */
218
219/**
220 * @name STM32F10XXX RCC
221 * @{
222 */
223
224#include <bsp/stm32f10xxx_rcc.h>
225#define STM32F4_RCC ((volatile stm32f4_rcc *) (STM32F4_BASE + 0x40021000))
226
227/** @} */
228
229/**
230 * @name STM32 I2C
231 * @{
232 */
233
234#include <bsp/stm32_i2c.h>
235#define STM32F4_I2C2 ((volatile stm32f4_i2c *) (STM32F4_BASE + 0x40005800))
236#define STM32F4_I2C1 ((volatile stm32f4_i2c *) (STM32F4_BASE + 0x40005400))
237
238/** @} */
239
240/**
241 * @name STM32 USART
242 * @{
243 */
244
245#include <bsp/stm32_usart.h>
246#define STM32F4_USART_1 ((volatile stm32f4_usart *) (STM32F4_BASE + 0x40013800))
247#define STM32F4_USART_2 ((volatile stm32f4_usart *) (STM32F4_BASE + 0x40004400))
248#define STM32F4_USART_3 ((volatile stm32f4_usart *) (STM32F4_BASE + 0x40004800))
249#define STM32F4_USART_4 ((volatile stm32f4_usart *) (STM32F4_BASE + 0x40004c00))
250#define STM32F4_USART_5 ((volatile stm32f4_usart *) (STM32F4_BASE + 0x40005000))
251
252/** @} */
253
254/** @} */
255
256#endif /* STM32F4_FAMILY_F10XXX */
257
258#endif /* LIBBSP_ARM_STM32F4_STM32F4_H */
Note: See TracBrowser for help on using the repository browser.