Skip to content

Commit a572799

Browse files
authored
Merge pull request #3708 from thread-liu/add_stm32mp1_library
[add] STM32MP157A Discovery bsp
2 parents 6bcf52b + 8c44edf commit a572799

File tree

258 files changed

+989637
-13
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

258 files changed

+989637
-13
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ env:
119119
- RTT_BSP='stm32/stm32l476-st-nucleo' RTT_TOOL_CHAIN='sourcery-arm'
120120
- RTT_BSP='stm32/stm32l496-ali-developer' RTT_TOOL_CHAIN='sourcery-arm'
121121
- RTT_BSP='stm32/stm32l496-st-nucleo' RTT_TOOL_CHAIN='sourcery-arm'
122+
- RTT_BSP='stm32/stm32mp157a-st-discovery' RTT_TOOL_CHAIN='sourcery-arm'
122123
- RTT_BSP='stm32f20x' RTT_TOOL_CHAIN='sourcery-arm'
123124
- RTT_BSP='swm320-lq100' RTT_TOOL_CHAIN='sourcery-arm'
124125
# - RTT_BSP='taihu' RTT_TOOL_CHAIN='sourcery-ppc'

bsp/stm32/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ STM32 系列 BSP 目前支持情况如下表所示:
5353
| [stm32l475-st-discovery](stm32l475-st-discovery) | ST 官方 stm32l475-discovery 开发板 |
5454
| [stm32l476-st-nucleo](stm32l476-st-nucleo) | ST 官方 STM32L476-nucleo 开发板 |
5555
| [stm32l496-ali-developer](stm32l496-ali-developer) | 诺行 STM32L496 Ali Developer Kit 开发板 |
56+
| **MP1 系列** | |
57+
| [stm32mp157a-st-discovery](stm32mp157a-st-discovery) | ST 官方 STM32MP157A-ST-Discovery Kit 开发板 |
5658

5759
可以通过阅读相应 BSP 下的 README 来快速上手,如果想要使用 BSP 更多功能可参考 docs 文件夹下提供的说明文档,如下表所示:
5860

bsp/stm32/libraries/HAL_Drivers/Kconfig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@ config BSP_USING_CRC
3030
select RT_HWCRYPTO_USING_CRC
3131
# "Crypto device frame dose not support above 8-bits granularity"
3232
# "Reserve progress, running well, about 32-bits granularity, such as stm32f1, stm32f4"
33-
depends on (SOC_SERIES_STM32L4 || SOC_SERIES_STM32F0 || SOC_SERIES_STM32F7 || SOC_SERIES_STM32H7)
33+
depends on (SOC_SERIES_STM32L4 || SOC_SERIES_STM32F0 || SOC_SERIES_STM32F7 || SOC_SERIES_STM32H7 || SOC_SERIES_STM32MP1)
3434
default n
3535

3636
config BSP_USING_RNG
3737
bool "Enable RNG (Random Number Generator)"
3838
select RT_USING_HWCRYPTO
3939
select RT_HWCRYPTO_USING_RNG
4040
depends on (SOC_SERIES_STM32L4 || SOC_SERIES_STM32F4 || SOC_SERIES_STM32F7 || \
41-
SOC_SERIES_STM32H7)
41+
SOC_SERIES_STM32H7 || SOC_SERIES_STM32MP1)
4242
default n
4343

4444
config BSP_USING_UDID
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
/*
2+
* Copyright (c) 2006-2018, RT-Thread Development Team
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*
6+
* Change Logs:
7+
* Date Author Notes
8+
* 2019-01-02 zylx first version
9+
* 2019-01-08 SummerGift clean up the code
10+
*/
11+
12+
#ifndef __DMA_CONFIG_H__
13+
#define __DMA_CONFIG_H__
14+
15+
#include <rtthread.h>
16+
17+
#ifdef __cplusplus
18+
extern "C" {
19+
#endif
20+
21+
/* DMA2 stream0 */
22+
#if defined(BSP_SPI1_RX_USING_DMA) && !defined(SPI1_RX_DMA_INSTANCE)
23+
#define SPI1_DMA_RX_IRQHandler DMA2_Stream0_IRQHandler
24+
#define SPI1_RX_DMA_RCC RCC_MC_AHB2ENSETR_DMA2EN
25+
#define SPI1_RX_DMA_INSTANCE DMA2_Stream0
26+
#define SPI1_RX_DMA_CHANNEL DMA_REQUEST_SPI1_RX
27+
#define SPI1_RX_DMA_IRQ DMA2_Stream0_IRQn
28+
#elif defined(BSP_SPI4_RX_USING_DMA) && !defined(SPI4_RX_DMA_INSTANCE)
29+
#define SPI4_DMA_RX_IRQHandler DMA2_Stream0_IRQHandler
30+
#define SPI4_RX_DMA_RCC RCC_MC_AHB2ENSETR_DMA2EN
31+
#define SPI4_RX_DMA_INSTANCE DMA2_Stream0
32+
#define SPI4_RX_DMA_CHANNEL DMA_REQUEST_SPI4_RX
33+
#define SPI4_RX_DMA_IRQ DMA2_Stream0_IRQn
34+
#elif defined(BSP_UART5_RX_USING_DMA) && !defined(UART5_RX_DMA_INSTANCE)
35+
#define UART5_DMA_RX_IRQHandler DMA2_Stream0_IRQHandler
36+
#define UART5_RX_DMA_RCC RCC_MC_AHB2ENSETR_DMA2EN
37+
#define UART5_RX_DMA_INSTANCE DMA2_Stream0
38+
#define UART5_RX_DMA_CHANNEL DMA_REQUEST_UART5_RX
39+
#define UART5_RX_DMA_IRQ DMA2_Stream0_IRQn
40+
#endif
41+
42+
/* DMA2 stream1 */
43+
#if defined(BSP_SPI1_TX_USING_DMA) && !defined(SPI1_TX_DMA_INSTANCE)
44+
#define SPI1_DMA_TX_IRQHandler DMA2_Stream1_IRQHandler
45+
#define SPI1_TX_DMA_RCC RCC_MC_AHB2ENSETR_DMA2EN
46+
#define SPI1_TX_DMA_INSTANCE DMA2_Stream1
47+
#define SPI1_TX_DMA_CHANNEL DMA_REQUEST_SPI1_RX
48+
#define SPI1_TX_DMA_IRQ DMA2_Stream1_IRQn
49+
#elif defined(BSP_SPI4_TX_USING_DMA) && !defined(SPI4_TX_DMA_INSTANCE)
50+
#define SPI4_DMA_TX_IRQHandler DMA2_Stream1_IRQHandler
51+
#define SPI4_TX_DMA_RCC RCC_MC_AHB2ENSETR_DMA2EN
52+
#define SPI4_TX_DMA_INSTANCE DMA2_Stream1
53+
#define SPI4_TX_DMA_CHANNEL DMA_REQUEST_SPI4_TX
54+
#define SPI4_TX_DMA_IRQ DMA2_Stream1_IRQn
55+
#endif
56+
57+
/* DMA2 stream2 */
58+
#if defined(BSP_QSPI_USING_DMA) && !defined(QSPI_DMA_INSTANCE)
59+
#define QSPI_DMA_IRQHandler DMA2_Stream2_IRQHandler
60+
#define QSPI_DMA_RCC RCC_MC_AHB2ENSETR_DMA2EN
61+
#define QSPI_DMA_INSTANCE DMA2_Stream2
62+
#define QSPI_DMA_CHANNEL DMA_CHANNEL_11
63+
#define QSPI_DMA_IRQ DMA2_Stream2_IRQn
64+
#endif
65+
66+
/* DMA2 stream3 */
67+
#if defined(BSP_SPI5_RX_USING_DMA) && !defined(SPI5_RX_DMA_INSTANCE)
68+
#define SPI5_DMA_RX_IRQHandler DMA2_Stream3_IRQHandler
69+
#define SPI5_RX_DMA_RCC RCC_MC_AHB2ENSETR_DMA2EN
70+
#define SPI5_RX_DMA_INSTANCE DMA2_Stream3
71+
#define SPI5_RX_DMA_CHANNEL DMA_REQUEST_SPI5_RX
72+
#define SPI5_RX_DMA_IRQ DMA2_Stream3_IRQn
73+
#endif
74+
75+
/* DMA2 stream4 */
76+
#if defined(BSP_SPI5_TX_USING_DMA) && !defined(SPI5_TX_DMA_INSTANCE)
77+
#define SPI5_DMA_TX_IRQHandler DMA2_Stream4_IRQHandler
78+
#define SPI5_TX_DMA_RCC RCC_MC_AHB2ENSETR_DMA2EN
79+
#define SPI5_TX_DMA_INSTANCE DMA2_Stream4
80+
#define SPI5_TX_DMA_CHANNEL DMA_REQUEST_SPI5_TX
81+
#define SPI5_TX_DMA_IRQ DMA2_Stream4_IRQn
82+
#endif
83+
84+
/* DMA2 stream5 */
85+
#if defined(BSP_UART4_TX_USING_DMA) && !defined(UART5_TX_DMA_INSTANCE)
86+
#define UART4_DMA_TX_IRQHandler DMA2_Stream5_IRQHandler
87+
#define UART4_TX_DMA_RCC RCC_MC_AHB2ENSETR_DMA2EN
88+
#define UART4_TX_DMA_INSTANCE DMA2_Stream5
89+
#define UART4_TX_DMA_CHANNEL DMA_REQUEST_UART4_TX
90+
#define UART4_TX_DMA_IRQ DMA2_Stream5_IRQn
91+
#endif
92+
93+
/* DMA2 stream6 */
94+
#if defined(BSP_UART4_RX_USING_DMA) && !defined(UART4_RX_DMA_INSTANCE)
95+
#define UART4_DMA_RX_IRQHandler DMA2_Stream6_IRQHandler
96+
#define UART4_RX_DMA_RCC RCC_MC_AHB2ENSETR_DMA2EN
97+
#define UART4_RX_DMA_INSTANCE DMA2_Stream6
98+
#define UART4_RX_DMA_CHANNEL DMA_REQUEST_UART4_RX
99+
#define UART4_RX_DMA_IRQ DMA2_Stream6_IRQn
100+
#endif
101+
102+
/* DMA2 stream7 */
103+
#if defined(BSP_UART5_TX_USING_DMA) && !defined(UART5_TX_DMA_INSTANCE)
104+
#define UART5_DMA_TX_IRQHandler DMA2_Stream7_IRQHandler
105+
#define UART5_TX_DMA_RCC RCC_MC_AHB2ENSETR_DMA2EN
106+
#define UART5_TX_DMA_INSTANCE DMA2_Stream7
107+
#define UART5_TX_DMA_CHANNEL DMA_REQUEST_UART5_TX
108+
#define UART5_TX_DMA_IRQ DMA2_Stream7_IRQn
109+
#endif
110+
111+
#ifdef __cplusplus
112+
}
113+
#endif
114+
115+
#endif /* __DMA_CONFIG_H__ */
Lines changed: 235 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,235 @@
1+
/*
2+
* Copyright (c) 2006-2018, RT-Thread Development Team
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*
6+
* Change Logs:
7+
* Date Author Notes
8+
* 2018-10-30 SummerGift first version
9+
* 2019-01-03 zylx modify dma support
10+
*/
11+
12+
#ifndef __UART_CONFIG_H__
13+
#define __UART_CONFIG_H__
14+
15+
#include <rtthread.h>
16+
17+
#ifdef __cplusplus
18+
extern "C" {
19+
#endif
20+
21+
#if defined(BSP_USING_UART1)
22+
#ifndef UART1_CONFIG
23+
#define UART1_CONFIG \
24+
{ \
25+
.name = "uart1", \
26+
.Instance = USART1, \
27+
.irq_type = USART1_IRQn, \
28+
}
29+
#endif /* UART1_CONFIG */
30+
31+
#if defined(BSP_UART1_RX_USING_DMA)
32+
#ifndef UART1_DMA_RX_CONFIG
33+
#define UART1_DMA_RX_CONFIG \
34+
{ \
35+
.Instance = UART1_RX_DMA_INSTANCE, \
36+
.request = UART1_RX_DMA_CHANNEL, \
37+
.dma_rcc = UART1_RX_DMA_RCC, \
38+
.dma_irq = UART1_RX_DMA_IRQ, \
39+
}
40+
#endif /* UART1_DMA_RX_CONFIG */
41+
#endif /* BSP_UART1_RX_USING_DMA */
42+
43+
#if defined(BSP_UART1_TX_USING_DMA)
44+
#ifndef UART1_DMA_TX_CONFIG
45+
#define UART1_DMA_TX_CONFIG \
46+
{ \
47+
.Instance = UART1_TX_DMA_INSTANCE, \
48+
.request = UART1_TX_DMA_CHANNEL, \
49+
.dma_rcc = UART1_TX_DMA_RCC, \
50+
.dma_irq = UART1_TX_DMA_IRQ, \
51+
}
52+
#endif /* UART1_DMA_TX_CONFIG */
53+
#endif /* BSP_UART1_TX_USING_DMA */
54+
#endif /* BSP_USING_UART1 */
55+
56+
#if defined(BSP_USING_UART2)
57+
#ifndef UART2_CONFIG
58+
#define UART2_CONFIG \
59+
{ \
60+
.name = "uart2", \
61+
.Instance = USART2, \
62+
.irq_type = USART2_IRQn, \
63+
}
64+
#endif /* UART2_CONFIG */
65+
66+
#if defined(BSP_UART2_RX_USING_DMA)
67+
#ifndef UART2_DMA_RX_CONFIG
68+
#define UART2_DMA_RX_CONFIG \
69+
{ \
70+
.Instance = UART2_RX_DMA_INSTANCE, \
71+
.request = UART2_RX_DMA_CHANNEL, \
72+
.dma_rcc = UART2_RX_DMA_RCC, \
73+
.dma_irq = UART2_RX_DMA_IRQ, \
74+
}
75+
#endif /* UART2_DMA_RX_CONFIG */
76+
#endif /* BSP_UART2_RX_USING_DMA */
77+
78+
#if defined(BSP_UART2_TX_USING_DMA)
79+
#ifndef UART2_DMA_TX_CONFIG
80+
#define UART2_DMA_TX_CONFIG \
81+
{ \
82+
.Instance = UART2_TX_DMA_INSTANCE, \
83+
.request = UART2_TX_DMA_CHANNEL, \
84+
.dma_rcc = UART2_TX_DMA_RCC, \
85+
.dma_irq = UART2_TX_DMA_IRQ, \
86+
}
87+
#endif /* UART2_DMA_TX_CONFIG */
88+
#endif /* BSP_UART2_TX_USING_DMA */
89+
#endif /* BSP_USING_UART2 */
90+
91+
#if defined(BSP_USING_UART3)
92+
#ifndef UART3_CONFIG
93+
#define UART3_CONFIG \
94+
{ \
95+
.name = "uart3", \
96+
.Instance = USART3, \
97+
.irq_type = USART3_IRQn, \
98+
}
99+
#endif /* UART3_CONFIG */
100+
101+
#if defined(BSP_UART3_RX_USING_DMA)
102+
#ifndef UART3_DMA_RX_CONFIG
103+
#define UART3_DMA_RX_CONFIG \
104+
{ \
105+
.Instance = UART3_RX_DMA_INSTANCE, \
106+
.request = UART3_RX_DMA_CHANNEL, \
107+
.dma_rcc = UART3_RX_DMA_RCC, \
108+
.dma_irq = UART3_RX_DMA_IRQ, \
109+
}
110+
#endif /* UART3_DMA_RX_CONFIG */
111+
#endif /* BSP_UART3_RX_USING_DMA */
112+
113+
#if defined(BSP_UART3_TX_USING_DMA)
114+
#ifndef UART3_DMA_TX_CONFIG
115+
#define UART3_DMA_TX_CONFIG \
116+
{ \
117+
.Instance = UART3_TX_DMA_INSTANCE, \
118+
.request = UART3_TX_DMA_CHANNEL, \
119+
.dma_rcc = UART3_TX_DMA_RCC, \
120+
.dma_irq = UART3_TX_DMA_IRQ, \
121+
}
122+
#endif /* UART3_DMA_TX_CONFIG */
123+
#endif /* BSP_UART3_TX_USING_DMA */
124+
#endif /* BSP_USING_UART3 */
125+
126+
#if defined(BSP_USING_UART4)
127+
#ifndef UART4_CONFIG
128+
#define UART4_CONFIG \
129+
{ \
130+
.name = "uart4", \
131+
.Instance = UART4, \
132+
.irq_type = UART4_IRQn, \
133+
}
134+
#endif /* UART4_CONFIG */
135+
136+
#if defined(BSP_UART4_RX_USING_DMA)
137+
#ifndef UART4_DMA_RX_CONFIG
138+
#define UART4_DMA_RX_CONFIG \
139+
{ \
140+
.Instance = UART4_RX_DMA_INSTANCE, \
141+
.request = UART4_RX_DMA_CHANNEL, \
142+
.dma_rcc = UART4_RX_DMA_RCC, \
143+
.dma_irq = UART4_RX_DMA_IRQ, \
144+
}
145+
#endif /* UART4_DMA_RX_CONFIG */
146+
#endif /* BSP_UART4_RX_USING_DMA */
147+
148+
#if defined(BSP_UART4_TX_USING_DMA)
149+
#ifndef UART4_DMA_TX_CONFIG
150+
#define UART4_DMA_TX_CONFIG \
151+
{ \
152+
.Instance = UART4_TX_DMA_INSTANCE, \
153+
.request = UART4_TX_DMA_CHANNEL, \
154+
.dma_rcc = UART4_TX_DMA_RCC, \
155+
.dma_irq = UART4_TX_DMA_IRQ, \
156+
}
157+
#endif /* UART4_DMA_TX_CONFIG */
158+
#endif /* BSP_UART4_RX_USING_DMA */
159+
#endif /* BSP_USING_UART4 */
160+
161+
#if defined(BSP_USING_UART5)
162+
#ifndef UART5_CONFIG
163+
#define UART5_CONFIG \
164+
{ \
165+
.name = "uart5", \
166+
.Instance = UART5, \
167+
.irq_type = UART5_IRQn, \
168+
}
169+
#endif /* UART5_CONFIG */
170+
171+
#if defined(BSP_UART5_RX_USING_DMA)
172+
#ifndef UART5_DMA_RX_CONFIG
173+
#define UART5_DMA_RX_CONFIG \
174+
{ \
175+
.Instance = UART5_RX_DMA_INSTANCE, \
176+
.request = UART5_RX_DMA_CHANNEL, \
177+
.dma_rcc = UART5_RX_DMA_RCC, \
178+
.dma_irq = UART5_RX_DMA_IRQ, \
179+
}
180+
#endif /* UART5_DMA_RX_CONFIG */
181+
#endif /* BSP_UART5_RX_USING_DMA */
182+
183+
#if defined(BSP_UART5_TX_USING_DMA)
184+
#ifndef UART5_DMA_TX_CONFIG
185+
#define UART5_DMA_TX_CONFIG \
186+
{ \
187+
.Instance = UART5_TX_DMA_INSTANCE, \
188+
.request = UART5_TX_DMA_CHANNEL, \
189+
.dma_rcc = UART5_TX_DMA_RCC, \
190+
.dma_irq = UART5_TX_DMA_IRQ, \
191+
}
192+
#endif /* UART5_DMA_TX_CONFIG */
193+
#endif /* BSP_UART5_TX_USING_DMA */
194+
#endif /* BSP_USING_UART5 */
195+
196+
#if defined(BSP_USING_UART6)
197+
#ifndef UART6_CONFIG
198+
#define UART6_CONFIG \
199+
{ \
200+
.name = "uart6", \
201+
.Instance = USART6, \
202+
.irq_type = USART6_IRQn, \
203+
}
204+
#endif /* UART6_CONFIG */
205+
206+
#if defined(BSP_UART6_RX_USING_DMA)
207+
#ifndef UART6_DMA_RX_CONFIG
208+
#define UART6_DMA_RX_CONFIG \
209+
{ \
210+
.Instance = UART6_RX_DMA_INSTANCE, \
211+
.request = UART6_RX_DMA_CHANNEL, \
212+
.dma_rcc = UART6_RX_DMA_RCC, \
213+
.dma_irq = UART6_RX_DMA_IRQ, \
214+
}
215+
#endif /* UART6_DMA_RX_CONFIG */
216+
#endif /* BSP_UART6_RX_USING_DMA */
217+
218+
#if defined(BSP_UART6_TX_USING_DMA)
219+
#ifndef UART6_DMA_TX_CONFIG
220+
#define UART6_DMA_TX_CONFIG \
221+
{ \
222+
.Instance = UART6_TX_DMA_INSTANCE, \
223+
.request = UART6_TX_DMA_CHANNEL, \
224+
.dma_rcc = UART6_TX_DMA_RCC, \
225+
.dma_irq = UART6_TX_DMA_IRQ, \
226+
}
227+
#endif /* UART6_DMA_TX_CONFIG */
228+
#endif /* BSP_UART6_TX_USING_DMA */
229+
#endif /* BSP_USING_UART6 */
230+
231+
#ifdef __cplusplus
232+
}
233+
#endif
234+
235+
#endif

0 commit comments

Comments
 (0)