Merge pull request #3 from RT-Thread/master

sync
This commit is contained in:
HubretXie 2019-01-12 15:00:18 +08:00 committed by GitHub
commit 2f8f8f85e2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
308 changed files with 31602 additions and 2390 deletions

View File

@ -1,35 +1,28 @@
### Summary of this Pull Request (PR) 拉取/合并请求的简述 ## 拉取/合并请求描述:(PR description)
**Add description here.** **请在这里加入描述** 请仔细阅读以下文字。请在这里填写您的PR描述可以包括以下之一的内容为什么提交这份PR解决的问题是什么你的解决方案是什么
Please read the following carefully. Please fill in your PR description here, which can include one of the following items: why to submit this PR; what is the problem solved and what is your solution;
### Intent for your PR 拉取/合并请求的目的 并确认已经在什么情况或板卡上进行了测试。
And confirm in which case or board have been tested.
Choose one (Mandatory): 必须选择一项 以下的内容请在提交PR后一项项进行check没问题后逐条在页面上打钩。
The following contents should be checked item by item after submitted PR, and ticked on the browser one by one after no problem.
- [ ] This PR is for a code-review and is intended to get feedback 本拉取/合并请求是一个草稿版本 ### 当前拉取/合并请求的状态 Intent for your PR
- [ ] This PR is mature, and ready to be integrated into the repo 本拉取/合并请求是一个成熟版本
### Reviewers (Mandatory): 代码审阅者(必须指定) 必须选择一项 Choose one (Mandatory):
(@<github.com username(s)> Ex: @user1, @user2) - [ ] 本拉取/合并请求是一个草稿版本 This PR is for a code-review and is intended to get feedback
- [ ] 本拉取/合并请求是一个成熟版本 This PR is mature, and ready to be integrated into the repo
### Code Quality 代码质量 ### 代码质量 Code Quality
As part of this pull request, I've considered the following: 我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:
我在这个拉取/合并请求中已经考虑了:
- [ ] Already check the difference between PR and old code 已经仔细查看过代码改动的对比 - [ ] 已经仔细查看过代码改动的对比 Already check the difference between PR and old code
- [ ] Style guide is adhered to, including spacing, naming and other style 代码风格正确,包括缩进空格,命名及其他风格 - [ ] 代码风格正确,包括缩进空格,命名及其他风格 Style guide is adhered to, including spacing, naming and other style
- [ ] All redundant code is removed and cleaned up 没有垃圾代码,代码尽量精简,不包含`#if 0`代码,不包含已经被注释了的代码 - [ ] 没有垃圾代码,代码尽量精简,不包含`#if 0`代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up
- [ ] All modifications are justified and not affect other components or BSP 所有变更均有原因及合理的并且不会影响到其他软件组件代码或BSP - [ ] 所有变更均有原因及合理的并且不会影响到其他软件组件代码或BSP All modifications are justified and not affect other components or BSP
- [ ] I've commented appropriately where code is tricky 对难懂代码均提供对应的注释 - [ ] 对难懂代码均提供对应的注释 I've commented appropriately where code is tricky
- [ ] Code in this PR is of high quality 本拉取/合并请求代码是高质量的 - [ ] 本拉取/合并请求代码是高质量的 Code in this PR is of high quality
### Testing代码测试
I've tested the code using the following test programs (provide list here):
我已经在如下场合跑过对应的测试:
- [ ] application 1
- [ ] application 2
- [ ] ...(add others here)

View File

@ -86,6 +86,7 @@ env:
- RTT_BSP='stm32/stm32f103-fire-arbitrary' RTT_TOOL_CHAIN='sourcery-arm' - RTT_BSP='stm32/stm32f103-fire-arbitrary' RTT_TOOL_CHAIN='sourcery-arm'
- RTT_BSP='stm32/stm32f407-atk-explorer' RTT_TOOL_CHAIN='sourcery-arm' - RTT_BSP='stm32/stm32f407-atk-explorer' RTT_TOOL_CHAIN='sourcery-arm'
- RTT_BSP='stm32/stm32f407-st-discovery' RTT_TOOL_CHAIN='sourcery-arm' - RTT_BSP='stm32/stm32f407-st-discovery' RTT_TOOL_CHAIN='sourcery-arm'
- RTT_BSP='stm32/stm32f411-st-nucleo' RTT_TOOL_CHAIN='sourcery-arm'
- RTT_BSP='stm32/stm32f429-armfly-v6' RTT_TOOL_CHAIN='sourcery-arm' - RTT_BSP='stm32/stm32f429-armfly-v6' RTT_TOOL_CHAIN='sourcery-arm'
- RTT_BSP='stm32/stm32f429-atk-apollo' RTT_TOOL_CHAIN='sourcery-arm' - RTT_BSP='stm32/stm32f429-atk-apollo' RTT_TOOL_CHAIN='sourcery-arm'
- RTT_BSP='stm32/stm32f429-fire-challenger' RTT_TOOL_CHAIN='sourcery-arm' - RTT_BSP='stm32/stm32f429-fire-challenger' RTT_TOOL_CHAIN='sourcery-arm'

View File

@ -0,0 +1,15 @@
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
LR_IROM1 0x00000000 0x00080000 { ; load region size_region
ER_IROM1 0x00000000 0x00080000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20000000 0x00028000 { ; RW data
.ANY (+RW +ZI)
}
}

View File

@ -3,7 +3,7 @@ import os
# toolchains options # toolchains options
ARCH='arm' ARCH='arm'
CPU='cortex-m4' CPU='cortex-m4'
CROSS_TOOL='gcc' CROSS_TOOL='keil'
if os.getenv('RTT_CC'): if os.getenv('RTT_CC'):
CROSS_TOOL = os.getenv('RTT_CC') CROSS_TOOL = os.getenv('RTT_CC')

View File

@ -19,6 +19,7 @@ env = Environment(tools = ['mingw'],
AR = rtconfig.AR, ARFLAGS = '-rc', AR = rtconfig.AR, ARFLAGS = '-rc',
LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS) LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
env.PrependENVPath('PATH', rtconfig.EXEC_PATH) env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
env['ASCOM'] = env['ASPPCOM']
Export('RTT_ROOT') Export('RTT_ROOT')
Export('rtconfig') Export('rtconfig')

View File

@ -18,6 +18,7 @@ env = Environment(tools = ['mingw'],
AR = rtconfig.AR, ARFLAGS = '-rc', AR = rtconfig.AR, ARFLAGS = '-rc',
LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS) LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
env.PrependENVPath('PATH', rtconfig.EXEC_PATH) env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
env['ASCOM'] = env['ASPPCOM']
Export('RTT_ROOT') Export('RTT_ROOT')
Export('rtconfig') Export('rtconfig')

View File

@ -18,6 +18,7 @@ env = Environment(tools = ['mingw'],
AR = rtconfig.AR, ARFLAGS = '-rc', AR = rtconfig.AR, ARFLAGS = '-rc',
LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS) LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
env.PrependENVPath('PATH', rtconfig.EXEC_PATH) env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
env['ASCOM'] = env['ASPPCOM']
Export('RTT_ROOT') Export('RTT_ROOT')
Export('rtconfig') Export('rtconfig')

View File

@ -11,6 +11,7 @@ STM32 系列 BSP 目前支持情况如下表所示:
| [stm32f103-fire-arbitrary](stm32f103-fire-arbitrary/) | 野火 F103 霸道开发板 | | [stm32f103-fire-arbitrary](stm32f103-fire-arbitrary/) | 野火 F103 霸道开发板 |
| **F4 系列** | | | **F4 系列** | |
| [stm32f407-st-discovery](stm32f407-st-discovery/) | ST 官方 stm32f407-discovery 开发板 | | [stm32f407-st-discovery](stm32f407-st-discovery/) | ST 官方 stm32f407-discovery 开发板 |
| [stm32f411-st-nucleo](stm32f411-st-nucleo/) | ST 官方 STM32F411-Nucleo-64 开发板 |
| [stm32f407-atk-explorer](stm32f407-atk-explorer/) | 正点原子 F407 探索者开发板 | | [stm32f407-atk-explorer](stm32f407-atk-explorer/) | 正点原子 F407 探索者开发板 |
| [stm32f429-atk-apollo](stm32f429-atk-apollo/) | 正点原子 F429 阿波罗开发板 | | [stm32f429-atk-apollo](stm32f429-atk-apollo/) | 正点原子 F429 阿波罗开发板 |
| [stm32f429-fire-challenger](stm32f429-fire-challenger/) | 野火 F429 挑战者开发板 | | [stm32f429-fire-challenger](stm32f429-fire-challenger/) | 野火 F429 挑战者开发板 |

View File

@ -13,6 +13,10 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef BSP_USING_ADC1 #ifdef BSP_USING_ADC1
#ifndef ADC1_CONFIG #ifndef ADC1_CONFIG
#define ADC1_CONFIG \ #define ADC1_CONFIG \
@ -35,4 +39,8 @@
#endif /* ADC1_CONFIG */ #endif /* ADC1_CONFIG */
#endif /* BSP_USING_ADC1 */ #endif /* BSP_USING_ADC1 */
#ifdef __cplusplus
}
#endif
#endif /* __ADC_CONFIG_H__ */ #endif /* __ADC_CONFIG_H__ */

View File

@ -0,0 +1,45 @@
/*
* Copyright (c) 2006-2018, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2018-01-05 zylx first version
* 2019-01-08 SummerGift clean up the code
*/
#ifndef __DMA_CONFIG_H__
#define __DMA_CONFIG_H__
#include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
/* DMA1 channel1 */
/* DMA1 channel2-3 DMA2 channel1-2 */
#if defined(BSP_UART1_RX_USING_DMA) && !defined(UART1_RX_DMA_INSTANCE)
#define UART1_DMA_RX_IRQHandler DMA1_Ch2_3_DMA2_Ch1_2_IRQHandler
#define UART1_RX_DMA_RCC RCC_AHBENR_DMA1EN
#define UART1_RX_DMA_INSTANCE DMA1_Channel3
#define UART1_RX_DMA_IRQ DMA1_Ch2_3_DMA2_Ch1_2_IRQn
#endif
/* DMA1 channel2-3 DMA2 channel1-2 */
/* DMA1 channel4-7 DMA2 channel3-5 */
#if defined(BSP_UART2_RX_USING_DMA) && !defined(UART2_RX_DMA_INSTANCE)
#define UART2_DMA_RX_IRQHandler DMA1_Ch4_7_DMA2_Ch3_5_IRQHandler
#define UART2_RX_DMA_RCC RCC_AHBENR_DMA1EN
#define UART2_RX_DMA_INSTANCE DMA1_Channel5
#define UART2_RX_DMA_IRQ DMA1_Ch4_7_DMA2_Ch3_5_IRQn
#endif
/* DMA1 channel4-7 DMA2 channel3-5 */
#ifdef __cplusplus
}
#endif
#endif /* __DMA_CONFIG_H__ */

View File

@ -13,6 +13,10 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef BSP_USING_PWM2 #ifdef BSP_USING_PWM2
#ifndef PWM2_CONFIG #ifndef PWM2_CONFIG
#define PWM2_CONFIG \ #define PWM2_CONFIG \
@ -57,4 +61,8 @@
#endif /* PWM5_CONFIG */ #endif /* PWM5_CONFIG */
#endif /* BSP_USING_PWM5 */ #endif /* BSP_USING_PWM5 */
#ifdef __cplusplus
}
#endif
#endif /* __PWM_CONFIG_H__ */ #endif /* __PWM_CONFIG_H__ */

View File

@ -13,6 +13,10 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef BSP_USING_SPI1 #ifdef BSP_USING_SPI1
#define SPI1_BUS_CONFIG \ #define SPI1_BUS_CONFIG \
{ \ { \
@ -30,6 +34,10 @@
#define SPI1_DMA_TX_IRQHandler DMA1_Ch2_3_DMA2_Ch1_2_IRQHandler #define SPI1_DMA_TX_IRQHandler DMA1_Ch2_3_DMA2_Ch1_2_IRQHandler
#endif #endif
#ifdef __cplusplus
}
#endif
#endif /*__SPI_CONFIG_H__ */ #endif /*__SPI_CONFIG_H__ */

View File

@ -13,6 +13,10 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifndef TIM_DEV_INFO_CONFIG #ifndef TIM_DEV_INFO_CONFIG
#define TIM_DEV_INFO_CONFIG \ #define TIM_DEV_INFO_CONFIG \
{ \ { \
@ -56,4 +60,8 @@
#endif /* TIM17_CONFIG */ #endif /* TIM17_CONFIG */
#endif /* BSP_USING_TIM17 */ #endif /* BSP_USING_TIM17 */
#ifdef __cplusplus
}
#endif
#endif /* __TIM_CONFIG_H__ */ #endif /* __TIM_CONFIG_H__ */

View File

@ -13,6 +13,10 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#if defined(BSP_USING_UART1) #if defined(BSP_USING_UART1)
#ifndef UART1_CONFIG #ifndef UART1_CONFIG
#define UART1_CONFIG \ #define UART1_CONFIG \
@ -20,15 +24,21 @@
.name = "uart1", \ .name = "uart1", \
.Instance = USART1, \ .Instance = USART1, \
.irq_type = USART1_IRQn, \ .irq_type = USART1_IRQn, \
.dma.Instance = DMA1_Channel3, \
.dma_rcc = RCC_AHBENR_DMA1EN, \
.dma_irq = DMA1_Ch2_3_DMA2_Ch1_2_IRQn, \
} }
#define USART1_RX_DMA_ISR DMA1_Ch2_3_DMA2_Ch1_2_IRQHandler
#endif /* UART1_CONFIG */ #endif /* UART1_CONFIG */
#endif /* BSP_USING_UART1 */ #endif /* BSP_USING_UART1 */
#if defined(BSP_UART1_RX_USING_DMA)
#ifndef UART1_DMA_CONFIG
#define UART1_DMA_CONFIG \
{ \
.Instance = UART1_RX_DMA_INSTANCE, \
.dma_rcc = UART1_RX_DMA_RCC, \
.dma_irq = UART1_RX_DMA_IRQ, \
}
#endif /* UART1_DMA_CONFIG */
#endif /* BSP_UART1_RX_USING_DMA */
#if defined(BSP_USING_UART2) #if defined(BSP_USING_UART2)
#ifndef UART2_CONFIG #ifndef UART2_CONFIG
#define UART2_CONFIG \ #define UART2_CONFIG \
@ -36,13 +46,23 @@
.name = "uart2", \ .name = "uart2", \
.Instance = USART2, \ .Instance = USART2, \
.irq_type = USART2_IRQn, \ .irq_type = USART2_IRQn, \
.dma.Instance = DMA1_Channel3, \
.dma_rcc = RCC_AHBENR_DMA1EN, \
.dma_irq = DMA1_Ch2_3_DMA2_Ch1_2_IRQn, \
} }
#define USART2_RX_DMA_ISR DMA1_Ch2_3_DMA2_Ch1_2_IRQHandler
#endif /* UART2_CONFIG */ #endif /* UART2_CONFIG */
#endif /* BSP_USING_UART2 */ #endif /* BSP_USING_UART2 */
#if defined(BSP_UART2_RX_USING_DMA)
#ifndef UART2_DMA_CONFIG
#define UART2_DMA_CONFIG \
{ \
.Instance = UART2_RX_DMA_INSTANCE, \
.dma_rcc = UART2_RX_DMA_RCC, \
.dma_irq = UART2_RX_DMA_IRQ, \
}
#endif /* UART2_DMA_CONFIG */
#endif /* BSP_UART2_RX_USING_DMA */
#ifdef __cplusplus
}
#endif
#endif /* __UART_CONFIG_H__ */ #endif /* __UART_CONFIG_H__ */

View File

@ -13,6 +13,10 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef BSP_USING_ADC1 #ifdef BSP_USING_ADC1
#ifndef ADC1_CONFIG #ifndef ADC1_CONFIG
#define ADC1_CONFIG \ #define ADC1_CONFIG \
@ -61,4 +65,8 @@
#endif /* ADC3_CONFIG */ #endif /* ADC3_CONFIG */
#endif /* BSP_USING_ADC3 */ #endif /* BSP_USING_ADC3 */
#ifdef __cplusplus
}
#endif
#endif /* __ADC_CONFIG_H__ */ #endif /* __ADC_CONFIG_H__ */

View File

@ -0,0 +1,99 @@
/*
* Copyright (c) 2006-2018, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2018-01-02 SummerGift first version
* 2019-01-08 SummerGift clean up the code
*/
#ifndef __DMA_CONFIG_H__
#define __DMA_CONFIG_H__
#include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
/* DMA1 channel1 */
/* DMA1 channel2 */
#if defined(BSP_SPI1_RX_USING_DMA) && !defined(SPI1_RX_DMA_INSTANCE)
#define SPI1_DMA_RX_IRQHandler DMA1_Channel2_IRQHandler
#define SPI1_RX_DMA_RCC RCC_AHBENR_DMA1EN
#define SPI1_RX_DMA_INSTANCE DMA1_Channel2
#define SPI1_RX_DMA_IRQ DMA1_Channel2_IRQn
#endif
/* DMA1 channel3 */
#if defined(BSP_SPI1_TX_USING_DMA) && !defined(SPI1_TX_DMA_INSTANCE)
#define SPI1_DMA_TX_IRQHandler DMA1_Channel3_IRQHandler
#define SPI1_TX_DMA_RCC RCC_AHBENR_DMA1EN
#define SPI1_TX_DMA_INSTANCE DMA1_Channel3
#define SPI1_TX_DMA_IRQ DMA1_Channel3_IRQn
#elif defined(BSP_UART3_RX_USING_DMA) && !defined(UART3_RX_DMA_INSTANCE)
#define UART3_DMA_RX_IRQHandler DMA1_Channel3_IRQHandler
#define UART3_RX_DMA_RCC RCC_AHBENR_DMA1EN
#define UART3_RX_DMA_INSTANCE DMA1_Channel3
#define UART3_RX_DMA_IRQ DMA1_Channel3_IRQn
#endif
/* DMA1 channel4 */
#if defined(BSP_SPI2_RX_USING_DMA) && !defined(SPI2_RX_DMA_INSTANCE)
#define SPI2_DMA_RX_IRQHandler DMA1_Channel4_IRQHandler
#define SPI2_RX_DMA_RCC RCC_AHBENR_DMA1EN
#define SPI2_RX_DMA_INSTANCE DMA1_Channel4
#define SPI2_RX_DMA_IRQ DMA1_Channel4_IRQn
#endif
/* DMA1 channel5 */
#if defined(BSP_SPI2_TX_USING_DMA) && !defined(SPI2_TX_DMA_INSTANCE)
#define SPI2_DMA_TX_IRQHandler DMA1_Channel5_IRQHandler
#define SPI2_TX_DMA_RCC RCC_AHBENR_DMA1EN
#define SPI2_TX_DMA_INSTANCE DMA1_Channel5
#define SPI2_TX_DMA_IRQ DMA1_Channel5_IRQn
#elif defined(BSP_UART1_RX_USING_DMA) && !defined(UART1_RX_DMA_INSTANCE)
#define UART1_DMA_RX_IRQHandler DMA1_Channel5_IRQHandler
#define UART1_RX_DMA_RCC RCC_AHBENR_DMA1EN
#define UART1_RX_DMA_INSTANCE DMA1_Channel5
#define UART1_RX_DMA_IRQ DMA1_Channel5_IRQn
#endif
/* DMA1 channel6 */
#if defined(BSP_UART2_RX_USING_DMA) && !defined(UART2_RX_DMA_INSTANCE)
#define UART2_DMA_RX_IRQHandler DMA1_Channel6_IRQHandler
#define UART2_RX_DMA_RCC RCC_AHBENR_DMA1EN
#define UART2_RX_DMA_INSTANCE DMA1_Channel6
#define UART2_RX_DMA_IRQ DMA1_Channel6_IRQn
#endif
/* DMA1 channel7 */
/* DMA2 channel1 */
#if defined(BSP_SPI3_RX_USING_DMA) && !defined(SPI3_RX_DMA_INSTANCE)
#define SPI3_DMA_RX_IRQHandler DMA2_Channel1_IRQHandler
#define SPI3_RX_DMA_RCC RCC_AHBENR_DMA2EN
#define SPI3_RX_DMA_INSTANCE DMA2_Channel1
#define SPI3_RX_DMA_IRQ DMA2_Channel1_IRQn
#endif
/* DMA2 channel2 */
#if defined(BSP_SPI3_TX_USING_DMA) && !defined(SPI3_TX_DMA_INSTANCE)
#define SPI3_DMA_TX_IRQHandler DMA2_Channel2_IRQHandler
#define SPI3_TX_DMA_RCC RCC_AHBENR_DMA2EN
#define SPI3_TX_DMA_INSTANCE DMA2_Channel2
#define SPI3_TX_DMA_IRQ DMA2_Channel2_IRQn
#endif
/* DMA2 channel3 */
/* DMA2 channel4 */
/* DMA2 channel5 */
#ifdef __cplusplus
}
#endif
#endif /* __DMA_CONFIG_H__ */

View File

@ -13,6 +13,10 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef BSP_USING_PWM2 #ifdef BSP_USING_PWM2
#ifndef PWM2_CONFIG #ifndef PWM2_CONFIG
#define PWM2_CONFIG \ #define PWM2_CONFIG \
@ -57,4 +61,8 @@
#endif /* PWM5_CONFIG */ #endif /* PWM5_CONFIG */
#endif /* BSP_USING_PWM5 */ #endif /* BSP_USING_PWM5 */
#ifdef __cplusplus
}
#endif
#endif /* __PWM_CONFIG_H__ */ #endif /* __PWM_CONFIG_H__ */

View File

@ -14,6 +14,10 @@
#include <rtthread.h> #include <rtthread.h>
#include "stm32f1xx_hal.h" #include "stm32f1xx_hal.h"
#ifdef __cplusplus
extern "C" {
#endif
#ifdef BSP_USING_SDIO #ifdef BSP_USING_SDIO
#define SDIO_BUS_CONFIG \ #define SDIO_BUS_CONFIG \
{ \ { \
@ -28,6 +32,10 @@
#endif #endif
#ifdef __cplusplus
}
#endif
#endif /*__SDIO_CONFIG_H__ */ #endif /*__SDIO_CONFIG_H__ */

View File

@ -5,7 +5,8 @@
* *
* Change Logs: * Change Logs:
* Date Author Notes * Date Author Notes
* 2018-11-06 SummerGift change to new framework * 2018-11-06 SummerGift first version
* 2019-01-05 SummerGift modify DMA support
*/ */
#ifndef __SPI_CONFIG_H__ #ifndef __SPI_CONFIG_H__
@ -13,56 +14,110 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef BSP_USING_SPI1 #ifdef BSP_USING_SPI1
#ifndef SPI1_BUS_CONFIG
#define SPI1_BUS_CONFIG \ #define SPI1_BUS_CONFIG \
{ \ { \
.Instance = SPI1, \ .Instance = SPI1, \
.bus_name = "spi1", \ .bus_name = "spi1", \
.dma_rx.dma_rcc = RCC_AHBENR_DMA1EN, \
.dma_tx.dma_rcc = RCC_AHBENR_DMA1EN, \
.dma_rx.Instance = DMA1_Channel2, \
.dma_rx.dma_irq = DMA1_Channel2_IRQn, \
.dma_tx.Instance = DMA1_Channel3, \
.dma_tx.dma_irq = DMA1_Channel3_IRQn, \
} }
#endif /* SPI1_BUS_CONFIG */
#endif /* BSP_USING_SPI1 */
#define SPI1_DMA_RX_IRQHandler DMA1_Channel2_IRQHandler #ifdef BSP_SPI1_TX_USING_DMA
#define SPI1_DMA_TX_IRQHandler DMA1_Channel3_IRQHandler #ifndef SPI1_TX_DMA_CONFIG
#endif #define SPI1_TX_DMA_CONFIG \
{ \
.dma_rcc = SPI1_TX_DMA_RCC, \
.Instance = SPI1_TX_DMA_INSTANCE, \
.dma_irq = SPI1_TX_DMA_IRQ, \
}
#endif /* SPI1_TX_DMA_CONFIG */
#endif /* BSP_SPI1_TX_USING_DMA */
#ifdef BSP_SPI1_RX_USING_DMA
#ifndef SPI1_RX_DMA_CONFIG
#define SPI1_RX_DMA_CONFIG \
{ \
.dma_rcc = SPI1_RX_DMA_RCC, \
.Instance = SPI1_RX_DMA_INSTANCE, \
.dma_irq = SPI1_RX_DMA_IRQ, \
}
#endif /* SPI1_RX_DMA_CONFIG */
#endif /* BSP_SPI1_RX_USING_DMA */
#ifdef BSP_USING_SPI2 #ifdef BSP_USING_SPI2
#ifndef SPI2_BUS_CONFIG
#define SPI2_BUS_CONFIG \ #define SPI2_BUS_CONFIG \
{ \ { \
.Instance = SPI2, \ .Instance = SPI2, \
.bus_name = "spi2", \ .bus_name = "spi2", \
.dma_rx.dma_rcc = RCC_AHBENR_DMA1EN, \
.dma_tx.dma_rcc = RCC_AHBENR_DMA1EN, \
.dma_rx.Instance = DMA1_Channel4, \
.dma_rx.dma_irq = DMA1_Channel4_IRQn, \
.dma_tx.Instance = DMA1_Channel5, \
.dma_tx.dma_irq = DMA1_Channel5_IRQn, \
} }
#endif /* SPI2_BUS_CONFIG */
#endif /* BSP_USING_SPI2 */
#define SPI2_DMA_RX_IRQHandler DMA1_Channel4_IRQHandler #ifdef BSP_SPI2_TX_USING_DMA
#define SPI2_DMA_TX_IRQHandler DMA1_Channel5_IRQHandler #ifndef SPI2_TX_DMA_CONFIG
#endif #define SPI2_TX_DMA_CONFIG \
{ \
.dma_rcc = SPI2_TX_DMA_RCC, \
.Instance = SPI2_TX_DMA_INSTANCE, \
.dma_irq = SPI2_TX_DMA_IRQ, \
}
#endif /* SPI2_TX_DMA_CONFIG */
#endif /* BSP_SPI2_TX_USING_DMA */
#ifdef BSP_SPI2_RX_USING_DMA
#ifndef SPI2_RX_DMA_CONFIG
#define SPI2_RX_DMA_CONFIG \
{ \
.dma_rcc = SPI2_RX_DMA_RCC, \
.Instance = SPI2_RX_DMA_INSTANCE, \
.dma_irq = SPI2_RX_DMA_IRQ, \
}
#endif /* SPI2_RX_DMA_CONFIG */
#endif /* BSP_SPI2_RX_USING_DMA */
#ifdef BSP_USING_SPI3 #ifdef BSP_USING_SPI3
#ifndef SPI3_BUS_CONFIG
#define SPI3_BUS_CONFIG \ #define SPI3_BUS_CONFIG \
{ \ { \
.Instance = SPI3, \ .Instance = SPI3, \
.bus_name = "spi3", \ .bus_name = "spi3", \
.dma_rx.dma_rcc = RCC_AHBENR_DMA2EN, \
.dma_tx.dma_rcc = RCC_AHBENR_DMA2EN, \
.dma_rx.Instance = DMA2_Channel1, \
.dma_rx.dma_irq = DMA2_Channel1_IRQn, \
.dma_tx.Instance = DMA2_Channel2, \
.dma_tx.dma_irq = DMA2_Channel2_IRQn, \
} }
#endif /* SPI3_BUS_CONFIG */
#endif /* BSP_USING_SPI3 */
#define SPI3_DMA_RX_IRQHandler DMA2_Channel1_IRQHandler #ifdef BSP_SPI3_TX_USING_DMA
#define SPI3_DMA_TX_IRQHandler DMA2_Channel2_IRQHandler #ifndef SPI3_TX_DMA_CONFIG
#define SPI3_TX_DMA_CONFIG \
{ \
.dma_rcc = SPI3_TX_DMA_RCC, \
.Instance = SPI3_TX_DMA_INSTANCE, \
.dma_irq = SPI3_TX_DMA_IRQ, \
}
#endif /* SPI3_TX_DMA_CONFIG */
#endif /* BSP_SPI3_TX_USING_DMA */
#ifdef BSP_SPI3_RX_USING_DMA
#ifndef SPI3_RX_DMA_CONFIG
#define SPI3_RX_DMA_CONFIG \
{ \
.dma_rcc = SPI3_RX_DMA_RCC, \
.Instance = SPI3_RX_DMA_INSTANCE, \
.dma_irq = SPI3_RX_DMA_IRQ, \
}
#endif /* SPI3_RX_DMA_CONFIG */
#endif /* BSP_SPI3_RX_USING_DMA */
#ifdef __cplusplus
}
#endif #endif
#endif /*__SPI_CONFIG_H__ */ #endif /*__SPI_CONFIG_H__ */

View File

@ -13,6 +13,10 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifndef TIM_DEV_INFO_CONFIG #ifndef TIM_DEV_INFO_CONFIG
#define TIM_DEV_INFO_CONFIG \ #define TIM_DEV_INFO_CONFIG \
{ \ { \
@ -67,4 +71,8 @@
#endif /* TIM5_CONFIG */ #endif /* TIM5_CONFIG */
#endif /* BSP_USING_TIM5 */ #endif /* BSP_USING_TIM5 */
#ifdef __cplusplus
}
#endif
#endif /* __TIM_CONFIG_H__ */ #endif /* __TIM_CONFIG_H__ */

View File

@ -5,81 +5,130 @@
* *
* Change Logs: * Change Logs:
* Date Author Notes * Date Author Notes
* 2018-10-30 BalanceTWK change to new framework * 2018-10-30 BalanceTWK first version
* 2019-01-05 SummerGift modify DMA support
*/ */
#ifndef __UART_CONFIG_H__ #ifndef __UART_CONFIG_H__
#define __UART_CONFIG_H__ #define __UART_CONFIG_H__
#include <rtthread.h> #include <rtthread.h>
#include "dma_config.h"
#ifdef __cplusplus
extern "C" {
#endif
#if defined(BSP_USING_UART1) #if defined(BSP_USING_UART1)
#ifndef UART1_CONFIG
#define UART1_CONFIG \ #define UART1_CONFIG \
{ \ { \
.name = "uart1", \ .name = "uart1", \
.Instance = USART1, \ .Instance = USART1, \
.irq_type = USART1_IRQn, \ .irq_type = USART1_IRQn, \
.dma.channel.Instance = DMA1_Channel5, \
.dma_rcc = RCC_AHBENR_DMA1EN, \
.dma_irq = DMA1_Channel5_IRQn, \
} }
#endif /* UART1_CONFIG */
#endif /* BSP_USING_UART1 */
#define USART1_RX_DMA_ISR DMA1_Channel5_IRQHandler #if defined(BSP_UART1_RX_USING_DMA)
#endif #ifndef UART1_DMA_CONFIG
#define UART1_DMA_CONFIG \
{ \
.Instance = UART1_RX_DMA_INSTANCE, \
.dma_rcc = UART1_RX_DMA_RCC, \
.dma_irq = UART1_RX_DMA_IRQ, \
}
#endif /* UART1_DMA_CONFIG */
#endif /* BSP_UART1_RX_USING_DMA */
#if defined(BSP_USING_UART2) #if defined(BSP_USING_UART2)
#ifndef UART2_CONFIG
#define UART2_CONFIG \ #define UART2_CONFIG \
{ \ { \
.name = "uart2", \ .name = "uart2", \
.Instance = USART2, \ .Instance = USART2, \
.irq_type = USART2_IRQn, \ .irq_type = USART2_IRQn, \
.dma.channel.Instance = DMA1_Channel6, \
.dma_rcc = RCC_AHBENR_DMA1EN, \
.dma_irq = DMA1_Channel6_IRQn, \
} }
#endif /* UART2_CONFIG */
#endif /* BSP_USING_UART2 */
#define USART2_RX_DMA_ISR DMA1_Channel6_IRQHandler #if defined(BSP_UART2_RX_USING_DMA)
#endif #ifndef UART2_DMA_CONFIG
#define UART2_DMA_CONFIG \
{ \
.Instance = UART2_RX_DMA_INSTANCE, \
.dma_rcc = UART2_RX_DMA_RCC, \
.dma_irq = UART2_RX_DMA_IRQ, \
}
#endif /* UART2_DMA_CONFIG */
#endif /* BSP_UART2_RX_USING_DMA */
#if defined(BSP_USING_UART3) #if defined(BSP_USING_UART3)
#ifndef UART3_CONFIG
#define UART3_CONFIG \ #define UART3_CONFIG \
{ \ { \
.name = "uart3", \ .name = "uart3", \
.Instance = USART3, \ .Instance = USART3, \
.irq_type = USART3_IRQn, \ .irq_type = USART3_IRQn, \
.dma.channel.Instance = DMA1_Channel3, \
.dma_rcc = RCC_AHBENR_DMA1EN, \
.dma_irq = DMA1_Channel3_IRQn, \
} }
#endif /* UART3_CONFIG */
#endif /* BSP_USING_UART3 */
#define USART3_RX_DMA_ISR DMA1_Channel3_IRQHandler #if defined(BSP_UART3_RX_USING_DMA)
#endif #ifndef UART3_DMA_CONFIG
#define UART3_DMA_CONFIG \
{ \
.Instance = UART3_RX_DMA_INSTANCE, \
.dma_rcc = UART3_RX_DMA_RCC, \
.dma_irq = UART3_RX_DMA_IRQ, \
}
#endif /* UART3_DMA_CONFIG */
#endif /* BSP_UART3_RX_USING_DMA */
#if defined(BSP_USING_UART4) #if defined(BSP_USING_UART4)
#ifndef UART4_CONFIG
#define UART4_CONFIG \ #define UART4_CONFIG \
{ \ { \
.name = "uart4", \ .name = "uart4", \
.Instance = UART4, \ .Instance = UART4, \
.irq_type = UART4_IRQn, \ .irq_type = UART4_IRQn, \
.dma.channel.Instance = DMA2_Channel3, \
.dma_rcc = RCC_AHBENR_DMA2EN, \
.dma_irq = DMA2_Channel3_IRQn, \
} }
#endif /* UART4_CONFIG */
#endif /* BSP_USING_UART4 */
#define USART4_RX_DMA_ISR DMA2_Channel3_IRQHandler #if defined(BSP_UART4_RX_USING_DMA)
#endif #ifndef UART4_DMA_CONFIG
#define UART4_DMA_CONFIG \
{ \
.Instance = UART4_RX_DMA_INSTANCE, \
.dma_rcc = UART4_RX_DMA_RCC, \
.dma_irq = UART4_RX_DMA_IRQ, \
}
#endif /* UART4_DMA_CONFIG */
#endif /* BSP_UART4_RX_USING_DMA */
#if defined(BSP_USING_UART5) #if defined(BSP_USING_UART5)
#ifndef UART5_CONFIG
#define UART5_CONFIG \ #define UART5_CONFIG \
{ \ { \
.name = "uart5", \ .name = "uart5", \
.Instance = UART5, \ .Instance = UART5, \
.irq_type = UART5_IRQn, \ .irq_type = UART5_IRQn, \
.dma.channel.Instance = DMA_NOT_AVAILABLE, \ }
#endif /* UART5_CONFIG */
#endif /* BSP_USING_UART5 */
#if defined(BSP_UART5_RX_USING_DMA)
#ifndef UART5_DMA_CONFIG
#define UART5_DMA_CONFIG \
{ \
.Instance = DMA_NOT_AVAILABLE, \
}
#endif /* UART5_DMA_CONFIG */
#endif /* BSP_UART5_RX_USING_DMA */
#ifdef __cplusplus
} }
#endif #endif
#endif #endif

View File

@ -13,6 +13,10 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef BSP_USING_ADC1 #ifdef BSP_USING_ADC1
#ifndef ADC1_CONFIG #ifndef ADC1_CONFIG
#define ADC1_CONFIG \ #define ADC1_CONFIG \
@ -76,4 +80,8 @@
#endif /* ADC3_CONFIG */ #endif /* ADC3_CONFIG */
#endif /* BSP_USING_ADC3 */ #endif /* BSP_USING_ADC3 */
#ifdef __cplusplus
}
#endif
#endif /* __ADC_CONFIG_H__ */ #endif /* __ADC_CONFIG_H__ */

View File

@ -0,0 +1,217 @@
/*
* Copyright (c) 2006-2018, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2019-01-02 zylx first version
* 2019-01-08 SummerGift clean up the code
*/
#ifndef __DMA_CONFIG_H__
#define __DMA_CONFIG_H__
#include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
/* DMA1 stream0 */
#if defined(BSP_SPI3_RX_USING_DMA) && !defined(SPI3_RX_DMA_INSTANCE)
#define SPI3_DMA_RX_IRQHandler DMA1_Stream0_IRQHandler
#define SPI3_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define SPI3_RX_DMA_INSTANCE DMA1_Stream0
#define SPI3_RX_DMA_CHANNEL DMA_CHANNEL_0
#define SPI3_RX_DMA_IRQ DMA1_Stream0_IRQn
#elif defined(BSP_UART5_RX_USING_DMA) && !defined(UART5_RX_DMA_INSTANCE)
#define UART5_DMA_RX_IRQHandler DMA1_Stream0_IRQHandler
#define UART5_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define UART5_RX_DMA_INSTANCE DMA1_Stream0
#define UART5_RX_DMA_CHANNEL DMA_CHANNEL_4
#define UART5_RX_DMA_IRQ DMA1_Stream0_IRQn
#endif
/* DMA1 stream1 */
#if defined(BSP_UART3_RX_USING_DMA) && !defined(UART3_RX_DMA_INSTANCE)
#define UART3_DMA_RX_IRQHandler DMA1_Stream1_IRQHandler
#define UART3_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define UART3_RX_DMA_INSTANCE DMA1_Stream1
#define UART3_RX_DMA_CHANNEL DMA_CHANNEL_4
#define UART3_RX_DMA_IRQ DMA1_Stream1_IRQn
#endif
/* DMA1 stream2 */
#if defined(BSP_SPI3_RX_USING_DMA) && !defined(SPI3_RX_DMA_INSTANCE)
#define SPI3_DMA_RX_IRQHandler DMA1_Stream2_IRQHandler
#define SPI3_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define SPI3_RX_DMA_INSTANCE DMA1_Stream2
#define SPI3_RX_DMA_CHANNEL DMA_CHANNEL_0
#define SPI3_RX_DMA_IRQ DMA1_Stream2_IRQn
#elif defined(BSP_UART4_RX_USING_DMA) && !defined(UART4_RX_DMA_INSTANCE)
#define UART4_DMA_RX_IRQHandler DMA1_Stream2_IRQHandler
#define UART4_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define UART4_RX_DMA_INSTANCE DMA1_Stream2
#define UART4_RX_DMA_CHANNEL DMA_CHANNEL_4
#define UART4_RX_DMA_IRQ DMA1_Stream2_IRQn
#endif
/* DMA1 stream3 */
#if defined(BSP_SPI2_RX_USING_DMA) && !defined(SPI2_RX_DMA_INSTANCE)
#define SPI2_DMA_RX_IRQHandler DMA1_Stream3_IRQHandler
#define SPI2_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define SPI2_RX_DMA_INSTANCE DMA1_Stream3
#define SPI2_RX_DMA_CHANNEL DMA_CHANNEL_0
#define SPI2_RX_DMA_IRQ DMA1_Stream3_IRQn
#endif
/* DMA1 stream4 */
#if defined(BSP_SPI2_TX_USING_DMA) && !defined(SPI2_TX_DMA_INSTANCE)
#define SPI2_DMA_TX_IRQHandler DMA1_Stream4_IRQHandler
#define SPI2_TX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define SPI2_TX_DMA_INSTANCE DMA1_Stream4
#define SPI2_TX_DMA_CHANNEL DMA_CHANNEL_0
#define SPI2_TX_DMA_IRQ DMA1_Stream4_IRQn
#endif
/* DMA1 stream5 */
#if defined(BSP_SPI3_TX_USING_DMA) && !defined(SPI3_TX_DMA_INSTANCE)
#define SPI3_DMA_TX_IRQHandler DMA1_Stream5_IRQHandler
#define SPI3_TX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define SPI3_TX_DMA_INSTANCE DMA1_Stream5
#define SPI3_TX_DMA_CHANNEL DMA_CHANNEL_0
#define SPI3_TX_DMA_IRQ DMA1_Stream5_IRQn
#elif defined(BSP_UART2_RX_USING_DMA) && !defined(UART2_RX_DMA_INSTANCE)
#define UART2_DMA_RX_IRQHandler DMA1_Stream5_IRQHandler
#define UART2_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define UART2_RX_DMA_INSTANCE DMA1_Stream5
#define UART2_RX_DMA_CHANNEL DMA_CHANNEL_4
#define UART2_RX_DMA_IRQ DMA1_Stream5_IRQn
#endif
/* DMA1 stream6 */
/* DMA1 stream7 */
#if defined(BSP_SPI3_TX_USING_DMA) && !defined(SPI3_TX_DMA_INSTANCE)
#define SPI3_DMA_TX_IRQHandler DMA1_Stream7_IRQHandler
#define SPI3_TX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define SPI3_TX_DMA_INSTANCE DMA1_Stream7
#define SPI3_TX_DMA_CHANNEL DMA_CHANNEL_0
#define SPI3_TX_DMA_IRQ DMA1_Stream7_IRQn
#endif
/* DMA2 stream0 */
#if defined(BSP_SPI1_RX_USING_DMA) && !defined(SPI1_RX_DMA_INSTANCE)
#define SPI1_DMA_RX_IRQHandler DMA2_Stream0_IRQHandler
#define SPI1_RX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI1_RX_DMA_INSTANCE DMA2_Stream0
#define SPI1_RX_DMA_CHANNEL DMA_CHANNEL_3
#define SPI1_RX_DMA_IRQ DMA2_Stream0_IRQn
#elif defined(BSP_SPI4_TX_USING_DMA) && !defined(SPI4_TX_DMA_INSTANCE)
#define SPI4_DMA_TX_IRQHandler DMA2_Stream0_IRQHandler
#define SPI4_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI4_TX_DMA_INSTANCE DMA2_Stream0
#define SPI4_TX_DMA_CHANNEL DMA_CHANNEL_4
#define SPI4_TX_DMA_IRQ DMA2_Stream0_IRQn
#endif
/* DMA2 stream1 */
#if defined(BSP_SPI4_TX_USING_DMA) && !defined(SPI4_TX_DMA_INSTANCE)
#define SPI4_DMA_TX_IRQHandler DMA2_Stream1_IRQHandler
#define SPI4_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI4_TX_DMA_INSTANCE DMA2_Stream1
#define SPI4_TX_DMA_CHANNEL DMA_CHANNEL_4
#define SPI4_TX_DMA_IRQ DMA2_Stream1_IRQn
#endif
/* DMA2 stream2 */
#if defined(BSP_SPI1_RX_USING_DMA) && !defined(SPI1_RX_DMA_INSTANCE)
#define SPI1_DMA_RX_IRQHandler DMA2_Stream2_IRQHandler
#define SPI1_RX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI1_RX_DMA_INSTANCE DMA2_Stream2
#define SPI1_RX_DMA_CHANNEL DMA_CHANNEL_3
#define SPI1_RX_DMA_IRQ DMA2_Stream2_IRQn
#elif defined(BSP_UART1_RX_USING_DMA) && !defined(USART1_RX_DMA_INSTANCE)
#define USART1_DMA_RX_IRQHandler DMA2_Stream2_IRQHandler
#define USART1_RX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define USART1_RX_DMA_INSTANCE DMA2_Stream2
#define USART1_RX_DMA_CHANNEL DMA_CHANNEL_4
#define USART1_RX_DMA_IRQ DMA2_Stream2_IRQn
#endif
/* DMA2 stream3 */
#if defined(BSP_SPI5_RX_USING_DMA) && !defined(SPI5_RX_DMA_INSTANCE)
#define SPI5_DMA_RX_IRQHandler DMA2_Stream3_IRQHandler
#define SPI5_RX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI5_RX_DMA_INSTANCE DMA2_Stream3
#define SPI5_RX_DMA_CHANNEL DMA_CHANNEL_2
#define SPI5_RX_DMA_IRQ DMA2_Stream3_IRQn
#elif defined(BSP_SPI1_TX_USING_DMA) && !defined(SPI1_TX_DMA_INSTANCE)
#define SPI1_DMA_TX_IRQHandler DMA2_Stream3_IRQHandler
#define SPI1_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI1_TX_DMA_INSTANCE DMA2_Stream3
#define SPI1_TX_DMA_CHANNEL DMA_CHANNEL_3
#define SPI1_TX_DMA_IRQ DMA2_Stream3_IRQn
#elif defined(BSP_SPI4_TX_USING_DMA) && !defined(SPI4_TX_DMA_INSTANCE)
#define SPI4_DMA_TX_IRQHandler DMA2_Stream3_IRQHandler
#define SPI4_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI4_TX_DMA_INSTANCE DMA2_Stream3
#define SPI4_TX_DMA_CHANNEL DMA_CHANNEL_5
#define SPI4_TX_DMA_IRQ DMA2_Stream3_IRQn
#endif
/* DMA2 stream4 */
#if defined(BSP_SPI5_TX_USING_DMA) && !defined(SPI5_TX_DMA_INSTANCE)
#define SPI5_DMA_TX_IRQHandler DMA2_Stream4_IRQHandler
#define SPI5_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI5_TX_DMA_INSTANCE DMA2_Stream4
#define SPI5_TX_DMA_CHANNEL DMA_CHANNEL_2
#define SPI5_TX_DMA_IRQ DMA2_Stream4_IRQn
#elif defined(BSP_SPI4_TX_USING_DMA) && !defined(SPI4_TX_DMA_INSTANCE)
#define SPI4_DMA_TX_IRQHandler DMA2_Stream4_IRQHandler
#define SPI4_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI4_TX_DMA_INSTANCE DMA2_Stream4
#define SPI4_TX_DMA_CHANNEL DMA_CHANNEL_5
#define SPI4_TX_DMA_IRQ DMA2_Stream4_IRQn
#endif
/* DMA2 stream5 */
#if defined(BSP_SPI1_TX_USING_DMA) && !defined(SPI1_TX_DMA_INSTANCE)
#define SPI1_DMA_TX_IRQHandler DMA2_Stream5_IRQHandler
#define SPI1_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI1_TX_DMA_INSTANCE DMA2_Stream5
#define SPI1_TX_DMA_CHANNEL DMA_CHANNEL_3
#define SPI1_TX_DMA_IRQ DMA2_Stream5_IRQn
#elif defined(BSP_UART1_RX_USING_DMA) && !defined(USART1_RX_DMA_INSTANCE)
#define USART1_DMA_RX_IRQHandler DMA2_Stream5_IRQHandler
#define USART1_RX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define USART1_RX_DMA_INSTANCE DMA2_Stream5
#define USART1_RX_DMA_CHANNEL DMA_CHANNEL_4
#define USART1_RX_DMA_IRQ DMA2_Stream5_IRQn
#elif defined(BSP_SPI5_RX_USING_DMA) && !defined(SPI5_RX_DMA_INSTANCE)
#define SPI5_DMA_RX_IRQHandler DMA2_Stream5_IRQHandler
#define SPI5_RX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI5_RX_DMA_INSTANCE DMA2_Stream5
#define SPI5_RX_DMA_CHANNEL DMA_CHANNEL_7
#define SPI5_RX_DMA_IRQ DMA2_Stream5_IRQn
#endif
/* DMA2 stream6 */
#if defined(BSP_SPI5_TX_USING_DMA) && !defined(SPI5_TX_DMA_INSTANCE)
#define SPI5_DMA_TX_IRQHandler DMA2_Stream6_IRQHandler
#define SPI5_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI5_TX_DMA_INSTANCE DMA2_Stream6
#define SPI5_TX_DMA_CHANNEL DMA_CHANNEL_7
#define SPI5_TX_DMA_IRQ DMA2_Stream6_IRQn
#endif
/* DMA2 stream7 */
#ifdef __cplusplus
}
#endif
#endif /* __DMA_CONFIG_H__ */

View File

@ -13,6 +13,10 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef BSP_USING_PWM2 #ifdef BSP_USING_PWM2
#ifndef PWM2_CONFIG #ifndef PWM2_CONFIG
#define PWM2_CONFIG \ #define PWM2_CONFIG \
@ -57,4 +61,8 @@
#endif /* PWM5_CONFIG */ #endif /* PWM5_CONFIG */
#endif /* BSP_USING_PWM5 */ #endif /* BSP_USING_PWM5 */
#ifdef __cplusplus
}
#endif
#endif /* __PWM_CONFIG_H__ */ #endif /* __PWM_CONFIG_H__ */

View File

@ -14,6 +14,10 @@
#include <rtthread.h> #include <rtthread.h>
#include "stm32f4xx_hal.h" #include "stm32f4xx_hal.h"
#ifdef __cplusplus
extern "C" {
#endif
#ifdef BSP_USING_SDIO #ifdef BSP_USING_SDIO
#define SDIO_BUS_CONFIG \ #define SDIO_BUS_CONFIG \
{ \ { \
@ -30,6 +34,10 @@
#endif #endif
#ifdef __cplusplus
}
#endif
#endif /*__SDIO_CONFIG_H__ */ #endif /*__SDIO_CONFIG_H__ */

View File

@ -5,7 +5,8 @@
* *
* Change Logs: * Change Logs:
* Date Author Notes * Date Author Notes
* 2018-11-06 SummerGift change to new framework * 2018-11-06 SummerGift first version
* 2019-01-03 zylx modify DMA support
*/ */
#ifndef __SPI_CONFIG_H__ #ifndef __SPI_CONFIG_H__
@ -13,102 +14,182 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef BSP_USING_SPI1 #ifdef BSP_USING_SPI1
#ifndef SPI1_BUS_CONFIG
#define SPI1_BUS_CONFIG \ #define SPI1_BUS_CONFIG \
{ \ { \
.Instance = SPI1, \ .Instance = SPI1, \
.bus_name = "spi1", \ .bus_name = "spi1", \
.dma_rx.dma_rcc = RCC_AHB1ENR_DMA2EN, \
.dma_tx.dma_rcc = RCC_AHB1ENR_DMA2EN, \
.dma_rx.Instance = DMA2_Stream2, \
.dma_rx.channel = DMA_CHANNEL_3, \
.dma_rx.dma_irq = DMA2_Stream2_IRQn, \
.dma_tx.Instance = DMA2_Stream3, \
.dma_tx.channel = DMA_CHANNEL_3, \
.dma_tx.dma_irq = DMA2_Stream3_IRQn, \
} }
#endif /* SPI1_BUS_CONFIG */
#endif /* BSP_USING_SPI1 */
#define SPI1_DMA_RX_IRQHandler DMA2_Stream2_IRQHandler #ifdef BSP_SPI1_TX_USING_DMA
#define SPI1_DMA_TX_IRQHandler DMA2_Stream3_IRQHandler #ifndef SPI1_TX_DMA_CONFIG
#endif #define SPI1_TX_DMA_CONFIG \
{ \
.dma_rcc = SPI1_TX_DMA_RCC, \
.Instance = SPI1_TX_DMA_INSTANCE, \
.channel = SPI1_TX_DMA_CHANNEL, \
.dma_irq = SPI1_TX_DMA_IRQ, \
}
#endif /* SPI1_TX_DMA_CONFIG */
#endif /* BSP_SPI1_TX_USING_DMA */
#ifdef BSP_SPI1_RX_USING_DMA
#ifndef SPI1_RX_DMA_CONFIG
#define SPI1_RX_DMA_CONFIG \
{ \
.dma_rcc = SPI1_RX_DMA_RCC, \
.Instance = SPI1_RX_DMA_INSTANCE, \
.channel = SPI1_RX_DMA_CHANNEL, \
.dma_irq = SPI1_RX_DMA_IRQ, \
}
#endif /* SPI1_RX_DMA_CONFIG */
#endif /* BSP_SPI1_RX_USING_DMA */
#ifdef BSP_USING_SPI2 #ifdef BSP_USING_SPI2
#ifndef SPI2_BUS_CONFIG
#define SPI2_BUS_CONFIG \ #define SPI2_BUS_CONFIG \
{ \ { \
.Instance = SPI2, \ .Instance = SPI2, \
.bus_name = "spi2", \ .bus_name = "spi2", \
.dma_rx.dma_rcc = RCC_AHB1ENR_DMA1EN, \
.dma_tx.dma_rcc = RCC_AHB1ENR_DMA1EN, \
.dma_rx.Instance = DMA1_Stream3, \
.dma_rx.channel = DMA_CHANNEL_0, \
.dma_rx.dma_irq = DMA1_Stream3_IRQn, \
.dma_tx.Instance = DMA1_Stream4, \
.dma_tx.channel = DMA_CHANNEL_0, \
.dma_tx.dma_irq = DMA1_Stream4_IRQn, \
} }
#endif /* SPI2_BUS_CONFIG */
#endif /* BSP_USING_SPI2 */
#define SPI2_DMA_RX_IRQHandler DMA1_Stream3_IRQHandler #ifdef BSP_SPI2_TX_USING_DMA
#define SPI2_DMA_TX_IRQHandler DMA1_Stream4_IRQHandler #ifndef SPI2_TX_DMA_CONFIG
#endif #define SPI2_TX_DMA_CONFIG \
{ \
.dma_rcc = SPI2_TX_DMA_RCC, \
.Instance = SPI2_TX_DMA_INSTANCE, \
.channel = SPI2_TX_DMA_CHANNEL, \
.dma_irq = SPI2_TX_DMA_IRQ, \
}
#endif /* SPI2_TX_DMA_CONFIG */
#endif /* BSP_SPI2_TX_USING_DMA */
#ifdef BSP_SPI2_RX_USING_DMA
#ifndef SPI2_RX_DMA_CONFIG
#define SPI2_RX_DMA_CONFIG \
{ \
.dma_rcc = SPI2_RX_DMA_RCC, \
.Instance = SPI2_RX_DMA_INSTANCE, \
.channel = SPI2_RX_DMA_CHANNEL, \
.dma_irq = SPI2_RX_DMA_IRQ, \
}
#endif /* SPI2_RX_DMA_CONFIG */
#endif /* BSP_SPI2_RX_USING_DMA */
#ifdef BSP_USING_SPI3 #ifdef BSP_USING_SPI3
#ifndef SPI3_BUS_CONFIG
#define SPI3_BUS_CONFIG \ #define SPI3_BUS_CONFIG \
{ \ { \
.Instance = SPI3, \ .Instance = SPI3, \
.bus_name = "spi3", \ .bus_name = "spi3", \
.dma_rx.dma_rcc = RCC_AHB1ENR_DMA1EN, \
.dma_tx.dma_rcc = RCC_AHB1ENR_DMA1EN, \
.dma_rx.Instance = DMA1_Stream0, \
.dma_rx.channel = DMA_CHANNEL_0, \
.dma_rx.dma_irq = DMA1_Stream0_IRQn, \
.dma_tx.Instance = DMA1_Stream5, \
.dma_tx.channel = DMA_CHANNEL_0, \
.dma_tx.dma_irq = DMA1_Stream5_IRQn, \
} }
#endif /* SPI3_BUS_CONFIG */
#endif /* BSP_USING_SPI3 */
#define SPI3_DMA_RX_IRQHandler DMA1_Stream0_IRQHandler #ifdef BSP_SPI3_TX_USING_DMA
#define SPI3_DMA_TX_IRQHandler DMA1_Stream5_IRQHandler #ifndef SPI3_TX_DMA_CONFIG
#endif #define SPI3_TX_DMA_CONFIG \
{ \
.dma_rcc = SPI3_TX_DMA_RCC, \
.Instance = SPI3_TX_DMA_INSTANCE, \
.channel = SPI3_TX_DMA_CHANNEL, \
.dma_irq = SPI3_TX_DMA_IRQ, \
}
#endif /* SPI3_TX_DMA_CONFIG */
#endif /* BSP_SPI3_TX_USING_DMA */
#ifdef BSP_SPI3_RX_USING_DMA
#ifndef SPI3_RX_DMA_CONFIG
#define SPI3_RX_DMA_CONFIG \
{ \
.dma_rcc = SPI3_RX_DMA_RCC, \
.Instance = SPI3_RX_DMA_INSTANCE, \
.channel = SPI3_RX_DMA_CHANNEL, \
.dma_irq = SPI3_RX_DMA_IRQ, \
}
#endif /* SPI3_RX_DMA_CONFIG */
#endif /* BSP_SPI3_RX_USING_DMA */
#ifdef BSP_USING_SPI4 #ifdef BSP_USING_SPI4
#ifndef SPI4_BUS_CONFIG
#define SPI4_BUS_CONFIG \ #define SPI4_BUS_CONFIG \
{ \ { \
.Instance = SPI4, \ .Instance = SPI4, \
.bus_name = "spi4", \ .bus_name = "spi4", \
.dma_rx.dma_rcc = RCC_AHB1ENR_DMA2EN, \
.dma_tx.dma_rcc = RCC_AHB1ENR_DMA2EN, \
.dma_rx.Instance = DMA2_Stream0, \
.dma_rx.channel = DMA_CHANNEL_4, \
.dma_rx.dma_irq = DMA2_Stream0_IRQn, \
.dma_tx.Instance = DMA2_Stream1, \
.dma_tx.channel = DMA_CHANNEL_4, \
.dma_tx.dma_irq = DMA2_Stream1_IRQn, \
} }
#endif /* SPI4_BUS_CONFIG */
#endif /* BSP_USING_SPI4 */
#define SPI4_DMA_RX_IRQHandler DMA2_Stream0_IRQHandler #ifdef BSP_SPI4_TX_USING_DMA
#define SPI4_DMA_TX_IRQHandler DMA2_Stream1_IRQHandler #ifndef SPI4_TX_DMA_CONFIG
#endif #define SPI4_TX_DMA_CONFIG \
{ \
.dma_rcc = SPI4_TX_DMA_RCC, \
.Instance = SPI4_TX_DMA_INSTANCE, \
.channel = SPI4_TX_DMA_CHANNEL, \
.dma_irq = SPI4_TX_DMA_IRQ, \
}
#endif /* SPI4_TX_DMA_CONFIG */
#endif /* BSP_SPI4_TX_USING_DMA */
#ifdef BSP_SPI4_RX_USING_DMA
#ifndef SPI4_RX_DMA_CONFIG
#define SPI4_RX_DMA_CONFIG \
{ \
.dma_rcc = SPI4_RX_DMA_RCC, \
.Instance = SPI4_RX_DMA_INSTANCE, \
.channel = SPI4_RX_DMA_CHANNEL, \
.dma_irq = SPI4_RX_DMA_IRQ, \
}
#endif /* SPI4_RX_DMA_CONFIG */
#endif /* BSP_SPI4_RX_USING_DMA */
#ifdef BSP_USING_SPI5 #ifdef BSP_USING_SPI5
#ifndef SPI5_BUS_CONFIG
#define SPI5_BUS_CONFIG \ #define SPI5_BUS_CONFIG \
{ \ { \
.Instance = SPI5, \ .Instance = SPI5, \
.bus_name = "spi5", \ .bus_name = "spi5", \
.dma_rx.dma_rcc = RCC_AHB1ENR_DMA2EN, \
.dma_tx.dma_rcc = RCC_AHB1ENR_DMA2EN, \
.dma_rx.Instance = DMA2_Stream3, \
.dma_rx.channel = DMA_CHANNEL_2, \
.dma_rx.dma_irq = DMA2_Stream3_IRQn, \
.dma_tx.Instance = DMA2_Stream4, \
.dma_tx.channel = DMA_CHANNEL_2, \
.dma_tx.dma_irq = DMA2_Stream4_IRQn, \
} }
#endif /* SPI5_BUS_CONFIG */
#endif /* BSP_USING_SPI5 */
#define SPI5_DMA_RX_IRQHandler DMA2_Stream3_IRQHandler #ifdef BSP_SPI5_TX_USING_DMA
#define SPI5_DMA_TX_IRQHandler DMA2_Stream4_IRQHandler #ifndef SPI5_TX_DMA_CONFIG
#define SPI5_TX_DMA_CONFIG \
{ \
.dma_rcc = SPI5_TX_DMA_RCC, \
.Instance = SPI5_TX_DMA_INSTANCE, \
.channel = SPI5_TX_DMA_CHANNEL, \
.dma_irq = SPI5_TX_DMA_IRQ, \
}
#endif /* SPI5_TX_DMA_CONFIG */
#endif /* BSP_SPI5_TX_USING_DMA */
#ifdef BSP_SPI5_RX_USING_DMA
#ifndef SPI5_RX_DMA_CONFIG
#define SPI5_RX_DMA_CONFIG \
{ \
.dma_rcc = SPI5_RX_DMA_RCC, \
.Instance = SPI5_RX_DMA_INSTANCE, \
.channel = SPI5_RX_DMA_CHANNEL, \
.dma_irq = SPI5_RX_DMA_IRQ, \
}
#endif /* SPI5_RX_DMA_CONFIG */
#endif /* BSP_SPI5_RX_USING_DMA */
#ifdef __cplusplus
}
#endif #endif
#endif /*__SPI_CONFIG_H__ */ #endif /*__SPI_CONFIG_H__ */

View File

@ -13,6 +13,10 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifndef TIM_DEV_INFO_CONFIG #ifndef TIM_DEV_INFO_CONFIG
#define TIM_DEV_INFO_CONFIG \ #define TIM_DEV_INFO_CONFIG \
{ \ { \
@ -56,4 +60,8 @@
#endif /* TIM14_CONFIG */ #endif /* TIM14_CONFIG */
#endif /* BSP_USING_TIM14 */ #endif /* BSP_USING_TIM14 */
#ifdef __cplusplus
}
#endif
#endif /* __TIM_CONFIG_H__ */ #endif /* __TIM_CONFIG_H__ */

View File

@ -5,7 +5,8 @@
* *
* Change Logs: * Change Logs:
* Date Author Notes * Date Author Notes
* 2018-10-30 SummerGift change to new framework * 2018-10-30 SummerGift first version
* 2019-01-03 zylx modify dma support
*/ */
#ifndef __UART_CONFIG_H__ #ifndef __UART_CONFIG_H__
@ -13,79 +14,127 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#if defined(BSP_USING_UART1) #if defined(BSP_USING_UART1)
#ifndef UART1_CONFIG
#define UART1_CONFIG \ #define UART1_CONFIG \
{ \ { \
.name = "uart1", \ .name = "uart1", \
.Instance = USART1, \ .Instance = USART1, \
.irq_type = USART1_IRQn, \ .irq_type = USART1_IRQn, \
.dma.stream_channel.Instance = DMA2_Stream5, \
.dma.stream_channel.channel = DMA_CHANNEL_4, \
.dma_rcc = RCC_AHB1ENR_DMA2EN, \
.dma_irq = DMA2_Stream5_IRQn, \
} }
#endif /* UART1_CONFIG */
#endif /* BSP_USING_UART1 */
#define USART1_RX_DMA_ISR DMA2_Stream5_IRQHandler #if defined(BSP_UART1_RX_USING_DMA)
#endif #ifndef UART1_DMA_CONFIG
#define UART1_DMA_CONFIG \
{ \
.Instance = USART1_RX_DMA_INSTANCE, \
.channel = USART1_RX_DMA_CHANNEL, \
.dma_rcc = USART1_RX_DMA_RCC, \
.dma_irq = USART1_RX_DMA_IRQ, \
}
#endif /* UART1_DMA_CONFIG */
#endif /* BSP_UART1_RX_USING_DMA */
#if defined(BSP_USING_UART2) #if defined(BSP_USING_UART2)
#ifndef UART2_CONFIG
#define UART2_CONFIG \ #define UART2_CONFIG \
{ \ { \
.name = "uart2", \ .name = "uart2", \
.Instance = USART2, \ .Instance = USART2, \
.irq_type = USART2_IRQn, \ .irq_type = USART2_IRQn, \
.dma.stream_channel.Instance = DMA1_Stream5, \
.dma.stream_channel.channel = DMA_CHANNEL_4, \
.dma_rcc = RCC_AHB1ENR_DMA1EN, \
.dma_irq = DMA1_Stream5_IRQn, \
} }
#endif /* UART2_CONFIG */
#endif /* BSP_USING_UART2 */
#define USART2_RX_DMA_ISR DMA1_Stream5_IRQHandler #if defined(BSP_UART2_RX_USING_DMA)
#endif #ifndef UART2_DMA_CONFIG
#define UART2_DMA_CONFIG \
{ \
.Instance = USART2_RX_DMA_INSTANCE, \
.channel = USART2_RX_DMA_CHANNEL, \
.dma_rcc = USART2_RX_DMA_RCC, \
.dma_irq = USART2_RX_DMA_IRQ, \
}
#endif /* UART2_DMA_CONFIG */
#endif /* BSP_UART2_RX_USING_DMA */
#if defined(BSP_USING_UART3) #if defined(BSP_USING_UART3)
#ifndef UART3_CONFIG
#define UART3_CONFIG \ #define UART3_CONFIG \
{ \ { \
.name = "uart3", \ .name = "uart3", \
.Instance = USART3, \ .Instance = USART3, \
.irq_type = USART3_IRQn, \ .irq_type = USART3_IRQn, \
.dma.stream_channel.Instance = DMA1_Stream1, \
.dma.stream_channel.channel = DMA_CHANNEL_4, \
.dma_rcc = RCC_AHB1ENR_DMA1EN, \
.dma_irq = DMA1_Stream1_IRQn, \
} }
#endif /* UART3_CONFIG */
#endif /* BSP_USING_UART3 */
#define USART3_RX_DMA_ISR DMA1_Stream1_IRQHandler #if defined(BSP_UART3_RX_USING_DMA)
#endif #ifndef UART3_DMA_CONFIG
#define UART3_DMA_CONFIG \
{ \
.Instance = USART3_RX_DMA_INSTANCE, \
.channel = USART3_RX_DMA_CHANNEL, \
.dma_rcc = USART3_RX_DMA_RCC, \
.dma_irq = USART3_RX_DMA_IRQ, \
}
#endif /* UART3_DMA_CONFIG */
#endif /* BSP_UART3_RX_USING_DMA */
#if defined(BSP_USING_UART4) #if defined(BSP_USING_UART4)
#ifndef UART4_CONFIG
#define UART4_CONFIG \ #define UART4_CONFIG \
{ \ { \
.name = "uart4", \ .name = "uart4", \
.Instance = UART4, \ .Instance = UART4, \
.irq_type = UART4_IRQn, \ .irq_type = UART4_IRQn, \
.dma.stream_channel.Instance = DMA1_Stream2, \
.dma.stream_channel.channel = DMA_CHANNEL_4, \
.dma_rcc = RCC_AHB1ENR_DMA1EN, \
.dma_irq = DMA1_Stream2_IRQn, \
} }
#endif /* UART4_CONFIG */
#endif /* BSP_USING_UART4 */
#define USART4_RX_DMA_ISR DMA1_Stream2_IRQHandler #if defined(BSP_UART4_RX_USING_DMA)
#endif #ifndef UART4_DMA_CONFIG
#define UART4_DMA_CONFIG \
{ \
.Instance = USART4_RX_DMA_INSTANCE, \
.channel = USART4_RX_DMA_CHANNEL, \
.dma_rcc = USART4_RX_DMA_RCC, \
.dma_irq = USART4_RX_DMA_IRQ, \
}
#endif /* UART4_DMA_CONFIG */
#endif /* BSP_UART4_RX_USING_DMA */
#if defined(BSP_USING_UART5) #if defined(BSP_USING_UART5)
#ifndef UART5_CONFIG
#define UART5_CONFIG \ #define UART5_CONFIG \
{ \ { \
.name = "uart5", \ .name = "uart5", \
.Instance = UART5, \ .Instance = UART5, \
.irq_type = UART5_IRQn, \ .irq_type = UART5_IRQn, \
.dma.stream_channel.Instance = DMA1_Stream0, \
.dma.stream_channel.channel = DMA_CHANNEL_4, \
.dma_rcc = RCC_AHB1ENR_DMA1EN, \
.dma_irq = DMA1_Stream0_IRQn, \
} }
#endif /* UART5_CONFIG */
#endif /* BSP_USING_UART5 */
#define USART5_RX_DMA_ISR DMA1_Stream0_IRQHandler #if defined(BSP_UART5_RX_USING_DMA)
#ifndef UART5_DMA_CONFIG
#define UART5_DMA_CONFIG \
{ \
.Instance = USART5_RX_DMA_INSTANCE, \
.channel = USART5_RX_DMA_CHANNEL, \
.dma_rcc = USART5_RX_DMA_RCC, \
.dma_irq = USART5_RX_DMA_IRQ, \
}
#endif /* UART5_DMA_CONFIG */
#endif /* BSP_UART5_RX_USING_DMA */
#ifdef __cplusplus
}
#endif #endif
#endif #endif

View File

@ -13,6 +13,10 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef BSP_USING_ADC1 #ifdef BSP_USING_ADC1
#ifndef ADC1_CONFIG #ifndef ADC1_CONFIG
#define ADC1_CONFIG \ #define ADC1_CONFIG \
@ -76,4 +80,8 @@
#endif /* ADC3_CONFIG */ #endif /* ADC3_CONFIG */
#endif /* BSP_USING_ADC3 */ #endif /* BSP_USING_ADC3 */
#ifdef __cplusplus
}
#endif
#endif /* __ADC_CONFIG_H__ */ #endif /* __ADC_CONFIG_H__ */

View File

@ -0,0 +1,229 @@
/*
* Copyright (c) 2006-2018, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2019-01-02 zylx first version
* 2019-01-08 SummerGift clean up the code
*/
#ifndef __DMA_CONFIG_H__
#define __DMA_CONFIG_H__
#include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
/* DMA1 stream0 */
#if defined(BSP_SPI3_RX_USING_DMA) && !defined(SPI3_RX_DMA_INSTANCE)
#define SPI3_DMA_RX_IRQHandler DMA1_Stream0_IRQHandler
#define SPI3_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define SPI3_RX_DMA_INSTANCE DMA1_Stream0
#define SPI3_RX_DMA_CHANNEL DMA_CHANNEL_0
#define SPI3_RX_DMA_IRQ DMA1_Stream0_IRQn
#elif defined(BSP_UART5_RX_USING_DMA) && !defined(UART5_RX_DMA_INSTANCE)
#define UART5_DMA_RX_IRQHandler DMA1_Stream0_IRQHandler
#define UART5_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define UART5_RX_DMA_INSTANCE DMA1_Stream0
#define UART5_RX_DMA_CHANNEL DMA_CHANNEL_4
#define UART5_RX_DMA_IRQ DMA1_Stream0_IRQn
#endif
/* DMA1 stream1 */
#if defined(BSP_UART3_RX_USING_DMA) && !defined(UART3_RX_DMA_INSTANCE)
#define UART3_DMA_RX_IRQHandler DMA1_Stream1_IRQHandler
#define UART3_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define UART3_RX_DMA_INSTANCE DMA1_Stream1
#define UART3_RX_DMA_CHANNEL DMA_CHANNEL_4
#define UART3_RX_DMA_IRQ DMA1_Stream1_IRQn
#endif
/* DMA1 stream2 */
#if defined(BSP_SPI3_RX_USING_DMA) && !defined(SPI3_RX_DMA_INSTANCE)
#define SPI3_DMA_RX_IRQHandler DMA1_Stream2_IRQHandler
#define SPI3_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define SPI3_RX_DMA_INSTANCE DMA1_Stream2
#define SPI3_RX_DMA_CHANNEL DMA_CHANNEL_0
#define SPI3_RX_DMA_IRQ DMA1_Stream2_IRQn
#elif defined(BSP_UART4_RX_USING_DMA) && !defined(UART4_RX_DMA_INSTANCE)
#define UART4_DMA_RX_IRQHandler DMA1_Stream2_IRQHandler
#define UART4_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define UART4_RX_DMA_INSTANCE DMA1_Stream2
#define UART4_RX_DMA_CHANNEL DMA_CHANNEL_4
#define UART4_RX_DMA_IRQ DMA1_Stream2_IRQn
#endif
/* DMA1 stream3 */
#if defined(BSP_SPI2_RX_USING_DMA) && !defined(SPI2_RX_DMA_INSTANCE)
#define SPI2_DMA_RX_IRQHandler DMA1_Stream3_IRQHandler
#define SPI2_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define SPI2_RX_DMA_INSTANCE DMA1_Stream3
#define SPI2_RX_DMA_CHANNEL DMA_CHANNEL_0
#define SPI2_RX_DMA_IRQ DMA1_Stream3_IRQn
#endif
/* DMA1 stream4 */
#if defined(BSP_SPI2_TX_USING_DMA) && !defined(SPI2_TX_DMA_INSTANCE)
#define SPI2_DMA_TX_IRQHandler DMA1_Stream4_IRQHandler
#define SPI2_TX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define SPI2_TX_DMA_INSTANCE DMA1_Stream4
#define SPI2_TX_DMA_CHANNEL DMA_CHANNEL_0
#define SPI2_TX_DMA_IRQ DMA1_Stream4_IRQn
#endif
/* DMA1 stream5 */
#if defined(BSP_SPI3_TX_USING_DMA) && !defined(SPI3_TX_DMA_INSTANCE)
#define SPI3_DMA_TX_IRQHandler DMA1_Stream5_IRQHandler
#define SPI3_TX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define SPI3_TX_DMA_INSTANCE DMA1_Stream5
#define SPI3_TX_DMA_CHANNEL DMA_CHANNEL_0
#define SPI3_TX_DMA_IRQ DMA1_Stream5_IRQn
#elif defined(BSP_UART2_RX_USING_DMA) && !defined(UART2_RX_DMA_INSTANCE)
#define UART2_DMA_RX_IRQHandler DMA1_Stream5_IRQHandler
#define UART2_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define UART2_RX_DMA_INSTANCE DMA1_Stream5
#define UART2_RX_DMA_CHANNEL DMA_CHANNEL_4
#define UART2_RX_DMA_IRQ DMA1_Stream5_IRQn
#endif
/* DMA1 stream6 */
/* DMA1 stream7 */
#if defined(BSP_SPI3_TX_USING_DMA) && !defined(SPI3_TX_DMA_INSTANCE)
#define SPI3_DMA_TX_IRQHandler DMA1_Stream7_IRQHandler
#define SPI3_TX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define SPI3_TX_DMA_INSTANCE DMA1_Stream7
#define SPI3_TX_DMA_CHANNEL DMA_CHANNEL_0
#define SPI3_TX_DMA_IRQ DMA1_Stream7_IRQn
#endif
/* DMA2 stream0 */
#if defined(BSP_SPI1_RX_USING_DMA) && !defined(SPI1_RX_DMA_INSTANCE)
#define SPI1_DMA_RX_IRQHandler DMA2_Stream0_IRQHandler
#define SPI1_RX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI1_RX_DMA_INSTANCE DMA2_Stream0
#define SPI1_RX_DMA_CHANNEL DMA_CHANNEL_3
#define SPI1_RX_DMA_IRQ DMA2_Stream0_IRQn
#elif defined(BSP_SPI4_RX_USING_DMA) && !defined(SPI4_RX_DMA_INSTANCE)
#define SPI4_DMA_RX_IRQHandler DMA2_Stream0_IRQHandler
#define SPI4_RX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI4_RX_DMA_INSTANCE DMA2_Stream0
#define SPI4_RX_DMA_CHANNEL DMA_CHANNEL_4
#define SPI4_RX_DMA_IRQ DMA2_Stream0_IRQn
#endif
/* DMA2 stream1 */
#if defined(BSP_SPI4_TX_USING_DMA) && !defined(SPI4_TX_DMA_INSTANCE)
#define SPI4_DMA_TX_IRQHandler DMA2_Stream1_IRQHandler
#define SPI4_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI4_TX_DMA_INSTANCE DMA2_Stream1
#define SPI4_TX_DMA_CHANNEL DMA_CHANNEL_4
#define SPI4_TX_DMA_IRQ DMA2_Stream1_IRQn
#endif
/* DMA2 stream2 */
#if defined(BSP_SPI1_RX_USING_DMA) && !defined(SPI1_RX_DMA_INSTANCE)
#define SPI1_DMA_RX_IRQHandler DMA2_Stream2_IRQHandler
#define SPI1_RX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI1_RX_DMA_INSTANCE DMA2_Stream2
#define SPI1_RX_DMA_CHANNEL DMA_CHANNEL_3
#define SPI1_RX_DMA_IRQ DMA2_Stream2_IRQn
#elif defined(BSP_UART1_RX_USING_DMA) && !defined(USART1_RX_DMA_INSTANCE)
#define USART1_DMA_RX_IRQHandler DMA2_Stream2_IRQHandler
#define USART1_RX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define USART1_RX_DMA_INSTANCE DMA2_Stream2
#define USART1_RX_DMA_CHANNEL DMA_CHANNEL_4
#define USART1_RX_DMA_IRQ DMA2_Stream2_IRQn
#elif defined(BSP_QSPI_USING_DMA) && !defined(QSPI_DMA_INSTANCE)
#define QSPI_DMA_IRQHandler DMA2_Stream2_IRQHandler
#define QSPI_DMA_RCC RCC_AHB1ENR_DMA2EN
#define QSPI_DMA_INSTANCE DMA2_Stream2
#define QSPI_DMA_CHANNEL DMA_CHANNEL_11
#define QSPI_DMA_IRQ DMA2_Stream2_IRQn
#endif
/* DMA2 stream3 */
#if defined(BSP_SPI5_RX_USING_DMA) && !defined(SPI5_RX_DMA_INSTANCE)
#define SPI5_DMA_RX_IRQHandler DMA2_Stream3_IRQHandler
#define SPI5_RX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI5_RX_DMA_INSTANCE DMA2_Stream3
#define SPI5_RX_DMA_CHANNEL DMA_CHANNEL_2
#define SPI5_RX_DMA_IRQ DMA2_Stream3_IRQn
#elif defined(BSP_SPI1_TX_USING_DMA) && !defined(SPI1_TX_DMA_INSTANCE)
#define SPI1_DMA_TX_IRQHandler DMA2_Stream3_IRQHandler
#define SPI1_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI1_TX_DMA_INSTANCE DMA2_Stream3
#define SPI1_TX_DMA_CHANNEL DMA_CHANNEL_3
#define SPI1_TX_DMA_IRQ DMA2_Stream3_IRQn
#elif defined(BSP_SPI4_RX_USING_DMA) && !defined(SPI4_RX_DMA_INSTANCE)
#define SPI4_DMA_RX_IRQHandler DMA2_Stream3_IRQHandler
#define SPI4_RX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI4_RX_DMA_INSTANCE DMA2_Stream3
#define SPI4_RX_DMA_CHANNEL DMA_CHANNEL_5
#define SPI4_RX_DMA_IRQ DMA2_Stream3_IRQn
#endif
/* DMA2 stream4 */
#if defined(BSP_SPI5_TX_USING_DMA) && !defined(SPI5_TX_DMA_INSTANCE)
#define SPI5_DMA_TX_IRQHandler DMA2_Stream4_IRQHandler
#define SPI5_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI5_TX_DMA_INSTANCE DMA2_Stream4
#define SPI5_TX_DMA_CHANNEL DMA_CHANNEL_2
#define SPI5_TX_DMA_IRQ DMA2_Stream4_IRQn
#elif defined(BSP_SPI4_TX_USING_DMA) && !defined(SPI4_TX_DMA_INSTANCE)
#define SPI4_DMA_TX_IRQHandler DMA2_Stream4_IRQHandler
#define SPI4_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI4_TX_DMA_INSTANCE DMA2_Stream4
#define SPI4_TX_DMA_CHANNEL DMA_CHANNEL_5
#define SPI4_TX_DMA_IRQ DMA2_Stream4_IRQn
#endif
/* DMA2 stream5 */
#if defined(BSP_SPI1_TX_USING_DMA) && !defined(SPI1_TX_DMA_INSTANCE)
#define SPI1_DMA_TX_IRQHandler DMA2_Stream5_IRQHandler
#define SPI1_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI1_TX_DMA_INSTANCE DMA2_Stream5
#define SPI1_TX_DMA_CHANNEL DMA_CHANNEL_3
#define SPI1_TX_DMA_IRQ DMA2_Stream5_IRQn
#elif defined(BSP_UART1_RX_USING_DMA) && !defined(USART1_RX_DMA_INSTANCE)
#define USART1_DMA_RX_IRQHandler DMA2_Stream5_IRQHandler
#define USART1_RX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define USART1_RX_DMA_INSTANCE DMA2_Stream5
#define USART1_RX_DMA_CHANNEL DMA_CHANNEL_4
#define USART1_RX_DMA_IRQ DMA2_Stream5_IRQn
#elif defined(BSP_SPI5_RX_USING_DMA) && !defined(SPI5_RX_DMA_INSTANCE)
#define SPI5_DMA_RX_IRQHandler DMA2_Stream5_IRQHandler
#define SPI5_RX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI5_RX_DMA_INSTANCE DMA2_Stream5
#define SPI5_RX_DMA_CHANNEL DMA_CHANNEL_7
#define SPI5_RX_DMA_IRQ DMA2_Stream5_IRQn
#endif
/* DMA2 stream6 */
#if defined(BSP_SPI5_TX_USING_DMA) && !defined(SPI5_TX_DMA_INSTANCE)
#define SPI5_DMA_TX_IRQHandler DMA2_Stream6_IRQHandler
#define SPI5_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI5_TX_DMA_INSTANCE DMA2_Stream6
#define SPI5_TX_DMA_CHANNEL DMA_CHANNEL_7
#define SPI5_TX_DMA_IRQ DMA2_Stream6_IRQn
#endif
/* DMA2 stream7 */
#if defined(BSP_QSPI_USING_DMA) && !defined(QSPI_DMA_INSTANCE)
#define QSPI_DMA_IRQHandler DMA2_Stream7_IRQHandler
#define QSPI_DMA_RCC RCC_AHB1ENR_DMA2EN
#define QSPI_DMA_INSTANCE DMA2_Stream7
#define QSPI_DMA_CHANNEL DMA_CHANNEL_3
#define QSPI_DMA_IRQ DMA2_Stream7_IRQn
#endif
#ifdef __cplusplus
}
#endif
#endif /* __DMA_CONFIG_H__ */

View File

@ -13,6 +13,10 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef BSP_USING_PWM2 #ifdef BSP_USING_PWM2
#ifndef PWM2_CONFIG #ifndef PWM2_CONFIG
#define PWM2_CONFIG \ #define PWM2_CONFIG \
@ -57,4 +61,8 @@
#endif /* PWM5_CONFIG */ #endif /* PWM5_CONFIG */
#endif /* BSP_USING_PWM5 */ #endif /* BSP_USING_PWM5 */
#ifdef __cplusplus
}
#endif
#endif /* __PWM_CONFIG_H__ */ #endif /* __PWM_CONFIG_H__ */

View File

@ -13,6 +13,10 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef BSP_USING_QSPI #ifdef BSP_USING_QSPI
#ifndef QSPI_BUS_CONFIG #ifndef QSPI_BUS_CONFIG
#define QSPI_BUS_CONFIG \ #define QSPI_BUS_CONFIG \
@ -29,8 +33,8 @@
#ifndef QSPI_DMA_CONFIG #ifndef QSPI_DMA_CONFIG
#define QSPI_DMA_CONFIG \ #define QSPI_DMA_CONFIG \
{ \ { \
.Instance = DMA2_Stream7, \ .Instance = QSPI_DMA_INSTANCE, \
.Init.Channel = DMA_CHANNEL_3, \ .Init.Channel = QSPI_DMA_CHANNEL, \
.Init.Direction = DMA_PERIPH_TO_MEMORY, \ .Init.Direction = DMA_PERIPH_TO_MEMORY, \
.Init.PeriphInc = DMA_PINC_DISABLE, \ .Init.PeriphInc = DMA_PINC_DISABLE, \
.Init.MemInc = DMA_MINC_ENABLE, \ .Init.MemInc = DMA_MINC_ENABLE, \
@ -42,10 +46,11 @@
#endif /* QSPI_DMA_CONFIG */ #endif /* QSPI_DMA_CONFIG */
#endif /* BSP_QSPI_USING_DMA */ #endif /* BSP_QSPI_USING_DMA */
#define QSPI_DMA_CLK_ENABLE __HAL_RCC_DMA2_CLK_ENABLE()
#define QSPI_IRQn QUADSPI_IRQn #define QSPI_IRQn QUADSPI_IRQn
#define QSPI_DMA_IRQn DMA2_Stream7_IRQn
#define QSPI_IRQHandler QUADSPI_IRQHandler #define QSPI_IRQHandler QUADSPI_IRQHandler
#define QSPI_DMA_IRQHandler DMA2_Stream7_IRQHandler
#ifdef __cplusplus
}
#endif
#endif /* __QSPI_CONFIG_H__ */ #endif /* __QSPI_CONFIG_H__ */

View File

@ -14,6 +14,10 @@
#include <rtthread.h> #include <rtthread.h>
#include "stm32f7xx_hal.h" #include "stm32f7xx_hal.h"
#ifdef __cplusplus
extern "C" {
#endif
#ifdef BSP_USING_SDIO #ifdef BSP_USING_SDIO
#define SDIO_BUS_CONFIG \ #define SDIO_BUS_CONFIG \
{ \ { \
@ -30,6 +34,10 @@
#endif #endif
#ifdef __cplusplus
}
#endif
#endif /*__SDIO_CONFIG_H__ */ #endif /*__SDIO_CONFIG_H__ */

View File

@ -13,121 +13,182 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef BSP_USING_SPI1 #ifdef BSP_USING_SPI1
#ifndef SPI1_BUS_CONFIG
#define SPI1_BUS_CONFIG \ #define SPI1_BUS_CONFIG \
{ \ { \
.Instance = SPI1, \ .Instance = SPI1, \
.bus_name = "spi1", \ .bus_name = "spi1", \
.dma_rx.dma_rcc = RCC_AHB1ENR_DMA2EN, \
.dma_tx.dma_rcc = RCC_AHB1ENR_DMA2EN, \
.dma_rx.Instance = DMA2_Stream2, \
.dma_rx.channel = DMA_CHANNEL_3, \
.dma_rx.dma_irq = DMA2_Stream2_IRQn, \
.dma_tx.Instance = DMA2_Stream3, \
.dma_tx.channel = DMA_CHANNEL_3, \
.dma_tx.dma_irq = DMA2_Stream3_IRQn, \
} }
#endif /* SPI1_BUS_CONFIG */
#endif /* BSP_USING_SPI1 */
#define SPI1_DMA_RX_IRQHandler DMA2_Stream2_IRQHandler #ifdef BSP_SPI1_TX_USING_DMA
#define SPI1_DMA_TX_IRQHandler DMA2_Stream3_IRQHandler #ifndef SPI1_TX_DMA_CONFIG
#endif #define SPI1_TX_DMA_CONFIG \
{ \
.dma_rcc = SPI1_TX_DMA_RCC, \
.Instance = SPI1_TX_DMA_INSTANCE, \
.channel = SPI1_TX_DMA_CHANNEL, \
.dma_irq = SPI1_TX_DMA_IRQ, \
}
#endif /* SPI1_TX_DMA_CONFIG */
#endif /* BSP_SPI1_TX_USING_DMA */
#ifdef BSP_SPI1_RX_USING_DMA
#ifndef SPI1_RX_DMA_CONFIG
#define SPI1_RX_DMA_CONFIG \
{ \
.dma_rcc = SPI1_RX_DMA_RCC, \
.Instance = SPI1_RX_DMA_INSTANCE, \
.channel = SPI1_RX_DMA_CHANNEL, \
.dma_irq = SPI1_RX_DMA_IRQ, \
}
#endif /* SPI1_RX_DMA_CONFIG */
#endif /* BSP_SPI1_RX_USING_DMA */
#ifdef BSP_USING_SPI2 #ifdef BSP_USING_SPI2
#ifndef SPI2_BUS_CONFIG
#define SPI2_BUS_CONFIG \ #define SPI2_BUS_CONFIG \
{ \ { \
.Instance = SPI2, \ .Instance = SPI2, \
.bus_name = "spi2", \ .bus_name = "spi2", \
.dma_rx.dma_rcc = RCC_AHB1ENR_DMA1EN, \
.dma_tx.dma_rcc = RCC_AHB1ENR_DMA1EN, \
.dma_rx.Instance = DMA1_Stream3, \
.dma_rx.channel = DMA_CHANNEL_0, \
.dma_rx.dma_irq = DMA1_Stream3_IRQn, \
.dma_tx.Instance = DMA1_Stream4, \
.dma_tx.channel = DMA_CHANNEL_0, \
.dma_tx.dma_irq = DMA1_Stream4_IRQn, \
} }
#endif /* SPI2_BUS_CONFIG */
#endif /* BSP_USING_SPI2 */
#define SPI2_DMA_RX_IRQHandler DMA1_Stream3_IRQHandler #ifdef BSP_SPI2_TX_USING_DMA
#define SPI2_DMA_TX_IRQHandler DMA1_Stream4_IRQHandler #ifndef SPI2_TX_DMA_CONFIG
#endif #define SPI2_TX_DMA_CONFIG \
{ \
.dma_rcc = SPI2_TX_DMA_RCC, \
.Instance = SPI2_TX_DMA_INSTANCE, \
.channel = SPI2_TX_DMA_CHANNEL, \
.dma_irq = SPI2_TX_DMA_IRQ, \
}
#endif /* SPI2_TX_DMA_CONFIG */
#endif /* BSP_SPI2_TX_USING_DMA */
#ifdef BSP_SPI2_RX_USING_DMA
#ifndef SPI2_RX_DMA_CONFIG
#define SPI2_RX_DMA_CONFIG \
{ \
.dma_rcc = SPI2_RX_DMA_RCC, \
.Instance = SPI2_RX_DMA_INSTANCE, \
.channel = SPI2_RX_DMA_CHANNEL, \
.dma_irq = SPI2_RX_DMA_IRQ, \
}
#endif /* SPI2_RX_DMA_CONFIG */
#endif /* BSP_SPI2_RX_USING_DMA */
#ifdef BSP_USING_SPI3 #ifdef BSP_USING_SPI3
#ifndef SPI3_BUS_CONFIG
#define SPI3_BUS_CONFIG \ #define SPI3_BUS_CONFIG \
{ \ { \
.Instance = SPI3, \ .Instance = SPI3, \
.bus_name = "spi3", \ .bus_name = "spi3", \
.dma_rx.dma_rcc = RCC_AHB1ENR_DMA1EN, \
.dma_tx.dma_rcc = RCC_AHB1ENR_DMA1EN, \
.dma_rx.Instance = DMA1_Stream0, \
.dma_rx.channel = DMA_CHANNEL_0, \
.dma_rx.dma_irq = DMA1_Stream0_IRQn, \
.dma_tx.Instance = DMA1_Stream7, \
.dma_tx.channel = DMA_CHANNEL_0, \
.dma_tx.dma_irq = DMA1_Stream7_IRQn, \
} }
#endif /* SPI3_BUS_CONFIG */
#endif /* BSP_USING_SPI3 */
#define SPI3_DMA_RX_IRQHandler DMA1_Stream0_IRQHandler #ifdef BSP_SPI3_TX_USING_DMA
#define SPI3_DMA_TX_IRQHandler DMA1_Stream7_IRQHandler #ifndef SPI3_TX_DMA_CONFIG
#endif #define SPI3_TX_DMA_CONFIG \
{ \
.dma_rcc = SPI3_TX_DMA_RCC, \
.Instance = SPI3_TX_DMA_INSTANCE, \
.channel = SPI3_TX_DMA_CHANNEL, \
.dma_irq = SPI3_TX_DMA_IRQ, \
}
#endif /* SPI3_TX_DMA_CONFIG */
#endif /* BSP_SPI3_TX_USING_DMA */
#ifdef BSP_SPI3_RX_USING_DMA
#ifndef SPI3_RX_DMA_CONFIG
#define SPI3_RX_DMA_CONFIG \
{ \
.dma_rcc = SPI3_RX_DMA_RCC, \
.Instance = SPI3_RX_DMA_INSTANCE, \
.channel = SPI3_RX_DMA_CHANNEL, \
.dma_irq = SPI3_RX_DMA_IRQ, \
}
#endif /* SPI3_RX_DMA_CONFIG */
#endif /* BSP_SPI3_RX_USING_DMA */
#ifdef BSP_USING_SPI4 #ifdef BSP_USING_SPI4
#ifndef SPI4_BUS_CONFIG
#define SPI4_BUS_CONFIG \ #define SPI4_BUS_CONFIG \
{ \ { \
.Instance = SPI4, \ .Instance = SPI4, \
.bus_name = "spi4", \ .bus_name = "spi4", \
.dma_rx.dma_rcc = RCC_AHB1ENR_DMA2EN, \
.dma_tx.dma_rcc = RCC_AHB1ENR_DMA2EN, \
.dma_rx.Instance = DMA2_Stream0, \
.dma_rx.channel = DMA_CHANNEL_4, \
.dma_rx.dma_irq = DMA2_Stream0_IRQn, \
.dma_tx.Instance = DMA2_Stream1, \
.dma_tx.channel = DMA_CHANNEL_4, \
.dma_tx.dma_irq = DMA2_Stream1_IRQn, \
} }
#endif /* SPI4_BUS_CONFIG */
#endif /* BSP_USING_SPI4 */
#define SPI4_DMA_RX_IRQHandler DMA2_Stream0_IRQHandler #ifdef BSP_SPI4_TX_USING_DMA
#define SPI4_DMA_TX_IRQHandler DMA2_Stream1_IRQHandler #ifndef SPI4_TX_DMA_CONFIG
#endif #define SPI4_TX_DMA_CONFIG \
{ \
.dma_rcc = SPI4_TX_DMA_RCC, \
.Instance = SPI4_TX_DMA_INSTANCE, \
.channel = SPI4_TX_DMA_CHANNEL, \
.dma_irq = SPI4_TX_DMA_IRQ, \
}
#endif /* SPI4_TX_DMA_CONFIG */
#endif /* BSP_SPI4_TX_USING_DMA */
#ifdef BSP_SPI4_RX_USING_DMA
#ifndef SPI4_RX_DMA_CONFIG
#define SPI4_RX_DMA_CONFIG \
{ \
.dma_rcc = SPI4_RX_DMA_RCC, \
.Instance = SPI4_RX_DMA_INSTANCE, \
.channel = SPI4_RX_DMA_CHANNEL, \
.dma_irq = SPI4_RX_DMA_IRQ, \
}
#endif /* SPI4_RX_DMA_CONFIG */
#endif /* BSP_SPI4_RX_USING_DMA */
#ifdef BSP_USING_SPI5 #ifdef BSP_USING_SPI5
#ifndef SPI5_BUS_CONFIG
#define SPI5_BUS_CONFIG \ #define SPI5_BUS_CONFIG \
{ \ { \
.Instance = SPI5, \ .Instance = SPI5, \
.bus_name = "spi5", \ .bus_name = "spi5", \
.dma_rx.dma_rcc = RCC_AHB1ENR_DMA2EN, \
.dma_tx.dma_rcc = RCC_AHB1ENR_DMA2EN, \
.dma_rx.Instance = DMA2_Stream3, \
.dma_rx.channel = DMA_CHANNEL_2, \
.dma_rx.dma_irq = DMA2_Stream3_IRQn, \
.dma_tx.Instance = DMA2_Stream4, \
.dma_tx.channel = DMA_CHANNEL_2, \
.dma_tx.dma_irq = DMA2_Stream4_IRQn, \
} }
#endif /* SPI5_BUS_CONFIG */
#endif /* BSP_USING_SPI5 */
#define SPI5_DMA_RX_IRQHandler DMA2_Stream3_IRQHandler #ifdef BSP_SPI5_TX_USING_DMA
#define SPI5_DMA_TX_IRQHandler DMA2_Stream4_IRQHandler #ifndef SPI5_TX_DMA_CONFIG
#endif #define SPI5_TX_DMA_CONFIG \
#ifdef BSP_USING_SPI6
#define SPI5_BUS_CONFIG \
{ \ { \
.Instance = SPI6, \ .dma_rcc = SPI5_TX_DMA_RCC, \
.bus_name = "spi6", \ .Instance = SPI5_TX_DMA_INSTANCE, \
.dma_rx.dma_rcc = RCC_AHB1ENR_DMA2EN, \ .channel = SPI5_TX_DMA_CHANNEL, \
.dma_tx.dma_rcc = RCC_AHB1ENR_DMA2EN, \ .dma_irq = SPI5_TX_DMA_IRQ, \
.dma_rx.Instance = DMA2_Stream6, \
.dma_rx.channel = DMA_CHANNEL_1, \
.dma_rx.dma_irq = DMA2_Stream6_IRQn, \
.dma_tx.Instance = DMA2_Stream5, \
.dma_tx.channel = DMA_CHANNEL_1, \
.dma_tx.dma_irq = DMA2_Stream5_IRQn, \
} }
#endif /* SPI5_TX_DMA_CONFIG */
#endif /* BSP_SPI5_TX_USING_DMA */
#define SPI6_DMA_RX_IRQHandler DMA2_Stream6_IRQHandler #ifdef BSP_SPI5_RX_USING_DMA
#define SPI6_DMA_TX_IRQHandler DMA2_Stream5_IRQHandler #ifndef SPI5_RX_DMA_CONFIG
#define SPI5_RX_DMA_CONFIG \
{ \
.dma_rcc = SPI5_RX_DMA_RCC, \
.Instance = SPI5_RX_DMA_INSTANCE, \
.channel = SPI5_RX_DMA_CHANNEL, \
.dma_irq = SPI5_RX_DMA_IRQ, \
}
#endif /* SPI5_RX_DMA_CONFIG */
#endif /* BSP_SPI5_RX_USING_DMA */
#ifdef __cplusplus
}
#endif #endif
#endif /*__SPI_CONFIG_H__ */ #endif /*__SPI_CONFIG_H__ */

View File

@ -13,6 +13,10 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifndef TIM_DEV_INFO_CONFIG #ifndef TIM_DEV_INFO_CONFIG
#define TIM_DEV_INFO_CONFIG \ #define TIM_DEV_INFO_CONFIG \
{ \ { \
@ -56,4 +60,8 @@
#endif /* TIM14_CONFIG */ #endif /* TIM14_CONFIG */
#endif /* BSP_USING_TIM14 */ #endif /* BSP_USING_TIM14 */
#ifdef __cplusplus
}
#endif
#endif /* __TIM_CONFIG_H__ */ #endif /* __TIM_CONFIG_H__ */

View File

@ -5,7 +5,8 @@
* *
* Change Logs: * Change Logs:
* Date Author Notes * Date Author Notes
* 2018-10-30 SummerGift change to new framework * 2018-10-30 SummerGift first version
* 2019-01-05 zylx modify dma support
*/ */
#ifndef __UART_CONFIG_H__ #ifndef __UART_CONFIG_H__
@ -13,79 +14,127 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#if defined(BSP_USING_UART1) #if defined(BSP_USING_UART1)
#ifndef UART1_CONFIG
#define UART1_CONFIG \ #define UART1_CONFIG \
{ \ { \
.name = "uart1", \ .name = "uart1", \
.Instance = USART1, \ .Instance = USART1, \
.irq_type = USART1_IRQn, \ .irq_type = USART1_IRQn, \
.dma.stream_channel.Instance = DMA2_Stream5, \
.dma.stream_channel.channel = DMA_CHANNEL_4, \
.dma_rcc = RCC_AHB1ENR_DMA2EN, \
.dma_irq = DMA2_Stream5_IRQn, \
} }
#endif /* UART1_CONFIG */
#endif /* BSP_USING_UART1 */
#define USART1_RX_DMA_ISR DMA2_Stream5_IRQHandler #if defined(BSP_UART1_RX_USING_DMA)
#endif #ifndef UART1_DMA_CONFIG
#define UART1_DMA_CONFIG \
{ \
.Instance = USART1_RX_DMA_INSTANCE, \
.channel = USART1_RX_DMA_CHANNEL, \
.dma_rcc = USART1_RX_DMA_RCC, \
.dma_irq = USART1_RX_DMA_IRQ, \
}
#endif /* UART1_DMA_CONFIG */
#endif /* BSP_UART1_RX_USING_DMA */
#if defined(BSP_USING_UART2) #if defined(BSP_USING_UART2)
#ifndef UART2_CONFIG
#define UART2_CONFIG \ #define UART2_CONFIG \
{ \ { \
.name = "uart2", \ .name = "uart2", \
.Instance = USART2, \ .Instance = USART2, \
.irq_type = USART2_IRQn, \ .irq_type = USART2_IRQn, \
.dma.stream_channel.Instance = DMA1_Stream5, \
.dma.stream_channel.channel = DMA_CHANNEL_4, \
.dma_rcc = RCC_AHB1ENR_DMA1EN, \
.dma_irq = DMA1_Stream5_IRQn, \
} }
#endif /* UART2_CONFIG */
#endif /* BSP_USING_UART2 */
#define USART2_RX_DMA_ISR DMA1_Stream5_IRQHandler #if defined(BSP_UART2_RX_USING_DMA)
#endif #ifndef UART2_DMA_CONFIG
#define UART2_DMA_CONFIG \
{ \
.Instance = USART2_RX_DMA_INSTANCE, \
.channel = USART2_RX_DMA_CHANNEL, \
.dma_rcc = USART2_RX_DMA_RCC, \
.dma_irq = USART2_RX_DMA_IRQ, \
}
#endif /* UART2_DMA_CONFIG */
#endif /* BSP_UART2_RX_USING_DMA */
#if defined(BSP_USING_UART3) #if defined(BSP_USING_UART3)
#ifndef UART3_CONFIG
#define UART3_CONFIG \ #define UART3_CONFIG \
{ \ { \
.name = "uart3", \ .name = "uart3", \
.Instance = USART3, \ .Instance = USART3, \
.irq_type = USART3_IRQn, \ .irq_type = USART3_IRQn, \
.dma.stream_channel.Instance = DMA1_Stream1, \
.dma.stream_channel.channel = DMA_CHANNEL_4, \
.dma_rcc = RCC_AHB1ENR_DMA1EN, \
.dma_irq = DMA1_Stream1_IRQn, \
} }
#endif /* UART3_CONFIG */
#endif /* BSP_USING_UART3 */
#define USART3_RX_DMA_ISR DMA1_Stream1_IRQHandler #if defined(BSP_UART3_RX_USING_DMA)
#endif #ifndef UART3_DMA_CONFIG
#define UART3_DMA_CONFIG \
{ \
.Instance = USART3_RX_DMA_INSTANCE, \
.channel = USART3_RX_DMA_CHANNEL, \
.dma_rcc = USART3_RX_DMA_RCC, \
.dma_irq = USART3_RX_DMA_IRQ, \
}
#endif /* UART3_DMA_CONFIG */
#endif /* BSP_UART3_RX_USING_DMA */
#if defined(BSP_USING_UART4) #if defined(BSP_USING_UART4)
#ifndef UART4_CONFIG
#define UART4_CONFIG \ #define UART4_CONFIG \
{ \ { \
.name = "uart4", \ .name = "uart4", \
.Instance = UART4, \ .Instance = UART4, \
.irq_type = UART4_IRQn, \ .irq_type = UART4_IRQn, \
.dma.stream_channel.Instance = DMA1_Stream2, \
.dma.stream_channel.channel = DMA_CHANNEL_4, \
.dma_rcc = RCC_AHB1ENR_DMA1EN, \
.dma_irq = DMA1_Stream2_IRQn, \
} }
#endif /* UART4_CONFIG */
#endif /* BSP_USING_UART4 */
#define USART4_RX_DMA_ISR DMA1_Stream2_IRQHandler #if defined(BSP_UART4_RX_USING_DMA)
#endif #ifndef UART4_DMA_CONFIG
#define UART4_DMA_CONFIG \
{ \
.Instance = USART4_RX_DMA_INSTANCE, \
.channel = USART4_RX_DMA_CHANNEL, \
.dma_rcc = USART4_RX_DMA_RCC, \
.dma_irq = USART4_RX_DMA_IRQ, \
}
#endif /* UART4_DMA_CONFIG */
#endif /* BSP_UART4_RX_USING_DMA */
#if defined(BSP_USING_UART5) #if defined(BSP_USING_UART5)
#ifndef UART5_CONFIG
#define UART5_CONFIG \ #define UART5_CONFIG \
{ \ { \
.name = "uart5", \ .name = "uart5", \
.Instance = UART5, \ .Instance = UART5, \
.irq_type = UART5_IRQn, \ .irq_type = UART5_IRQn, \
.dma.stream_channel.Instance = DMA1_Stream0, \
.dma.stream_channel.channel = DMA_CHANNEL_4, \
.dma_rcc = RCC_AHB1ENR_DMA1EN, \
.dma_irq = DMA1_Stream0_IRQn, \
} }
#endif /* UART5_CONFIG */
#endif /* BSP_USING_UART5 */
#define USART5_RX_DMA_ISR DMA1_Stream0_IRQHandler #if defined(BSP_UART5_RX_USING_DMA)
#ifndef UART5_DMA_CONFIG
#define UART5_DMA_CONFIG \
{ \
.Instance = USART5_RX_DMA_INSTANCE, \
.channel = USART5_RX_DMA_CHANNEL, \
.dma_rcc = USART5_RX_DMA_RCC, \
.dma_irq = USART5_RX_DMA_IRQ, \
}
#endif /* UART5_DMA_CONFIG */
#endif /* BSP_UART5_RX_USING_DMA */
#ifdef __cplusplus
}
#endif #endif
#endif #endif

View File

@ -13,6 +13,10 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef BSP_USING_ADC1 #ifdef BSP_USING_ADC1
#ifndef ADC1_CONFIG #ifndef ADC1_CONFIG
#define ADC1_CONFIG \ #define ADC1_CONFIG \
@ -79,4 +83,8 @@
#endif /* ADC3_CONFIG */ #endif /* ADC3_CONFIG */
#endif /* BSP_USING_ADC3 */ #endif /* BSP_USING_ADC3 */
#ifdef __cplusplus
}
#endif
#endif /* __ADC_CONFIG_H__ */ #endif /* __ADC_CONFIG_H__ */

View File

@ -0,0 +1,135 @@
/*
* Copyright (c) 2006-2018, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2019-01-05 zylx first version
* 2019-01-08 SummerGift clean up the code
*/
#ifndef __DMA_CONFIG_H__
#define __DMA_CONFIG_H__
#include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
/* DMA1 channel1 */
/* DMA1 channel2 */
#if defined(BSP_SPI1_RX_USING_DMA) && !defined(SPI1_RX_DMA_INSTANCE)
#define SPI1_DMA_RX_IRQHandler DMA1_Channel2_IRQHandler
#define SPI1_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define SPI1_RX_DMA_INSTANCE DMA1_Channel2
#define SPI1_RX_DMA_REQUEST DMA_REQUEST_1
#define SPI1_RX_DMA_IRQ DMA1_Channel2_IRQn
#endif
/* DMA1 channel3 */
#if defined(BSP_SPI1_TX_USING_DMA) && !defined(SPI1_TX_DMA_INSTANCE)
#define SPI1_DMA_TX_IRQHandler DMA1_Channel3_IRQHandler
#define SPI1_TX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define SPI1_TX_DMA_INSTANCE DMA1_Channel3
#define SPI1_TX_DMA_REQUEST DMA_REQUEST_1
#define SPI1_TX_DMA_IRQ DMA1_Channel3_IRQn
#endif
/* DMA1 channel4 */
#if defined(BSP_UART1_TX_USING_DMA) && !defined(UART1_TX_DMA_INSTANCE)
#define UART1_DMA_TX_IRQHandler DMA1_Channel4_IRQHandler
#define UART1_TX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define UART1_TX_DMA_INSTANCE DMA1_Channel4
#define UART1_TX_DMA_REQUEST DMA_REQUEST_2
#define UART1_TX_DMA_IRQ DMA1_Channel4_IRQn
#endif
/* DMA1 channel5 */
#if defined(BSP_UART1_RX_USING_DMA) && !defined(UART1_RX_DMA_INSTANCE)
#define UART1_DMA_RX_IRQHandler DMA1_Channel5_IRQHandler
#define UART1_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define UART1_RX_DMA_INSTANCE DMA1_Channel5
#define UART1_RX_DMA_REQUEST DMA_REQUEST_2
#define UART1_RX_DMA_IRQ DMA1_Channel5_IRQn
#elif defined(BSP_QSPI_USING_DMA) && !defined(QSPI_DMA_INSTANCE)
#define QSPI_DMA_IRQHandler DMA1_Channel5_IRQHandler
#define QSPI_DMA_RCC RCC_AHB1ENR_DMA1EN
#define QSPI_DMA_INSTANCE DMA1_Channel5
#define QSPI_DMA_REQUEST DMA_REQUEST_5
#define QSPI_DMA_IRQ DMA1_Channel5_IRQn
#endif
/* DMA1 channel6 */
/* DMA1 channel7 */
/* DMA2 channel1 */
#if defined(BSP_UART5_TX_USING_DMA) && !defined(UART5_TX_DMA_INSTANCE)
#define UART5_DMA_TX_IRQHandler DMA2_Channel1_IRQHandler
#define UART5_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define UART5_TX_DMA_INSTANCE DMA2_Channel1
#define UART5_TX_DMA_REQUEST DMA_REQUEST_2
#define UART5_TX_DMA_IRQ DMA2_Channel1_IRQn
#endif
/* DMA2 channel2 */
#if defined(BSP_UART5_RX_USING_DMA) && !defined(UART5_RX_DMA_INSTANCE)
#define UART5_DMA_RX_IRQHandler DMA2_Channel2_IRQHandler
#define UART5_RX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define UART5_RX_DMA_INSTANCE DMA2_Channel2
#define UART5_RX_DMA_REQUEST DMA_REQUEST_2
#define UART5_RX_DMA_IRQ DMA2_Channel2_IRQn
#endif
/* DMA2 channel3 */
#if defined(BSP_SPI1_RX_USING_DMA) && !defined(SPI1_RX_DMA_INSTANCE)
#define SPI1_DMA_RX_IRQHandler DMA2_Channel3_IRQHandler
#define SPI1_RX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI1_RX_DMA_INSTANCE DMA2_Channel3
#define SPI1_RX_DMA_REQUEST DMA_REQUEST_4
#define SPI1_RX_DMA_IRQ DMA2_Channel3_IRQn
#endif
/* DMA2 channel4 */
#if defined(BSP_SPI1_TX_USING_DMA) && !defined(SPI1_TX_DMA_INSTANCE)
#define SPI1_DMA_TX_IRQHandler DMA2_Channel4_IRQHandler
#define SPI1_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI1_TX_DMA_INSTANCE DMA2_Channel4
#define SPI1_TX_DMA_REQUEST DMA_REQUEST_4
#define SPI1_TX_DMA_IRQ DMA2_Channel4_IRQn
#endif
/* DMA2 channel5 */
/* DMA2 channel6 */
#if defined(BSP_UART1_TX_USING_DMA) && !defined(UART1_TX_DMA_INSTANCE)
#define UART1_DMA_TX_IRQHandler DMA2_Channel6_IRQHandler
#define UART1_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define UART1_TX_DMA_INSTANCE DMA2_Channel6
#define UART1_TX_DMA_REQUEST DMA_REQUEST_2
#define UART1_TX_DMA_IRQ DMA2_Channel6_IRQn
#endif
/* DMA2 channel7 */
#if defined(BSP_UART1_RX_USING_DMA) && !defined(UART1_RX_DMA_INSTANCE)
#define UART1_DMA_RX_IRQHandler DMA2_Channel7_IRQHandler
#define UART1_RX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define UART1_RX_DMA_INSTANCE DMA2_Channel7
#define UART1_RX_DMA_REQUEST DMA_REQUEST_2
#define UART1_RX_DMA_IRQ DMA2_Channel7_IRQn
#elif defined(BSP_QSPI_USING_DMA) && !defined(QSPI_DMA_INSTANCE)
#define QSPI_DMA_IRQHandler DMA2_Channel7_IRQHandler
#define QSPI_DMA_RCC RCC_AHB1ENR_DMA2EN
#define QSPI_DMA_INSTANCE DMA2_Channel7
#define QSPI_DMA_REQUEST DMA_REQUEST_3
#define QSPI_DMA_IRQ DMA2_Channel7_IRQn
#endif
#ifdef __cplusplus
}
#endif
#endif /* __DMA_CONFIG_H__ */

View File

@ -13,6 +13,10 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef BSP_USING_PWM2 #ifdef BSP_USING_PWM2
#ifndef PWM2_CONFIG #ifndef PWM2_CONFIG
#define PWM2_CONFIG \ #define PWM2_CONFIG \
@ -57,4 +61,8 @@
#endif /* PWM5_CONFIG */ #endif /* PWM5_CONFIG */
#endif /* BSP_USING_PWM5 */ #endif /* BSP_USING_PWM5 */
#ifdef __cplusplus
}
#endif
#endif /* __PWM_CONFIG_H__ */ #endif /* __PWM_CONFIG_H__ */

View File

@ -13,6 +13,10 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef BSP_USING_QSPI #ifdef BSP_USING_QSPI
#ifndef QSPI_BUS_CONFIG #ifndef QSPI_BUS_CONFIG
#define QSPI_BUS_CONFIG \ #define QSPI_BUS_CONFIG \
@ -29,8 +33,8 @@
#ifndef QSPI_DMA_CONFIG #ifndef QSPI_DMA_CONFIG
#define QSPI_DMA_CONFIG \ #define QSPI_DMA_CONFIG \
{ \ { \
.Instance = DMA1_Channel5, \ .Instance = QSPI_DMA_INSTANCE, \
.Init.Request = DMA_REQUEST_5, \ .Init.Request = QSPI_DMA_REQUEST, \
.Init.Direction = DMA_PERIPH_TO_MEMORY, \ .Init.Direction = DMA_PERIPH_TO_MEMORY, \
.Init.PeriphInc = DMA_PINC_DISABLE, \ .Init.PeriphInc = DMA_PINC_DISABLE, \
.Init.MemInc = DMA_MINC_ENABLE, \ .Init.MemInc = DMA_MINC_ENABLE, \
@ -42,10 +46,11 @@
#endif /* QSPI_DMA_CONFIG */ #endif /* QSPI_DMA_CONFIG */
#endif /* BSP_QSPI_USING_DMA */ #endif /* BSP_QSPI_USING_DMA */
#define QSPI_DMA_CLK_ENABLE __HAL_RCC_DMA1_CLK_ENABLE()
#define QSPI_IRQn QUADSPI_IRQn #define QSPI_IRQn QUADSPI_IRQn
#define QSPI_DMA_IRQn DMA1_Channel5_IRQn
#define QSPI_IRQHandler QUADSPI_IRQHandler #define QSPI_IRQHandler QUADSPI_IRQHandler
#define QSPI_DMA_IRQHandler DMA1_Channel5_IRQHandler
#ifdef __cplusplus
}
#endif
#endif /* __QSPI_CONFIG_H__ */ #endif /* __QSPI_CONFIG_H__ */

View File

@ -5,7 +5,7 @@
* *
* Change Logs: * Change Logs:
* Date Author Notes * Date Author Notes
* 2018-11-06 SummerGift change to new framework * 2018-11-06 SummerGift first version
*/ */
#ifndef __SPI_CONFIG_H__ #ifndef __SPI_CONFIG_H__
@ -13,23 +13,43 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef BSP_USING_SPI1 #ifdef BSP_USING_SPI1
#ifndef SPI1_BUS_CONFIG
#define SPI1_BUS_CONFIG \ #define SPI1_BUS_CONFIG \
{ \ { \
.Instance = SPI1, \ .Instance = SPI1, \
.bus_name = "spi1", \ .bus_name = "spi1", \
.dma_rx.dma_rcc = RCC_AHB1ENR_DMA1EN, \
.dma_tx.dma_rcc = RCC_AHB1ENR_DMA1EN, \
.dma_rx.Instance = DMA1_Channel2, \
.dma_rx.request = DMA_REQUEST_1, \
.dma_rx.dma_irq = DMA1_Channel2_IRQn, \
.dma_tx.Instance = DMA1_Channel3, \
.dma_tx.request = DMA_REQUEST_1, \
.dma_tx.dma_irq = DMA1_Channel3_IRQn, \
} }
#define SPI1_DMA_RX_IRQHandler DMA1_Channel2_IRQHandler #endif /* SPI1_BUS_CONFIG */
#define SPI1_DMA_TX_IRQHandler DMA1_Channel3_IRQHandler #endif /* BSP_USING_SPI1 */
#endif
#ifdef BSP_SPI1_TX_USING_DMA
#ifndef SPI1_TX_DMA_CONFIG
#define SPI1_TX_DMA_CONFIG \
{ \
.dma_rcc = SPI1_TX_DMA_RCC, \
.Instance = SPI1_TX_DMA_INSTANCE, \
.request = SPI1_TX_DMA_REQUEST, \
.dma_irq = SPI1_TX_DMA_IRQ, \
}
#endif /* SPI1_TX_DMA_CONFIG */
#endif /* BSP_SPI1_TX_USING_DMA */
#ifdef BSP_SPI1_RX_USING_DMA
#ifndef SPI1_RX_DMA_CONFIG
#define SPI1_RX_DMA_CONFIG \
{ \
.dma_rcc = SPI1_RX_DMA_RCC, \
.Instance = SPI1_RX_DMA_INSTANCE, \
.request = SPI1_RX_DMA_REQUEST, \
.dma_irq = SPI1_RX_DMA_IRQ, \
}
#endif /* SPI1_RX_DMA_CONFIG */
#endif /* BSP_SPI1_RX_USING_DMA */
#ifdef BSP_USING_SPI2 #ifdef BSP_USING_SPI2
#define SPI2_BUS_CONFIG \ #define SPI2_BUS_CONFIG \
@ -45,8 +65,7 @@
.dma_tx.request = DMA_REQUEST_1, \ .dma_tx.request = DMA_REQUEST_1, \
.dma_tx.dma_irq = DMA1_Channel5_IRQn, \ .dma_tx.dma_irq = DMA1_Channel5_IRQn, \
} }
#define SPI2_DMA_RX_IRQHandler DMA1_Channel4_IRQHandler
#define SPI2_DMA_TX_IRQHandler DMA1_Channel5_IRQHandler
#endif #endif
#ifdef BSP_USING_SPI3 #ifdef BSP_USING_SPI3
@ -63,8 +82,11 @@
.dma_tx.request = DMA_REQUEST_3, \ .dma_tx.request = DMA_REQUEST_3, \
.dma_tx.dma_irq = DMA2_Channel2_IRQn, \ .dma_tx.dma_irq = DMA2_Channel2_IRQn, \
} }
#define SPI3_DMA_RX_IRQHandler DMA2_Channel1_IRQHandler
#define SPI3_DMA_TX_IRQHandler DMA2_Channel2_IRQHandler #endif
#ifdef __cplusplus
}
#endif #endif
#endif /*__SPI_CONFIG_H__ */ #endif /*__SPI_CONFIG_H__ */

View File

@ -13,6 +13,10 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifndef TIM_DEV_INFO_CONFIG #ifndef TIM_DEV_INFO_CONFIG
#define TIM_DEV_INFO_CONFIG \ #define TIM_DEV_INFO_CONFIG \
{ \ { \
@ -56,4 +60,8 @@
#endif /* TIM17_CONFIG */ #endif /* TIM17_CONFIG */
#endif /* BSP_USING_TIM17 */ #endif /* BSP_USING_TIM17 */
#ifdef __cplusplus
}
#endif
#endif /* __TIM_CONFIG_H__ */ #endif /* __TIM_CONFIG_H__ */

View File

@ -5,7 +5,7 @@
* *
* Change Logs: * Change Logs:
* Date Author Notes * Date Author Notes
* 2018-11-06 SummerGift change to new framework * 2018-11-06 SummerGift first version
*/ */
#ifndef __UART_CONFIG_H__ #ifndef __UART_CONFIG_H__
@ -13,36 +13,58 @@
#include <rtthread.h> #include <rtthread.h>
#if defined(BSP_USING_UART1) #ifdef __cplusplus
extern "C" {
#endif
#if defined(BSP_USING_UART1)
#ifndef UART1_CONFIG
#define UART1_CONFIG \ #define UART1_CONFIG \
{ \ { \
.name = "uart1", \ .name = "uart1", \
.Instance = USART1, \ .Instance = USART1, \
.irq_type = USART1_IRQn, \ .irq_type = USART1_IRQn, \
.dma.channel_request.Instance = DMA2_Channel7, \
.dma.channel_request.request = DMA_REQUEST_2, \
.dma_rcc = RCC_AHB1ENR_DMA2EN, \
.dma_irq = DMA2_Channel7_IRQn, \
} }
#endif /* UART1_CONFIG */
#endif /* BSP_USING_UART1 */
#define USART1_RX_DMA_ISR DMA2_Channel7_IRQHandler #if defined(BSP_UART1_RX_USING_DMA)
#endif #ifndef UART1_DMA_CONFIG
#define UART1_DMA_CONFIG \
{ \
.Instance = UART1_RX_DMA_INSTANCE, \
.request = UART1_RX_DMA_REQUEST, \
.dma_rcc = UART1_RX_DMA_RCC, \
.dma_irq = UART1_RX_DMA_IRQ, \
}
#endif /* UART1_DMA_CONFIG */
#endif /* BSP_UART1_RX_USING_DMA */
#if defined(BSP_USING_UART2) #if defined(BSP_USING_UART2)
#ifndef UART2_CONFIG
#define UART2_CONFIG \ #define UART2_CONFIG \
{ \ { \
.name = "uart2", \ .name = "uart2", \
.Instance = USART2, \ .Instance = USART2, \
.irq_type = USART2_IRQn, \ .irq_type = USART2_IRQn, \
.dma.channel_request.Instance = DMA1_Channel6, \
.dma.channel_request.request = DMA_REQUEST_2, \
.dma_rcc = RCC_AHB1SMENR_DMA1SMEN, \
.dma_irq = DMA1_Channel6_IRQn, \
} }
#endif /* UART2_CONFIG */
#endif /* BSP_USING_UART2 */
#define USART2_RX_DMA_ISR DMA1_Channel6_IRQHandler #if defined(BSP_UART2_RX_USING_DMA)
#ifndef UART2_DMA_CONFIG
#define UART2_DMA_CONFIG \
{ \
.Instance = UART2_RX_DMA_INSTANCE, \
.request = UART2_RX_DMA_REQUEST, \
.dma_rcc = UART2_RX_DMA_RCC, \
.dma_irq = UART2_RX_DMA_IRQ, \
}
#endif /* UART2_DMA_CONFIG */
#endif /* BSP_UART2_RX_USING_DMA */
#ifdef __cplusplus
}
#endif #endif
#endif #endif

View File

@ -5,7 +5,7 @@
* *
* Change Logs: * Change Logs:
* Date Author Notes * Date Author Notes
* 2018-11-7 SummerGift change to new framework * 2018-11-7 SummerGift first version
*/ */
#ifndef __DRV_COMMON_H__ #ifndef __DRV_COMMON_H__
@ -16,6 +16,10 @@
#include <rtdevice.h> #include <rtdevice.h>
#include <board.h> #include <board.h>
#ifdef __cplusplus
extern "C" {
#endif
void _Error_Handler(char *s, int num); void _Error_Handler(char *s, int num);
#ifndef Error_Handler #ifndef Error_Handler
@ -24,4 +28,8 @@ void _Error_Handler(char *s, int num);
#define DMA_NOT_AVAILABLE ((DMA_INSTANCE_TYPE *)0xFFFFFFFFU) #define DMA_NOT_AVAILABLE ((DMA_INSTANCE_TYPE *)0xFFFFFFFFU)
#ifdef __cplusplus
}
#endif
#endif #endif

View File

@ -14,13 +14,19 @@
#include <board.h> #include <board.h>
#include <rtthread.h> #include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
#if defined(SOC_SERIES_STM32F0) #if defined(SOC_SERIES_STM32F0)
#include "f0/dma_config.h"
#include "f0/uart_config.h" #include "f0/uart_config.h"
#include "f0/spi_config.h" #include "f0/spi_config.h"
#include "f0/tim_config.h" #include "f0/tim_config.h"
#include "f0/pwm_config.h" #include "f0/pwm_config.h"
#include "f0/adc_config.h" #include "f0/adc_config.h"
#elif defined(SOC_SERIES_STM32F1) #elif defined(SOC_SERIES_STM32F1)
#include "f1/dma_config.h"
#include "f1/uart_config.h" #include "f1/uart_config.h"
#include "f1/spi_config.h" #include "f1/spi_config.h"
#include "f1/adc_config.h" #include "f1/adc_config.h"
@ -28,6 +34,7 @@
#include "f1/sdio_config.h" #include "f1/sdio_config.h"
#include "f1/pwm_config.h" #include "f1/pwm_config.h"
#elif defined(SOC_SERIES_STM32F4) #elif defined(SOC_SERIES_STM32F4)
#include "f4/dma_config.h"
#include "f4/uart_config.h" #include "f4/uart_config.h"
#include "f4/spi_config.h" #include "f4/spi_config.h"
#include "f4/adc_config.h" #include "f4/adc_config.h"
@ -35,6 +42,7 @@
#include "f4/sdio_config.h" #include "f4/sdio_config.h"
#include "f4/pwm_config.h" #include "f4/pwm_config.h"
#elif defined(SOC_SERIES_STM32F7) #elif defined(SOC_SERIES_STM32F7)
#include "f7/dma_config.h"
#include "f7/uart_config.h" #include "f7/uart_config.h"
#include "f7/spi_config.h" #include "f7/spi_config.h"
#include "f7/qspi_config.h" #include "f7/qspi_config.h"
@ -43,6 +51,7 @@
#include "f7/sdio_config.h" #include "f7/sdio_config.h"
#include "f7/pwm_config.h" #include "f7/pwm_config.h"
#elif defined(SOC_SERIES_STM32L4) #elif defined(SOC_SERIES_STM32L4)
#include "l4/dma_config.h"
#include "l4/uart_config.h" #include "l4/uart_config.h"
#include "l4/spi_config.h" #include "l4/spi_config.h"
#include "l4/qspi_config.h" #include "l4/qspi_config.h"
@ -51,4 +60,8 @@
#include "l4/pwm_config.h" #include "l4/pwm_config.h"
#endif #endif
#ifdef __cplusplus
}
#endif
#endif #endif

View File

@ -5,7 +5,7 @@
* *
* Change Logs: * Change Logs:
* Date Author Notes * Date Author Notes
* 2018-11-10 SummerGift change to new framework * 2018-11-10 SummerGift first version
*/ */
#ifndef __DRV_DMA_H_ #ifndef __DRV_DMA_H_
@ -16,7 +16,11 @@
#include <rthw.h> #include <rthw.h>
#include <drv_common.h> #include <drv_common.h>
#if defined(SOC_SERIES_STM32F0) || (SOC_SERIES_STM32F1) || defined(SOC_SERIES_STM32L4) #ifdef __cplusplus
extern "C" {
#endif
#if defined(SOC_SERIES_STM32F0) || defined(SOC_SERIES_STM32F1) || defined(SOC_SERIES_STM32L4)
#define DMA_INSTANCE_TYPE DMA_Channel_TypeDef #define DMA_INSTANCE_TYPE DMA_Channel_TypeDef
#elif defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7) #elif defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7)
#define DMA_INSTANCE_TYPE DMA_Stream_TypeDef #define DMA_INSTANCE_TYPE DMA_Stream_TypeDef
@ -36,5 +40,8 @@ struct dma_config {
#endif #endif
}; };
#ifdef __cplusplus
}
#endif
#endif /*__DRV_DMA_H_ */ #endif /*__DRV_DMA_H_ */

View File

@ -260,6 +260,9 @@ rt_err_t rt_stm32_eth_tx(rt_device_t dev, struct pbuf *p)
/* TODO Optimize data send speed*/ /* TODO Optimize data send speed*/
LOG_D("transmit frame lenth :%d", framelength); LOG_D("transmit frame lenth :%d", framelength);
/* wait for unlocked */
while (EthHandle.Lock == HAL_LOCKED);
state = HAL_ETH_TransmitFrame(&EthHandle, framelength); state = HAL_ETH_TransmitFrame(&EthHandle, framelength);
if (state != HAL_OK) if (state != HAL_OK)
{ {
@ -410,6 +413,40 @@ void HAL_ETH_ErrorCallback(ETH_HandleTypeDef *heth)
LOG_E("eth err"); LOG_E("eth err");
} }
#ifdef PHY_USING_INTERRUPT_MODE
static void eth_phy_isr(void *args)
{
rt_uint32_t status = 0;
static rt_uint8_t link_status = 1;
HAL_ETH_ReadPHYRegister(&EthHandle, PHY_INTERRUPT_FLAG_REG, (uint32_t *)&status);
LOG_D("phy interrupt status reg is 0x%X", status);
HAL_ETH_ReadPHYRegister(&EthHandle, PHY_BASIC_STATUS_REG, (uint32_t *)&status);
LOG_D("phy basic status reg is 0x%X", status);
if (status & PHY_LINKED_STATUS_MASK)
{
if (link_status == 0)
{
link_status = 1;
LOG_D("link up");
/* send link up. */
eth_device_linkchange(&stm32_eth_device.parent, RT_TRUE);
}
}
else
{
if (link_status == 1)
{
link_status = 0;
LOG_I("link down");
/* send link down. */
eth_device_linkchange(&stm32_eth_device.parent, RT_FALSE);
}
}
}
#endif /* PHY_USING_INTERRUPT_MODE */
static uint8_t phy_speed = 0; static uint8_t phy_speed = 0;
#define PHY_LINK_MASK (1<<0) #define PHY_LINK_MASK (1<<0)
static void phy_monitor_thread_entry(void *parameter) static void phy_monitor_thread_entry(void *parameter)
@ -435,12 +472,12 @@ static void phy_monitor_thread_entry(void *parameter)
if (phy_addr == 0xFF) if (phy_addr == 0xFF)
{ {
LOG_E("phy not probe!\r\n"); LOG_E("phy not probe!");
return; return;
} }
else else
{ {
LOG_D("found a phy, address:0x%02X\r\n", phy_addr); LOG_D("found a phy, address:0x%02X", phy_addr);
} }
/* RESET PHY */ /* RESET PHY */
@ -452,7 +489,7 @@ static void phy_monitor_thread_entry(void *parameter)
while (1) while (1)
{ {
HAL_ETH_ReadPHYRegister(&EthHandle, PHY_BASIC_STATUS_REG, (uint32_t *)&status); HAL_ETH_ReadPHYRegister(&EthHandle, PHY_BASIC_STATUS_REG, (uint32_t *)&status);
LOG_D("PHY BASIC STATUS REG:0x%04X\r\n", status); LOG_D("PHY BASIC STATUS REG:0x%04X", status);
phy_speed_new = 0; phy_speed_new = 0;
@ -512,10 +549,21 @@ static void phy_monitor_thread_entry(void *parameter)
/* send link up. */ /* send link up. */
eth_device_linkchange(&stm32_eth_device.parent, RT_TRUE); eth_device_linkchange(&stm32_eth_device.parent, RT_TRUE);
#ifdef PHY_USING_INTERRUPT_MODE
/* configuration intterrupt pin */
rt_pin_mode(PHY_INT_PIN, PIN_MODE_INPUT_PULLUP);
rt_pin_attach_irq(PHY_INT_PIN, PIN_IRQ_MODE_FALLING, eth_phy_isr, (void *)"callbackargs");
rt_pin_irq_enable(PHY_INT_PIN, PIN_IRQ_ENABLE);
/* enable phy interrupt */
HAL_ETH_WritePHYRegister(&EthHandle, PHY_INTERRUPT_MSAK_REG, PHY_INT_MASK);
break;
#endif
} /* link up. */ } /* link up. */
else else
{ {
LOG_I("link down\r\n"); LOG_I("link down");
/* send link down. */ /* send link down. */
eth_device_linkchange(&stm32_eth_device.parent, RT_FALSE); eth_device_linkchange(&stm32_eth_device.parent, RT_FALSE);
} }

View File

@ -55,6 +55,13 @@
#define PHY_10M_MASK ((1<<12) || (1<<13)) #define PHY_10M_MASK ((1<<12) || (1<<13))
#define PHY_100M_MASK ((1<<14) || (1<<15)) #define PHY_100M_MASK ((1<<14) || (1<<15))
#define PHY_FULL_DUPLEX_MASK ((1<<15) || (1<<13)) #define PHY_FULL_DUPLEX_MASK ((1<<15) || (1<<13))
/* The PHY interrupt source flag register. */
#define PHY_INTERRUPT_FLAG_REG 0x15U
/* The PHY interrupt mask register. */
#define PHY_INTERRUPT_MSAK_REG 0x15U
#define PHY_LINK_CHANGE_FLAG (1<<2)
#define PHY_LINK_CHANGE_MASK (1<<9)
#define PHY_INT_MASK 0
#endif /* PHY_USING_DM9161CEP */ #endif /* PHY_USING_DM9161CEP */

View File

@ -16,8 +16,16 @@
#include <rthw.h> #include <rthw.h>
#include <drv_common.h> #include <drv_common.h>
#ifdef __cplusplus
extern "C" {
#endif
int stm32_flash_read(rt_uint32_t addr, rt_uint8_t *buf, size_t size); int stm32_flash_read(rt_uint32_t addr, rt_uint8_t *buf, size_t size);
int stm32_flash_write(rt_uint32_t addr, const rt_uint8_t *buf, size_t size); int stm32_flash_write(rt_uint32_t addr, const rt_uint8_t *buf, size_t size);
int stm32_flash_erase(rt_uint32_t addr, size_t size); int stm32_flash_erase(rt_uint32_t addr, size_t size);
#ifdef __cplusplus
}
#endif
#endif /* __DRV_FLASH_H__ */ #endif /* __DRV_FLASH_H__ */

View File

@ -288,13 +288,13 @@ static rt_err_t timer_ctrl(rt_hwtimer_t *timer, rt_uint32_t cmd, void *arg)
{ {
#if defined(SOC_SERIES_STM32L4) #if defined(SOC_SERIES_STM32L4)
val = HAL_RCC_GetPCLK2Freq() / freq; val = HAL_RCC_GetPCLK2Freq() / freq;
#elif defined(SOC_SERIES_STM32F1) || defined(SOC_SERIES_STM32F4) #elif defined(SOC_SERIES_STM32F1) || defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7)
val = HAL_RCC_GetPCLK2Freq() * 2 / freq; val = HAL_RCC_GetPCLK2Freq() * 2 / freq;
#endif #endif
} }
else else
{ {
#if defined(SOC_SERIES_STM32F1) || defined(SOC_SERIES_STM32F4) #if defined(SOC_SERIES_STM32F1) || defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7)
val = HAL_RCC_GetPCLK1Freq() * 2 / freq; val = HAL_RCC_GetPCLK1Freq() * 2 / freq;
#elif defined(SOC_SERIES_STM32F0) #elif defined(SOC_SERIES_STM32F0)
val = HAL_RCC_GetPCLK1Freq() / freq; val = HAL_RCC_GetPCLK1Freq() / freq;

View File

@ -92,11 +92,19 @@ static int stm32_qspi_init(struct rt_qspi_device *device, struct rt_qspi_configu
/* QSPI interrupts must be enabled when using the HAL_QSPI_Receive_DMA */ /* QSPI interrupts must be enabled when using the HAL_QSPI_Receive_DMA */
HAL_NVIC_SetPriority(QSPI_IRQn, 0, 0); HAL_NVIC_SetPriority(QSPI_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(QSPI_IRQn); HAL_NVIC_EnableIRQ(QSPI_IRQn);
HAL_NVIC_SetPriority(QSPI_DMA_IRQn, 0, 0); HAL_NVIC_SetPriority(QSPI_DMA_IRQ, 0, 0);
HAL_NVIC_EnableIRQ(QSPI_DMA_IRQn); HAL_NVIC_EnableIRQ(QSPI_DMA_IRQ);
/* init QSPI DMA */ /* init QSPI DMA */
QSPI_DMA_CLK_ENABLE; if(QSPI_DMA_RCC == RCC_AHB1ENR_DMA1EN)
{
__HAL_RCC_DMA1_CLK_ENABLE();
}
else
{
__HAL_RCC_DMA2_CLK_ENABLE();
}
HAL_DMA_DeInit(qspi_bus->QSPI_Handler.hdma); HAL_DMA_DeInit(qspi_bus->QSPI_Handler.hdma);
DMA_HandleTypeDef hdma_quadspi_config = QSPI_DMA_CONFIG; DMA_HandleTypeDef hdma_quadspi_config = QSPI_DMA_CONFIG;
qspi_bus->hdma_quadspi = hdma_quadspi_config; qspi_bus->hdma_quadspi = hdma_quadspi_config;

View File

@ -5,8 +5,9 @@
* *
* Change Logs: * Change Logs:
* Date Author Notes * Date Author Notes
* 2018-11-5 SummerGift change to new framework * 2018-11-5 SummerGift first version
* 2018-12-11 greedyhao Porting for stm32f7xx * 2018-12-11 greedyhao Porting for stm32f7xx
* 2019-01-03 zylx modify DMA initialization and spixfer function
*/ */
#include "board.h" #include "board.h"
@ -18,6 +19,7 @@
#include "drv_spi.h" #include "drv_spi.h"
#include "drv_config.h" #include "drv_config.h"
#include <string.h>
//#define DRV_DEBUG //#define DRV_DEBUG
#define LOG_TAG "drv.spi" #define LOG_TAG "drv.spi"
@ -72,7 +74,7 @@ static struct stm32_spi_config spi_config[] =
#endif #endif
}; };
static struct stm32_spi spi_bus_obj[sizeof(spi_config) / sizeof(spi_config[0])]; static struct stm32_spi spi_bus_obj[sizeof(spi_config) / sizeof(spi_config[0])] = {0};
static rt_err_t stm32_spi_init(struct stm32_spi *spi_drv, struct rt_spi_configuration *cfg) static rt_err_t stm32_spi_init(struct stm32_spi *spi_drv, struct rt_spi_configuration *cfg)
{ {
@ -201,6 +203,10 @@ static rt_err_t stm32_spi_init(struct stm32_spi *spi_drv, struct rt_spi_configur
spi_handle->Init.TIMode = SPI_TIMODE_DISABLE; spi_handle->Init.TIMode = SPI_TIMODE_DISABLE;
spi_handle->Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; spi_handle->Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
spi_handle->State = HAL_SPI_STATE_RESET; spi_handle->State = HAL_SPI_STATE_RESET;
#ifdef SOC_SERIES_STM32L4
spi_handle->Init.NSSPMode = SPI_NSS_PULSE_DISABLE;
#endif
if (HAL_SPI_Init(spi_handle) != HAL_OK) if (HAL_SPI_Init(spi_handle) != HAL_OK)
{ {
return RT_EIO; return RT_EIO;
@ -210,79 +216,39 @@ static rt_err_t stm32_spi_init(struct stm32_spi *spi_drv, struct rt_spi_configur
SET_BIT(spi_handle->Instance->CR2, SPI_RXFIFO_THRESHOLD_HF); SET_BIT(spi_handle->Instance->CR2, SPI_RXFIFO_THRESHOLD_HF);
#endif #endif
/* DMA configuration */
if (spi_drv->spi_dma_flag & SPI_USING_RX_DMA_FLAG)
{
HAL_DMA_Init(&spi_drv->dma.handle_rx);
__HAL_LINKDMA(&spi_drv->handle, hdmarx, spi_drv->dma.handle_rx);
/* NVIC configuration for DMA transfer complete interrupt */
HAL_NVIC_SetPriority(spi_drv->config->dma_rx->dma_irq, 0, 0);
HAL_NVIC_EnableIRQ(spi_drv->config->dma_rx->dma_irq);
}
if (spi_drv->spi_dma_flag & SPI_USING_TX_DMA_FLAG)
{
HAL_DMA_Init(&spi_drv->dma.handle_tx);
__HAL_LINKDMA(&spi_drv->handle, hdmatx, spi_drv->dma.handle_tx);
/* NVIC configuration for DMA transfer complete interrupt */
HAL_NVIC_SetPriority(spi_drv->config->dma_tx->dma_irq, 0, 1);
HAL_NVIC_EnableIRQ(spi_drv->config->dma_tx->dma_irq);
}
__HAL_SPI_ENABLE(spi_handle); __HAL_SPI_ENABLE(spi_handle);
LOG_D("%s init done", spi_drv->config->bus_name); LOG_D("%s init done", spi_drv->config->bus_name);
return RT_EOK; return RT_EOK;
} }
#ifdef BSP_SPI_USING_DMA
static uint8_t dummy = 0xFF;
static void spi_dma_transfer_prepare(struct rt_spi_bus * spi_bus, struct rt_spi_message* message)
{
struct stm32_spi *spi_drv = rt_container_of(spi_bus, struct stm32_spi, spi_bus);
DMA_HandleTypeDef * hdma_tx = (DMA_HandleTypeDef *)&spi_drv->dma.handle_tx;
DMA_HandleTypeDef * hdma_rx = (DMA_HandleTypeDef *)&spi_drv->dma.handle_rx;
HAL_DMA_DeInit(hdma_tx);
HAL_DMA_DeInit(hdma_rx);
/*
* Check if the DMA Stream is disabled before enabling it.
* Note that this step is useful when the same Stream is used multiple times.
*/
#if defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7)
while (hdma_tx->Instance->CR & DMA_SxCR_EN);
while (hdma_rx->Instance->CR & DMA_SxCR_EN);
#endif
if(message->recv_buf != RT_NULL)
{
hdma_rx->Init.MemInc = DMA_MINC_ENABLE;
}
else
{
message->recv_buf = &dummy;
hdma_rx->Init.MemInc = DMA_MINC_DISABLE;
}
HAL_DMA_Init(hdma_rx);
__HAL_LINKDMA(&spi_drv->handle, hdmarx, spi_drv->dma.handle_rx);
if(message->send_buf != RT_NULL)
{
hdma_tx->Init.MemInc = DMA_MINC_ENABLE;
}
else
{
dummy = 0xFF;
message->send_buf = &dummy;
hdma_tx->Init.MemInc = DMA_MINC_DISABLE;
}
HAL_DMA_Init(hdma_tx);
/* link DMA with SPI */
__HAL_LINKDMA(&spi_drv->handle, hdmatx, spi_drv->dma.handle_tx);
LOG_D("%s RX Instance: %x, TX Instance: %x", spi_drv->config->bus_name, hdma_rx->Instance, hdma_tx->Instance);
LOG_D("%s dma config done, TX dma_irq number: %d, RX dma_irq number: %d",
spi_drv->config->bus_name,
spi_drv->config->dma_tx.dma_irq,
spi_drv->config->dma_rx.dma_irq);
/* NVIC configuration for DMA transfer complete interrupt*/
HAL_NVIC_SetPriority(spi_drv->config->dma_tx.dma_irq, 0, 1);
HAL_NVIC_EnableIRQ(spi_drv->config->dma_tx.dma_irq);
/* NVIC configuration for DMA transfer complete interrupt*/
HAL_NVIC_SetPriority(spi_drv->config->dma_rx.dma_irq, 0, 0);
HAL_NVIC_EnableIRQ(spi_drv->config->dma_rx.dma_irq);
}
#endif
static rt_uint32_t spixfer(struct rt_spi_device *device, struct rt_spi_message *message) static rt_uint32_t spixfer(struct rt_spi_device *device, struct rt_spi_message *message)
{ {
HAL_StatusTypeDef state;
RT_ASSERT(device != RT_NULL); RT_ASSERT(device != RT_NULL);
RT_ASSERT(device->bus != RT_NULL); RT_ASSERT(device->bus != RT_NULL);
RT_ASSERT(device->bus->parent.user_data != RT_NULL); RT_ASSERT(device->bus->parent.user_data != RT_NULL);
@ -291,122 +257,72 @@ static rt_uint32_t spixfer(struct rt_spi_device *device, struct rt_spi_message *
struct stm32_spi *spi_drv = rt_container_of(device->bus, struct stm32_spi, spi_bus); struct stm32_spi *spi_drv = rt_container_of(device->bus, struct stm32_spi, spi_bus);
SPI_HandleTypeDef *spi_handle = &spi_drv->handle; SPI_HandleTypeDef *spi_handle = &spi_drv->handle;
struct stm32_hw_spi_cs *cs = device->parent.user_data; struct stm32_hw_spi_cs *cs = device->parent.user_data;
rt_int32_t length = message->length;
rt_int32_t data_width = spi_drv->cfg->data_width;
if (message->cs_take) if (message->cs_take)
{ {
HAL_GPIO_WritePin(cs->GPIOx, cs->GPIO_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(cs->GPIOx, cs->GPIO_Pin, GPIO_PIN_RESET);
} }
#ifdef BSP_SPI_USING_DMA LOG_D("%s transfer prepare and start", spi_drv->config->bus_name);
if(message->length > 32)
{
if(data_width <= 8)
{
HAL_StatusTypeDef state;
LOG_D("%s dma transfer prepare and start", spi_drv->config->bus_name);
LOG_D("%s sendbuf: %X, recvbuf: %X, length: %d", LOG_D("%s sendbuf: %X, recvbuf: %X, length: %d",
spi_drv->config->bus_name, spi_drv->config->bus_name,
(uint32_t)message->send_buf, (uint32_t)message->send_buf,
(uint32_t)message->recv_buf, message->length); (uint32_t)message->recv_buf, message->length);
spi_dma_transfer_prepare(device->bus, message); if (message->length)
/* start once data exchange in DMA mode */
state = HAL_SPI_TransmitReceive_DMA(spi_handle,
(uint8_t*)message->send_buf,
(uint8_t*)message->recv_buf,
message->length);
if (state != HAL_OK)
{ {
LOG_D("spi flash configuration error : %d", state); /* start once data exchange in DMA mode */
message->length = 0; if (message->send_buf && message->recv_buf)
//while(1); {
if ((spi_drv->spi_dma_flag & SPI_USING_TX_DMA_FLAG) && (spi_drv->spi_dma_flag & SPI_USING_RX_DMA_FLAG))
{
state = HAL_SPI_TransmitReceive_DMA(spi_handle, (uint8_t *)message->send_buf, (uint8_t *)message->recv_buf, message->length);
} }
else else
{ {
LOG_D("%s dma transfer done", spi_drv->config->bus_name); state = HAL_SPI_TransmitReceive(spi_handle, (uint8_t *)message->send_buf, (uint8_t *)message->recv_buf, message->length, 1000);
}
}
else if (message->send_buf)
{
if (spi_drv->spi_dma_flag & SPI_USING_TX_DMA_FLAG)
{
state = HAL_SPI_Transmit_DMA(spi_handle, (uint8_t *)message->send_buf, message->length);
}
else
{
state = HAL_SPI_Transmit(spi_handle, (uint8_t *)message->send_buf, message->length, 1000);
}
}
else
{
memset(message->recv_buf, 0xff, message->length);
if (spi_drv->spi_dma_flag & SPI_USING_RX_DMA_FLAG)
{
state = HAL_SPI_Receive_DMA(spi_handle, (uint8_t *)message->recv_buf, message->length);
}
else
{
state = HAL_SPI_Receive(spi_handle, (uint8_t *)message->recv_buf, message->length, 1000);
}
}
if (state != HAL_OK)
{
LOG_I("spi transfer error : %d", state);
message->length = 0;
spi_handle->State = HAL_SPI_STATE_READY;
}
else
{
LOG_D("%s transfer done", spi_drv->config->bus_name);
} }
/* For simplicity reasons, this example is just waiting till the end of the /* For simplicity reasons, this example is just waiting till the end of the
transfer, but application may perform other tasks while transfer operation transfer, but application may perform other tasks while transfer operation
is ongoing. */ is ongoing. */
while (HAL_SPI_GetState(spi_handle) != HAL_SPI_STATE_READY); while (HAL_SPI_GetState(spi_handle) != HAL_SPI_STATE_READY);
LOG_D("%s get state done", spi_drv->config->bus_name);
} }
else
{
// TODO
}
} else
#endif
{
if (data_width == 8)
{
const rt_uint8_t * send_ptr = message->send_buf;
rt_uint8_t * recv_ptr = message->recv_buf;
while (length--)
{
rt_uint8_t data = ~0;
if(send_ptr != RT_NULL)
{
data = *send_ptr++;
}
/* send data once */
while (__HAL_SPI_GET_FLAG(spi_handle, SPI_FLAG_TXE) == RESET);
*(volatile rt_uint8_t *)(&spi_handle->Instance->DR) = data;
/* receive data once */
#if defined(SOC_SERIES_STM32L4) || defined(SOC_SERIES_STM32F0) || defined(SOC_SERIES_STM32F7)
SET_BIT(spi_handle->Instance->CR2, SPI_RXFIFO_THRESHOLD_HF);
#endif
while (__HAL_SPI_GET_FLAG(spi_handle, SPI_FLAG_RXNE) == RESET);
data = *(volatile rt_uint8_t *)(&spi_handle->Instance->DR);
if(recv_ptr != RT_NULL)
{
*recv_ptr++ = data;
}
}
} else
{
const rt_uint16_t * send_ptr = message->send_buf;
rt_uint16_t * recv_ptr = message->recv_buf;
while (length--)
{
rt_uint16_t data = ~0;
if(send_ptr != RT_NULL)
{
data = *send_ptr++;
}
/* send data once */
while (__HAL_SPI_GET_FLAG(spi_handle, SPI_FLAG_TXE) == RESET);
*(volatile rt_uint16_t *)(&spi_handle->Instance->DR) = data;
/* receive data once */
#if defined(SOC_SERIES_STM32L4) || defined(SOC_SERIES_STM32F0) || defined(SOC_SERIES_STM32F7)
SET_BIT(spi_handle->Instance->CR2, SPI_RXFIFO_THRESHOLD_HF);
#endif
while (__HAL_SPI_GET_FLAG(spi_handle, SPI_FLAG_RXNE) == RESET);
data = *(volatile rt_uint16_t *)(&spi_handle->Instance->DR);
if(recv_ptr != RT_NULL)
{
*recv_ptr++ = data;
}
}
}
}
/* Wait until Busy flag is reset before disabling SPI */
while (__HAL_SPI_GET_FLAG(spi_handle, SPI_FLAG_BSY) == SET);
if (message->cs_release) if (message->cs_release)
{ {
@ -443,16 +359,56 @@ static int rt_hw_spi_bus_init(void)
spi_bus_obj[i].spi_bus.parent.user_data = &spi_config[i]; spi_bus_obj[i].spi_bus.parent.user_data = &spi_config[i];
spi_bus_obj[i].handle.Instance = spi_config[i].Instance; spi_bus_obj[i].handle.Instance = spi_config[i].Instance;
#ifdef BSP_SPI_USING_DMA if (spi_bus_obj[i].spi_dma_flag & SPI_USING_RX_DMA_FLAG)
{
/* Configure the DMA handler for Transmission process */ /* Configure the DMA handler for Transmission process */
spi_bus_obj[i].dma.handle_tx.Instance = spi_config[i].dma_tx.Instance; spi_bus_obj[i].dma.handle_rx.Instance = spi_config[i].dma_rx->Instance;
#if defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7) #if defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7)
spi_bus_obj[i].dma.handle_tx.Init.Channel = spi_config[i].dma_tx.channel; spi_bus_obj[i].dma.handle_rx.Init.Channel = spi_config[i].dma_rx->channel;
#elif defined(SOC_SERIES_STM32L4) #elif defined(SOC_SERIES_STM32L4)
spi_bus_obj[i].dma.handle_tx.Init.Request = spi_config[i].dma_tx.request; spi_bus_obj[i].dma.handle_rx.Init.Request = spi_config[i].dma_rx->request;
#endif
spi_bus_obj[i].dma.handle_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
spi_bus_obj[i].dma.handle_rx.Init.PeriphInc = DMA_PINC_DISABLE;
spi_bus_obj[i].dma.handle_rx.Init.MemInc = DMA_MINC_ENABLE;
spi_bus_obj[i].dma.handle_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
spi_bus_obj[i].dma.handle_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
spi_bus_obj[i].dma.handle_rx.Init.Mode = DMA_NORMAL;
spi_bus_obj[i].dma.handle_rx.Init.Priority = DMA_PRIORITY_HIGH;
#if defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7)
spi_bus_obj[i].dma.handle_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
spi_bus_obj[i].dma.handle_rx.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL;
spi_bus_obj[i].dma.handle_rx.Init.MemBurst = DMA_MBURST_INC4;
spi_bus_obj[i].dma.handle_rx.Init.PeriphBurst = DMA_PBURST_INC4;
#endif
{
rt_uint32_t tmpreg = 0x00U;
#if defined(SOC_SERIES_STM32F1)
/* enable DMA clock && Delay after an RCC peripheral clock enabling*/
SET_BIT(RCC->AHBENR, spi_config[i].dma_rx->dma_rcc);
tmpreg = READ_BIT(RCC->AHBENR, spi_config[i].dma_rx->dma_rcc);
#elif defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7) || defined(SOC_SERIES_STM32L4)
SET_BIT(RCC->AHB1ENR, spi_config[i].dma_rx->dma_rcc);
/* Delay after an RCC peripheral clock enabling */
tmpreg = READ_BIT(RCC->AHB1ENR, spi_config[i].dma_rx->dma_rcc);
#endif
UNUSED(tmpreg); /* To avoid compiler warnings */
}
}
if (spi_bus_obj[i].spi_dma_flag & SPI_USING_TX_DMA_FLAG)
{
/* Configure the DMA handler for Transmission process */
spi_bus_obj[i].dma.handle_tx.Instance = spi_config[i].dma_tx->Instance;
#if defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7)
spi_bus_obj[i].dma.handle_tx.Init.Channel = spi_config[i].dma_tx->channel;
#elif defined(SOC_SERIES_STM32L4)
spi_bus_obj[i].dma.handle_tx.Init.Request = spi_config[i].dma_tx->request;
#endif #endif
spi_bus_obj[i].dma.handle_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; spi_bus_obj[i].dma.handle_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
spi_bus_obj[i].dma.handle_tx.Init.PeriphInc = DMA_PINC_DISABLE; spi_bus_obj[i].dma.handle_tx.Init.PeriphInc = DMA_PINC_DISABLE;
spi_bus_obj[i].dma.handle_tx.Init.MemInc = DMA_MINC_ENABLE;
spi_bus_obj[i].dma.handle_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; spi_bus_obj[i].dma.handle_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
spi_bus_obj[i].dma.handle_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; spi_bus_obj[i].dma.handle_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
spi_bus_obj[i].dma.handle_tx.Init.Mode = DMA_NORMAL; spi_bus_obj[i].dma.handle_tx.Init.Mode = DMA_NORMAL;
@ -464,40 +420,20 @@ static int rt_hw_spi_bus_init(void)
spi_bus_obj[i].dma.handle_tx.Init.PeriphBurst = DMA_PBURST_INC4; spi_bus_obj[i].dma.handle_tx.Init.PeriphBurst = DMA_PBURST_INC4;
#endif #endif
spi_bus_obj[i].dma.handle_rx.Instance = spi_config[i].dma_rx.Instance;
#if defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7)
spi_bus_obj[i].dma.handle_rx.Init.Channel = spi_config[i].dma_rx.channel;
#elif defined(SOC_SERIES_STM32L4)
spi_bus_obj[i].dma.handle_rx.Init.Request = spi_config[i].dma_rx.request;
#endif
spi_bus_obj[i].dma.handle_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
spi_bus_obj[i].dma.handle_rx.Init.PeriphInc = DMA_PINC_DISABLE;
spi_bus_obj[i].dma.handle_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
spi_bus_obj[i].dma.handle_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
spi_bus_obj[i].dma.handle_rx.Init.Mode = DMA_NORMAL;
spi_bus_obj[i].dma.handle_rx.Init.Priority = DMA_PRIORITY_HIGH;
#if defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7)
spi_bus_obj[i].dma.handle_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
spi_bus_obj[i].dma.handle_rx.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL;
spi_bus_obj[i].dma.handle_rx.Init.MemBurst = DMA_MBURST_INC4;
spi_bus_obj[i].dma.handle_rx.Init.PeriphBurst = DMA_PBURST_INC4;
#endif
{ {
rt_uint32_t tmpreg = 0x00U; rt_uint32_t tmpreg = 0x00U;
#if defined(SOC_SERIES_STM32F1) #if defined(SOC_SERIES_STM32F1)
/* enable DMA clock && Delay after an RCC peripheral clock enabling*/ /* enable DMA clock && Delay after an RCC peripheral clock enabling*/
SET_BIT(RCC->AHBENR, spi_config[i].dma_rx.dma_rcc); SET_BIT(RCC->AHBENR, spi_config[i].dma_rx->dma_rcc);
tmpreg = READ_BIT(RCC->AHBENR, spi_config[i].dma_rx.dma_rcc); tmpreg = READ_BIT(RCC->AHBENR, spi_config[i].dma_rx->dma_rcc);
#elif defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7) || defined(SOC_SERIES_STM32L4) #elif defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7) || defined(SOC_SERIES_STM32L4)
SET_BIT(RCC->AHB1ENR, spi_config[i].dma_rx.dma_rcc); SET_BIT(RCC->AHB1ENR, spi_config[i].dma_tx->dma_rcc);
/* Delay after an RCC peripheral clock enabling */ /* Delay after an RCC peripheral clock enabling */
tmpreg = READ_BIT(RCC->AHB1ENR, spi_config[i].dma_rx.dma_rcc); tmpreg = READ_BIT(RCC->AHB1ENR, spi_config[i].dma_tx->dma_rcc);
#endif #endif
UNUSED(tmpreg); /* To avoid compiler warnings */ UNUSED(tmpreg); /* To avoid compiler warnings */
} }
}
LOG_D("%s DMA clock init done", spi_config[i].bus_name);
#endif /* BSP_SPI_USING_DMA */
result = rt_spi_bus_register(&spi_bus_obj[i].spi_bus, spi_config[i].bus_name, &stm_spi_ops); result = rt_spi_bus_register(&spi_bus_obj[i].spi_bus, spi_config[i].bus_name, &stm_spi_ops);
RT_ASSERT(result == RT_EOK); RT_ASSERT(result == RT_EOK);
@ -550,7 +486,20 @@ rt_err_t rt_hw_spi_device_attach(const char *bus_name, const char *device_name,
return result; return result;
} }
#if defined(BSP_USING_SPI1) && defined(BSP_SPI_USING_DMA) #if defined(BSP_SPI1_TX_USING_DMA) || defined(BSP_SPI1_RX_USING_DMA)
void SPI1_IRQHandler(void)
{
/* enter interrupt */
rt_interrupt_enter();
HAL_SPI_IRQHandler(&spi_bus_obj[SPI1_INDEX].handle);
/* leave interrupt */
rt_interrupt_leave();
}
#endif
#if defined(BSP_USING_SPI1) && defined(BSP_SPI1_RX_USING_DMA)
/** /**
* @brief This function handles DMA Rx interrupt request. * @brief This function handles DMA Rx interrupt request.
* @param None * @param None
@ -566,7 +515,9 @@ void SPI1_DMA_RX_IRQHandler(void)
/* leave interrupt */ /* leave interrupt */
rt_interrupt_leave(); rt_interrupt_leave();
} }
#endif
#if defined(BSP_USING_SPI1) && defined(BSP_SPI1_TX_USING_DMA)
/** /**
* @brief This function handles DMA Tx interrupt request. * @brief This function handles DMA Tx interrupt request.
* @param None * @param None
@ -584,7 +535,20 @@ void SPI1_DMA_TX_IRQHandler(void)
} }
#endif /* defined(BSP_USING_SPI1) && defined(BSP_SPI_USING_DMA) */ #endif /* defined(BSP_USING_SPI1) && defined(BSP_SPI_USING_DMA) */
#if defined(BSP_USING_SPI2) && defined(BSP_SPI_USING_DMA) #if defined(BSP_SPI2_TX_USING_DMA) || defined(BSP_SPI2_RX_USING_DMA)
void SPI2_IRQHandler(void)
{
/* enter interrupt */
rt_interrupt_enter();
HAL_SPI_IRQHandler(&spi_bus_obj[SPI2_INDEX].handle);
/* leave interrupt */
rt_interrupt_leave();
}
#endif
#if defined(BSP_USING_SPI2) && defined(BSP_SPI2_RX_USING_DMA)
/** /**
* @brief This function handles DMA Rx interrupt request. * @brief This function handles DMA Rx interrupt request.
* @param None * @param None
@ -600,7 +564,9 @@ void SPI2_DMA_RX_IRQHandler(void)
/* leave interrupt */ /* leave interrupt */
rt_interrupt_leave(); rt_interrupt_leave();
} }
#endif
#if defined(BSP_USING_SPI2) && defined(BSP_SPI2_TX_USING_DMA)
/** /**
* @brief This function handles DMA Tx interrupt request. * @brief This function handles DMA Tx interrupt request.
* @param None * @param None
@ -618,7 +584,20 @@ void SPI2_DMA_TX_IRQHandler(void)
} }
#endif /* defined(BSP_USING_SPI2) && defined(BSP_SPI_USING_DMA) */ #endif /* defined(BSP_USING_SPI2) && defined(BSP_SPI_USING_DMA) */
#if defined(BSP_USING_SPI3) && defined(BSP_SPI_USING_DMA) #if defined(BSP_SPI3_TX_USING_DMA) || defined(BSP_SPI3_RX_USING_DMA)
void SPI3_IRQHandler(void)
{
/* enter interrupt */
rt_interrupt_enter();
HAL_SPI_IRQHandler(&spi_bus_obj[SPI3_INDEX].handle);
/* leave interrupt */
rt_interrupt_leave();
}
#endif
#if defined(BSP_USING_SPI3) && defined(BSP_SPI3_RX_USING_DMA)
/** /**
* @brief This function handles DMA Rx interrupt request. * @brief This function handles DMA Rx interrupt request.
* @param None * @param None
@ -634,7 +613,9 @@ void SPI3_DMA_RX_IRQHandler(void)
/* leave interrupt */ /* leave interrupt */
rt_interrupt_leave(); rt_interrupt_leave();
} }
#endif
#if defined(BSP_USING_SPI3) && defined(BSP_SPI3_TX_USING_DMA)
/** /**
* @brief This function handles DMA Tx interrupt request. * @brief This function handles DMA Tx interrupt request.
* @param None * @param None
@ -652,8 +633,20 @@ void SPI3_DMA_TX_IRQHandler(void)
} }
#endif /* defined(BSP_USING_SPI3) && defined(BSP_SPI_USING_DMA) */ #endif /* defined(BSP_USING_SPI3) && defined(BSP_SPI_USING_DMA) */
#if defined(BSP_SPI4_TX_USING_DMA) || defined(BSP_SPI4_RX_USING_DMA)
void SPI4_IRQHandler(void)
{
/* enter interrupt */
rt_interrupt_enter();
#if defined(BSP_USING_SPI4) && defined(BSP_SPI_USING_DMA) HAL_SPI_IRQHandler(&spi_bus_obj[SPI4_INDEX].handle);
/* leave interrupt */
rt_interrupt_leave();
}
#endif
#if defined(BSP_USING_SPI4) && defined(BSP_SPI4_RX_USING_DMA)
/** /**
* @brief This function handles DMA Rx interrupt request. * @brief This function handles DMA Rx interrupt request.
* @param None * @param None
@ -669,7 +662,9 @@ void SPI4_DMA_RX_IRQHandler(void)
/* leave interrupt */ /* leave interrupt */
rt_interrupt_leave(); rt_interrupt_leave();
} }
#endif
#if defined(BSP_USING_SPI4) && defined(BSP_SPI4_TX_USING_DMA)
/** /**
* @brief This function handles DMA Tx interrupt request. * @brief This function handles DMA Tx interrupt request.
* @param None * @param None
@ -687,7 +682,20 @@ void SPI4_DMA_TX_IRQHandler(void)
} }
#endif /* defined(BSP_USING_SPI4) && defined(BSP_SPI_USING_DMA) */ #endif /* defined(BSP_USING_SPI4) && defined(BSP_SPI_USING_DMA) */
#if defined(BSP_USING_SPI5) && defined(BSP_SPI_USING_DMA) #if defined(BSP_SPI5_TX_USING_DMA) || defined(BSP_SPI5_RX_USING_DMA)
void SPI5_IRQHandler(void)
{
/* enter interrupt */
rt_interrupt_enter();
HAL_SPI_IRQHandler(&spi_bus_obj[SPI5_INDEX].handle);
/* leave interrupt */
rt_interrupt_leave();
}
#endif
#if defined(BSP_USING_SPI5) && defined(BSP_SPI5_RX_USING_DMA)
/** /**
* @brief This function handles DMA Rx interrupt request. * @brief This function handles DMA Rx interrupt request.
* @param None * @param None
@ -703,7 +711,9 @@ void SPI5_DMA_RX_IRQHandler(void)
/* leave interrupt */ /* leave interrupt */
rt_interrupt_leave(); rt_interrupt_leave();
} }
#endif
#if defined(BSP_USING_SPI5) && defined(BSP_SPI5_TX_USING_DMA)
/** /**
* @brief This function handles DMA Tx interrupt request. * @brief This function handles DMA Tx interrupt request.
* @param None * @param None
@ -721,7 +731,7 @@ void SPI5_DMA_TX_IRQHandler(void)
} }
#endif /* defined(BSP_USING_SPI5) && defined(BSP_SPI_USING_DMA) */ #endif /* defined(BSP_USING_SPI5) && defined(BSP_SPI_USING_DMA) */
#if defined(BSP_USING_SPI6) && defined(BSP_SPI_USING_DMA) #if defined(BSP_USING_SPI6) && defined(BSP_SPI6_RX_USING_DMA)
/** /**
* @brief This function handles DMA Rx interrupt request. * @brief This function handles DMA Rx interrupt request.
* @param None * @param None
@ -737,7 +747,9 @@ void SPI6_DMA_RX_IRQHandler(void)
/* leave interrupt */ /* leave interrupt */
rt_interrupt_leave(); rt_interrupt_leave();
} }
#endif
#if defined(BSP_USING_SPI6) && defined(BSP_SPI6_TX_USING_DMA)
/** /**
* @brief This function handles DMA Tx interrupt request. * @brief This function handles DMA Tx interrupt request.
* @param None * @param None
@ -755,8 +767,78 @@ void SPI6_DMA_TX_IRQHandler(void)
} }
#endif /* defined(BSP_USING_SPI6) && defined(BSP_SPI_USING_DMA) */ #endif /* defined(BSP_USING_SPI6) && defined(BSP_SPI_USING_DMA) */
static void stm32_get_dma_info(void)
{
#ifdef BSP_SPI1_RX_USING_DMA
spi_bus_obj[SPI1_INDEX].spi_dma_flag |= SPI_USING_RX_DMA_FLAG;
static struct dma_config spi1_dma_rx = SPI1_RX_DMA_CONFIG;
spi_config[SPI1_INDEX].dma_rx = &spi1_dma_rx;
#endif
#ifdef BSP_SPI1_TX_USING_DMA
spi_bus_obj[SPI1_INDEX].spi_dma_flag |= SPI_USING_TX_DMA_FLAG;
static struct dma_config spi1_dma_tx = SPI1_TX_DMA_CONFIG;
spi_config[SPI1_INDEX].dma_tx = &spi1_dma_tx;
#endif
#ifdef BSP_SPI2_RX_USING_DMA
spi_bus_obj[SPI2_INDEX].spi_dma_flag |= SPI_USING_RX_DMA_FLAG;
static struct dma_config spi2_dma_rx = SPI2_RX_DMA_CONFIG;
spi_config[SPI2_INDEX].dma_rx = &spi2_dma_rx;
#endif
#ifdef BSP_SPI2_TX_USING_DMA
spi_bus_obj[SPI2_INDEX].spi_dma_flag |= SPI_USING_TX_DMA_FLAG;
static struct dma_config spi2_dma_tx = SPI2_TX_DMA_CONFIG;
spi_config[SPI2_INDEX].dma_tx = &spi2_dma_tx;
#endif
#ifdef BSP_SPI3_RX_USING_DMA
spi_bus_obj[SPI3_INDEX].spi_dma_flag |= SPI_USING_RX_DMA_FLAG;
static struct dma_config spi3_dma_rx = SPI3_RX_DMA_CONFIG;
spi_config[SPI3_INDEX].dma_rx = &spi3_dma_rx;
#endif
#ifdef BSP_SPI3_TX_USING_DMA
spi_bus_obj[SPI3_INDEX].spi_dma_flag |= SPI_USING_TX_DMA_FLAG;
static struct dma_config spi3_dma_tx = SPI3_TX_DMA_CONFIG;
spi_config[SPI3_INDEX].dma_tx = &spi3_dma_tx;
#endif
#ifdef BSP_SPI4_RX_USING_DMA
spi_bus_obj[SPI4_INDEX].spi_dma_flag |= SPI_USING_RX_DMA_FLAG;
static struct dma_config spi4_dma_rx = SPI4_RX_DMA_CONFIG;
spi_config[SPI4_INDEX].dma_rx = &spi4_dma_rx;
#endif
#ifdef BSP_SPI4_TX_USING_DMA
spi_bus_obj[SPI4_INDEX].spi_dma_flag |= SPI_USING_TX_DMA_FLAG;
static struct dma_config spi4_dma_tx = SPI4_TX_DMA_CONFIG;
spi_config[SPI4_INDEX].dma_tx = &spi4_dma_tx;
#endif
#ifdef BSP_SPI5_RX_USING_DMA
spi_bus_obj[SPI5_INDEX].spi_dma_flag |= SPI_USING_RX_DMA_FLAG;
static struct dma_config spi5_dma_rx = SPI5_RX_DMA_CONFIG;
spi_config[SPI5_INDEX].dma_rx = &spi5_dma_rx;
#endif
#ifdef BSP_SPI5_TX_USING_DMA
spi_bus_obj[SPI5_INDEX].spi_dma_flag |= SPI_USING_TX_DMA_FLAG;
static struct dma_config spi5_dma_tx = SPI5_TX_DMA_CONFIG;
spi_config[SPI5_INDEX].dma_tx = &spi5_dma_tx;
#endif
#ifdef BSP_SPI6_RX_USING_DMA
spi_bus_obj[SPI6_INDEX].spi_dma_flag |= SPI_USING_RX_DMA_FLAG;
static struct dma_config spi6_dma_rx = SPI6_RX_DMA_CONFIG;
spi_config[SPI6_INDEX].dma_rx = &spi6_dma_rx;
#endif
#ifdef BSP_SPI6_TX_USING_DMA
spi_bus_obj[SPI6_INDEX].spi_dma_flag |= SPI_USING_TX_DMA_FLAG;
static struct dma_config spi6_dma_tx = SPI6_TX_DMA_CONFIG;
spi_config[SPI6_INDEX].dma_tx = &spi6_dma_tx;
#endif
}
int rt_hw_spi_init(void) int rt_hw_spi_init(void)
{ {
stm32_get_dma_info();
return rt_hw_spi_bus_init(); return rt_hw_spi_bus_init();
} }
INIT_BOARD_EXPORT(rt_hw_spi_init); INIT_BOARD_EXPORT(rt_hw_spi_init);

View File

@ -5,7 +5,7 @@
* *
* Change Logs: * Change Logs:
* Date Author Notes * Date Author Notes
* 2018-11-5 SummerGift change to new framework * 2018-11-5 SummerGift first version
*/ */
#ifndef __DRV_SPI_H_ #ifndef __DRV_SPI_H_
@ -29,7 +29,7 @@ struct stm32_spi_config
{ {
SPI_TypeDef *Instance; SPI_TypeDef *Instance;
char *bus_name; char *bus_name;
struct dma_config dma_rx, dma_tx; struct dma_config *dma_rx, *dma_tx;
}; };
struct stm32_spi_device struct stm32_spi_device
@ -39,21 +39,23 @@ struct stm32_spi_device
char *device_name; char *device_name;
}; };
#define SPI_USING_RX_DMA_FLAG (1<<0)
#define SPI_USING_TX_DMA_FLAG (1<<1)
/* stm32 spi dirver class */ /* stm32 spi dirver class */
struct stm32_spi struct stm32_spi
{ {
SPI_HandleTypeDef handle; SPI_HandleTypeDef handle;
const struct stm32_spi_config *config; struct stm32_spi_config *config;
struct rt_spi_configuration *cfg; struct rt_spi_configuration *cfg;
#ifdef BSP_SPI_USING_DMA
struct struct
{ {
DMA_HandleTypeDef handle_rx; DMA_HandleTypeDef handle_rx;
DMA_HandleTypeDef handle_tx; DMA_HandleTypeDef handle_tx;
} dma; } dma;
#endif
rt_uint8_t spi_dma_flag;
struct rt_spi_bus spi_bus; struct rt_spi_bus spi_bus;
}; };

View File

@ -46,7 +46,7 @@ enum
#endif #endif
}; };
static const struct stm32_uart_config uart_config[] = static struct stm32_uart_config uart_config[] =
{ {
#ifdef BSP_USING_UART1 #ifdef BSP_USING_UART1
UART1_CONFIG, UART1_CONFIG,
@ -65,7 +65,7 @@ static const struct stm32_uart_config uart_config[] =
#endif #endif
}; };
static struct stm32_uart uart_obj[sizeof(uart_config) / sizeof(uart_config[0])]; static struct stm32_uart uart_obj[sizeof(uart_config) / sizeof(uart_config[0])] = {0};
static rt_err_t stm32_configure(struct rt_serial_device *serial, struct serial_configure *cfg) static rt_err_t stm32_configure(struct rt_serial_device *serial, struct serial_configure *cfg)
{ {
@ -239,7 +239,7 @@ static void uart_isr(struct rt_serial_device *serial)
UART_INSTANCE_CLEAR_FUNCTION(&(uart->handle), UART_FLAG_RXNE); UART_INSTANCE_CLEAR_FUNCTION(&(uart->handle), UART_FLAG_RXNE);
} }
#ifdef RT_SERIAL_USING_DMA #ifdef RT_SERIAL_USING_DMA
else if ((__HAL_UART_GET_FLAG(&(uart->handle), UART_FLAG_IDLE) != RESET) && else if ((uart->uart_dma_flag) && (__HAL_UART_GET_FLAG(&(uart->handle), UART_FLAG_IDLE) != RESET) &&
(__HAL_UART_GET_IT_SOURCE(&(uart->handle), UART_IT_IDLE) != RESET)) (__HAL_UART_GET_IT_SOURCE(&(uart->handle), UART_IT_IDLE) != RESET))
{ {
level = rt_hw_interrupt_disable(); level = rt_hw_interrupt_disable();
@ -309,8 +309,8 @@ void USART1_IRQHandler(void)
/* leave interrupt */ /* leave interrupt */
rt_interrupt_leave(); rt_interrupt_leave();
} }
#if defined(RT_SERIAL_USING_DMA) && defined(USART1_RX_DMA_ISR) #if defined(RT_SERIAL_USING_DMA) && defined(BSP_UART1_RX_USING_DMA)
void USART1_RX_DMA_ISR(void) void USART1_DMA_RX_IRQHandler(void)
{ {
/* enter interrupt */ /* enter interrupt */
rt_interrupt_enter(); rt_interrupt_enter();
@ -320,7 +320,7 @@ void USART1_RX_DMA_ISR(void)
/* leave interrupt */ /* leave interrupt */
rt_interrupt_leave(); rt_interrupt_leave();
} }
#endif /* defined(RT_SERIAL_USING_DMA) && defined(USART1_RX_DMA_ISR) */ #endif /* defined(RT_SERIAL_USING_DMA) && defined(BSP_UART1_RX_USING_DMA) */
#endif /* BSP_USING_UART1 */ #endif /* BSP_USING_UART1 */
#if defined(BSP_USING_UART2) #if defined(BSP_USING_UART2)
@ -334,8 +334,8 @@ void USART2_IRQHandler(void)
/* leave interrupt */ /* leave interrupt */
rt_interrupt_leave(); rt_interrupt_leave();
} }
#if defined(RT_SERIAL_USING_DMA) && defined(USART2_RX_DMA_ISR) #if defined(RT_SERIAL_USING_DMA) && defined(BSP_UART2_RX_USING_DMA)
void USART2_RX_DMA_ISR(void) void USART2_DMA_RX_IRQHandler(void)
{ {
/* enter interrupt */ /* enter interrupt */
rt_interrupt_enter(); rt_interrupt_enter();
@ -345,7 +345,7 @@ void USART2_RX_DMA_ISR(void)
/* leave interrupt */ /* leave interrupt */
rt_interrupt_leave(); rt_interrupt_leave();
} }
#endif /* defined(RT_SERIAL_USING_DMA) && defined(USART2_RX_DMA_ISR) */ #endif /* defined(RT_SERIAL_USING_DMA) && defined(BSP_UART2_RX_USING_DMA) */
#endif /* BSP_USING_UART2 */ #endif /* BSP_USING_UART2 */
#if defined(BSP_USING_UART3) #if defined(BSP_USING_UART3)
@ -359,8 +359,8 @@ void USART3_IRQHandler(void)
/* leave interrupt */ /* leave interrupt */
rt_interrupt_leave(); rt_interrupt_leave();
} }
#if defined(RT_SERIAL_USING_DMA) && defined(USART3_RX_DMA_ISR) #if defined(RT_SERIAL_USING_DMA) && defined(BSP_UART3_RX_USING_DMA)
void USART3_RX_DMA_ISR(void) void USART3_DMA_RX_IRQHandler(void)
{ {
/* enter interrupt */ /* enter interrupt */
rt_interrupt_enter(); rt_interrupt_enter();
@ -370,7 +370,7 @@ void USART3_RX_DMA_ISR(void)
/* leave interrupt */ /* leave interrupt */
rt_interrupt_leave(); rt_interrupt_leave();
} }
#endif /* defined(BSP_UART_USING_DMA_RX) && defined(USART3_RX_DMA_ISR) */ #endif /* defined(BSP_UART_USING_DMA_RX) && defined(BSP_UART3_RX_USING_DMA) */
#endif /* BSP_USING_UART3*/ #endif /* BSP_USING_UART3*/
#if defined(BSP_USING_UART4) #if defined(BSP_USING_UART4)
@ -384,8 +384,8 @@ void UART4_IRQHandler(void)
/* leave interrupt */ /* leave interrupt */
rt_interrupt_leave(); rt_interrupt_leave();
} }
#if defined(RT_SERIAL_USING_DMA) && defined(USART1_RX_DMA_ISR) #if defined(RT_SERIAL_USING_DMA) && defined(BSP_UART4_RX_USING_DMA)
void USART4_RX_DMA_ISR(void) void USART4_DMA_RX_IRQHandler(void)
{ {
/* enter interrupt */ /* enter interrupt */
rt_interrupt_enter(); rt_interrupt_enter();
@ -395,7 +395,7 @@ void USART4_RX_DMA_ISR(void)
/* leave interrupt */ /* leave interrupt */
rt_interrupt_leave(); rt_interrupt_leave();
} }
#endif /* defined(BSP_UART_USING_DMA_RX) && defined(USART4_RX_DMA_ISR) */ #endif /* defined(BSP_UART_USING_DMA_RX) && defined(BSP_UART4_RX_USING_DMA) */
#endif /* BSP_USING_UART4*/ #endif /* BSP_USING_UART4*/
#if defined(BSP_USING_UART5) #if defined(BSP_USING_UART5)
@ -409,8 +409,8 @@ void UART5_IRQHandler(void)
/* leave interrupt */ /* leave interrupt */
rt_interrupt_leave(); rt_interrupt_leave();
} }
#if defined(RT_SERIAL_USING_DMA) && defined(USART5_RX_DMA_ISR) #if defined(RT_SERIAL_USING_DMA) && defined(BSP_UART5_RX_USING_DMA)
void USART5_RX_DMA_ISR(void) void USART5_DMA_RX_IRQHandler(void)
{ {
/* enter interrupt */ /* enter interrupt */
rt_interrupt_enter(); rt_interrupt_enter();
@ -420,7 +420,7 @@ void USART5_RX_DMA_ISR(void)
/* leave interrupt */ /* leave interrupt */
rt_interrupt_leave(); rt_interrupt_leave();
} }
#endif /* defined(RT_SERIAL_USING_DMA) && defined(USART5_RX_DMA_ISR) */ #endif /* defined(RT_SERIAL_USING_DMA) && defined(BSP_UART5_RX_USING_DMA) */
#endif /* BSP_USING_UART5*/ #endif /* BSP_USING_UART5*/
#ifdef RT_SERIAL_USING_DMA #ifdef RT_SERIAL_USING_DMA
@ -437,12 +437,12 @@ static void stm32_dma_config(struct rt_serial_device *serial)
rt_uint32_t tmpreg= 0x00U; rt_uint32_t tmpreg= 0x00U;
#if defined(SOC_SERIES_STM32F1) || defined(SOC_SERIES_STM32F0) #if defined(SOC_SERIES_STM32F1) || defined(SOC_SERIES_STM32F0)
/* enable DMA clock && Delay after an RCC peripheral clock enabling*/ /* enable DMA clock && Delay after an RCC peripheral clock enabling*/
SET_BIT(RCC->AHBENR, uart->config->dma_rcc); SET_BIT(RCC->AHBENR, uart->config->dma_rx->dma_rcc);
tmpreg = READ_BIT(RCC->AHBENR, uart->config->dma_rcc); tmpreg = READ_BIT(RCC->AHBENR, uart->config->dma_rx->dma_rcc);
#elif defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7) || defined(SOC_SERIES_STM32L4) #elif defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7) || defined(SOC_SERIES_STM32L4)
/* enable DMA clock && Delay after an RCC peripheral clock enabling*/ /* enable DMA clock && Delay after an RCC peripheral clock enabling*/
SET_BIT(RCC->AHB1ENR, uart->config->dma_rcc); SET_BIT(RCC->AHB1ENR, uart->config->dma_rx->dma_rcc);
tmpreg = READ_BIT(RCC->AHB1ENR, uart->config->dma_rcc); tmpreg = READ_BIT(RCC->AHB1ENR, uart->config->dma_rx->dma_rcc);
#endif #endif
UNUSED(tmpreg); /* To avoid compiler warnings */ UNUSED(tmpreg); /* To avoid compiler warnings */
} }
@ -450,13 +450,13 @@ static void stm32_dma_config(struct rt_serial_device *serial)
__HAL_LINKDMA(&(uart->handle), hdmarx, uart->dma.handle); __HAL_LINKDMA(&(uart->handle), hdmarx, uart->dma.handle);
#if defined(SOC_SERIES_STM32F1) || defined(SOC_SERIES_STM32F0) #if defined(SOC_SERIES_STM32F1) || defined(SOC_SERIES_STM32F0)
uart->dma.handle.Instance = uart->config->dma.Instance; uart->dma.handle.Instance = uart->config->dma_rx->Instance;
#elif defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7) #elif defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7)
uart->dma.handle.Instance = uart->config->dma.Instance; uart->dma.handle.Instance = uart->config->dma_rx->Instance;
uart->dma.handle.Init.Channel = uart->config->dma.stream_channel.channel; uart->dma.handle.Init.Channel = uart->config->dma_rx->channel;
#elif defined(SOC_SERIES_STM32L4) #elif defined(SOC_SERIES_STM32L4)
uart->dma.handle.Instance = uart->config->dma.Instance; uart->dma.handle.Instance = uart->config->dma_rx->Instance;
uart->dma.handle.Init.Request = uart->config->dma.channel_request.request; uart->dma.handle.Init.Request = uart->config->dma_rx->request;
#endif #endif
uart->dma.handle.Init.Direction = DMA_PERIPH_TO_MEMORY; uart->dma.handle.Init.Direction = DMA_PERIPH_TO_MEMORY;
uart->dma.handle.Init.PeriphInc = DMA_PINC_DISABLE; uart->dma.handle.Init.PeriphInc = DMA_PINC_DISABLE;
@ -491,8 +491,8 @@ static void stm32_dma_config(struct rt_serial_device *serial)
__HAL_UART_ENABLE_IT(&(uart->handle), UART_IT_IDLE); __HAL_UART_ENABLE_IT(&(uart->handle), UART_IT_IDLE);
/* enable rx irq */ /* enable rx irq */
HAL_NVIC_SetPriority(uart->config->dma_irq, 0, 0); HAL_NVIC_SetPriority(uart->config->dma_rx->dma_irq, 0, 0);
HAL_NVIC_EnableIRQ(uart->config->dma_irq); HAL_NVIC_EnableIRQ(uart->config->dma_rx->dma_irq);
HAL_NVIC_SetPriority(uart->config->irq_type, 1, 0); HAL_NVIC_SetPriority(uart->config->irq_type, 1, 0);
HAL_NVIC_EnableIRQ(uart->config->irq_type); HAL_NVIC_EnableIRQ(uart->config->irq_type);
@ -547,31 +547,59 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
} }
#endif /* RT_SERIAL_USING_DMA */ #endif /* RT_SERIAL_USING_DMA */
static void stm32_uart_get_dma_config(void)
{
#ifdef BSP_UART1_RX_USING_DMA
uart_obj[UART1_INDEX].uart_dma_flag = 1;
static struct dma_config uart1_dma_rx = UART1_DMA_CONFIG;
uart_config[UART1_INDEX].dma_rx = &uart1_dma_rx;
#endif
#ifdef BSP_UART2_RX_USING_DMA
uart_obj[UART2_INDEX].uart_dma_flag = 1;
static struct dma_config uart2_dma_rx = UART2_DMA_CONFIG;
uart_config[UART2_INDEX].dma_rx = &uart2_dma_rx;
#endif
#ifdef BSP_UART3_RX_USING_DMA
uart_obj[UART3_INDEX].uart_dma_flag = 1;
static struct dma_config uart3_dma_rx = UART3_DMA_CONFIG;
uart_config[UART3_INDEX].dma_rx = &uart3_dma_rx;
#endif
#ifdef BSP_UART4_RX_USING_DMA
uart_obj[UART4_INDEX].uart_dma_flag = 1;
static struct dma_config uart4_dma_rx = UART4_DMA_CONFIG;
uart_config[UART4_INDEX].dma_rx = &uart4_dma_rx;
#endif
#ifdef BSP_UART5_RX_USING_DMA
uart_obj[UART5_INDEX].uart_dma_flag = 1;
static struct dma_config uart5_dma_rx = UART5_DMA_CONFIG;
uart_config[UART5_INDEX].dma_rx = &uart5_dma_rx;
#endif
}
int rt_hw_usart_init(void) int rt_hw_usart_init(void)
{ {
rt_size_t obj_num = sizeof(uart_obj) / sizeof(struct stm32_uart); rt_size_t obj_num = sizeof(uart_obj) / sizeof(struct stm32_uart);
struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT; struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT;
rt_err_t result = 0; rt_err_t result = 0;
stm32_uart_get_dma_config();
for (int i = 0; i < obj_num; i++) for (int i = 0; i < obj_num; i++)
{ {
uart_obj[i].config = &uart_config[i]; uart_obj[i].config = &uart_config[i];
uart_obj[i].serial.ops = &stm32_uart_ops; uart_obj[i].serial.ops = &stm32_uart_ops;
uart_obj[i].serial.config = config; uart_obj[i].serial.config = config;
/* Determines whether a serial instance supports DMA */ #if defined(RT_SERIAL_USING_DMA)
if(uart_obj[i].config->dma.Instance != DMA_NOT_AVAILABLE) if(uart_obj[i].uart_dma_flag)
{ {
/* register UART device */ /* register UART device */
result = rt_hw_serial_register(&uart_obj[i].serial,uart_obj[i].config->name, result = rt_hw_serial_register(&uart_obj[i].serial,uart_obj[i].config->name,
RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX| RT_DEVICE_FLAG_DMA_RX
#if defined(RT_SERIAL_USING_DMA)
| RT_DEVICE_FLAG_DMA_RX
#endif
,&uart_obj[i]); ,&uart_obj[i]);
} }
else else
#endif
{ {
/* register UART device */ /* register UART device */
result = rt_hw_serial_register(&uart_obj[i].serial,uart_obj[i].config->name, result = rt_hw_serial_register(&uart_obj[i].serial,uart_obj[i].config->name,

View File

@ -15,10 +15,10 @@
#include "rtdevice.h" #include "rtdevice.h"
#include <rthw.h> #include <rthw.h>
#include <drv_common.h> #include <drv_common.h>
#include "drv_dma.h"
int rt_hw_usart_init(void); int rt_hw_usart_init(void);
#if defined(SOC_SERIES_STM32F0) || defined(SOC_SERIES_STM32F1) || defined(SOC_SERIES_STM32L4) #if defined(SOC_SERIES_STM32F0) || defined(SOC_SERIES_STM32F1) || defined(SOC_SERIES_STM32L4)
#define DMA_INSTANCE_TYPE DMA_Channel_TypeDef #define DMA_INSTANCE_TYPE DMA_Channel_TypeDef
#elif defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7) #elif defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7)
@ -37,44 +37,14 @@ struct stm32_uart_config
const char *name; const char *name;
USART_TypeDef *Instance; USART_TypeDef *Instance;
IRQn_Type irq_type; IRQn_Type irq_type;
struct dma_config *dma_rx;
union {
DMA_INSTANCE_TYPE *Instance;
#if defined(SOC_SERIES_STM32F1)
/* the DMA config has channel only, such as on STM32F1xx */
struct {
DMA_INSTANCE_TYPE *Instance;
} channel;
#endif
#if defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7)
/* the DMA config has stream and channel, such as on STM32F4xx */
struct {
DMA_INSTANCE_TYPE *Instance;
rt_uint32_t channel;
} stream_channel;
#endif
#if defined(SOC_SERIES_STM32L4)
/* the DMA config has channel and request, such as on STM32L4xx */
struct {
DMA_INSTANCE_TYPE *Instance;
rt_uint32_t request;
} channel_request;
#endif
} dma;
rt_uint32_t dma_rcc;
IRQn_Type dma_irq;
}; };
/* stm32 uart dirver class */ /* stm32 uart dirver class */
struct stm32_uart struct stm32_uart
{ {
UART_HandleTypeDef handle; UART_HandleTypeDef handle;
const struct stm32_uart_config *config; struct stm32_uart_config *config;
#ifdef RT_SERIAL_USING_DMA #ifdef RT_SERIAL_USING_DMA
struct struct
@ -83,7 +53,7 @@ struct stm32_uart
rt_size_t last_index; rt_size_t last_index;
} dma; } dma;
#endif #endif
rt_uint8_t uart_dma_flag;
struct rt_serial_device serial; struct rt_serial_device serial;
}; };

View File

@ -281,6 +281,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_LITTLEVGL2RTT is not set # CONFIG_PKG_USING_LITTLEVGL2RTT is not set
# CONFIG_PKG_USING_CMSIS is not set # CONFIG_PKG_USING_CMSIS is not set
# CONFIG_PKG_USING_DFS_YAFFS is not set # CONFIG_PKG_USING_DFS_YAFFS is not set
# CONFIG_PKG_USING_LITTLEFS is not set
# #
# peripheral libraries and drivers # peripheral libraries and drivers
@ -295,6 +296,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_BUTTON is not set # CONFIG_PKG_USING_BUTTON is not set
# CONFIG_PKG_USING_MPU6XXX is not set # CONFIG_PKG_USING_MPU6XXX is not set
# CONFIG_PKG_USING_PCF8574 is not set # CONFIG_PKG_USING_PCF8574 is not set
# CONFIG_PKG_USING_KENDRYTE_SDK is not set
# #
# miscellaneous packages # miscellaneous packages
@ -309,10 +311,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_ZLIB is not set # CONFIG_PKG_USING_ZLIB is not set
# CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_DSTR is not set
# CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_TINYFRAME is not set
# CONFIG_PKG_USING_KENDRYTE_DEMO is not set
#
# sample package
#
# #
# samples: kernel and components samples # samples: kernel and components samples
@ -321,30 +320,8 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set # CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
# CONFIG_PKG_USING_NETWORK_SAMPLES is not set # CONFIG_PKG_USING_NETWORK_SAMPLES is not set
# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set # CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
#
# example package: hello
#
# CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_HELLO is not set
# CONFIG_PKG_USING_VI is not set
#
# Privated Packages of RealThread
#
# CONFIG_PKG_USING_CODEC is not set
# CONFIG_PKG_USING_PLAYER is not set
# CONFIG_PKG_USING_PERSIMMON_SRC is not set
#
# Network Utilities
#
# CONFIG_PKG_USING_WICED is not set
# CONFIG_PKG_USING_CLOUDSDK is not set
# CONFIG_PKG_USING_COREMARK is not set
# CONFIG_PKG_USING_POWER_MANAGER is not set
# CONFIG_PKG_USING_RT_OTA is not set
# CONFIG_PKG_USING_RDBD_SRC is not set
# CONFIG_PKG_USING_RTINSIGHT is not set
# CONFIG_PKG_USING_SMARTCONFIG is not set
CONFIG_SOC_FAMILY_STM32=y CONFIG_SOC_FAMILY_STM32=y
CONFIG_SOC_SERIES_STM32F0=y CONFIG_SOC_SERIES_STM32F0=y
@ -361,9 +338,10 @@ CONFIG_SOC_STM32F091RC=y
# On-chip Peripheral Drivers # On-chip Peripheral Drivers
# #
CONFIG_BSP_USING_GPIO=y CONFIG_BSP_USING_GPIO=y
CONFIG_BSP_USING_UART=y
CONFIG_BSP_USING_UART1=y CONFIG_BSP_USING_UART1=y
# CONFIG_BSP_USING_SPI1 is not set # CONFIG_BSP_UART1_RX_USING_DMA is not set
# CONFIG_BSP_SPI_USING_DMA is not set # CONFIG_BSP_USING_SPI is not set
# CONFIG_BSP_USING_I2C1 is not set # CONFIG_BSP_USING_I2C1 is not set
# #

View File

@ -16,20 +16,42 @@ menu "On-chip Peripheral Drivers"
select RT_USING_PIN select RT_USING_PIN
default y default y
menuconfig BSP_USING_UART
bool "Enable UART"
default y
select RT_USING_SERIAL
if BSP_USING_UART
config BSP_USING_UART1 config BSP_USING_UART1
bool "Enable UART1" bool "Enable UART1"
select RT_USING_SERIAL
default y default y
config BSP_UART1_RX_USING_DMA
bool "Enable UART1 RX DMA"
depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
default n
endif
menuconfig BSP_USING_SPI
bool "Enable SPI BUS"
default n
select RT_USING_SPI
if BSP_USING_SPI
config BSP_USING_SPI1 config BSP_USING_SPI1
bool "Enable SPI1 BUS" bool "Enable SPI1 BUS"
select RT_USING_SPI
default n default n
config BSP_SPI_USING_DMA config BSP_SPI1_TX_USING_DMA
bool "Enable SPI DMA support" bool "Enable SPI1 TX DMA"
depends on BSP_USING_SPI1
default n default n
config BSP_SPI1_RX_USING_DMA
bool "Enable SPI1 RX DMA"
depends on BSP_USING_SPI1
select BSP_SPI1_TX_USING_DMA
default n
endif
menuconfig BSP_USING_I2C1 menuconfig BSP_USING_I2C1
bool "Enable I2C1 BUS (software simulation)" bool "Enable I2C1 BUS (software simulation)"
default n default n

View File

@ -15,6 +15,10 @@
#include <stm32f0xx.h> #include <stm32f0xx.h>
#include "drv_common.h" #include "drv_common.h"
#ifdef __cplusplus
extern "C" {
#endif
#define STM32_FLASH_START_ADRESS ((uint32_t)0x08000000) #define STM32_FLASH_START_ADRESS ((uint32_t)0x08000000)
#define STM32_FLASH_SIZE (256 * 1024) #define STM32_FLASH_SIZE (256 * 1024)
#define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE)) #define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE))
@ -38,4 +42,8 @@ extern int __bss_end;
void SystemClock_Config(void); void SystemClock_Config(void);
#ifdef __cplusplus
}
#endif
#endif /* __BOARD_H__ */ #endif /* __BOARD_H__ */

View File

@ -149,19 +149,8 @@
/* miscellaneous packages */ /* miscellaneous packages */
/* sample package */
/* samples: kernel and components samples */ /* samples: kernel and components samples */
/* example package: hello */
/* Privated Packages of RealThread */
/* Network Utilities */
#define SOC_FAMILY_STM32 #define SOC_FAMILY_STM32
#define SOC_SERIES_STM32F0 #define SOC_SERIES_STM32F0
@ -174,6 +163,7 @@
/* On-chip Peripheral Drivers */ /* On-chip Peripheral Drivers */
#define BSP_USING_GPIO #define BSP_USING_GPIO
#define BSP_USING_UART
#define BSP_USING_UART1 #define BSP_USING_UART1
/* Board extended module Drivers */ /* Board extended module Drivers */

View File

@ -296,6 +296,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_BUTTON is not set # CONFIG_PKG_USING_BUTTON is not set
# CONFIG_PKG_USING_MPU6XXX is not set # CONFIG_PKG_USING_MPU6XXX is not set
# CONFIG_PKG_USING_PCF8574 is not set # CONFIG_PKG_USING_PCF8574 is not set
# CONFIG_PKG_USING_KENDRYTE_SDK is not set
# #
# miscellaneous packages # miscellaneous packages
@ -310,10 +311,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_ZLIB is not set # CONFIG_PKG_USING_ZLIB is not set
# CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_DSTR is not set
# CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_TINYFRAME is not set
# CONFIG_PKG_USING_KENDRYTE_DEMO is not set
#
# sample package
#
# #
# samples: kernel and components samples # samples: kernel and components samples
@ -322,11 +320,8 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set # CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
# CONFIG_PKG_USING_NETWORK_SAMPLES is not set # CONFIG_PKG_USING_NETWORK_SAMPLES is not set
# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set # CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
#
# example package: hello
#
# CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_HELLO is not set
# CONFIG_PKG_USING_VI is not set
CONFIG_SOC_FAMILY_STM32=y CONFIG_SOC_FAMILY_STM32=y
CONFIG_SOC_SERIES_STM32F1=y CONFIG_SOC_SERIES_STM32F1=y
@ -343,9 +338,10 @@ CONFIG_SOC_STM32F103RB=y
# On-chip Peripheral Drivers # On-chip Peripheral Drivers
# #
CONFIG_BSP_USING_GPIO=y CONFIG_BSP_USING_GPIO=y
CONFIG_BSP_USING_UART=y
CONFIG_BSP_USING_UART1=y CONFIG_BSP_USING_UART1=y
# CONFIG_BSP_USING_SPI1 is not set # CONFIG_BSP_UART1_RX_USING_DMA is not set
# CONFIG_BSP_SPI_USING_DMA is not set # CONFIG_BSP_USING_SPI is not set
# CONFIG_BSP_USING_I2C1 is not set # CONFIG_BSP_USING_I2C1 is not set
# #

View File

@ -16,20 +16,42 @@ menu "On-chip Peripheral Drivers"
select RT_USING_PIN select RT_USING_PIN
default y default y
menuconfig BSP_USING_UART
bool "Enable UART"
default y
select RT_USING_SERIAL
if BSP_USING_UART
config BSP_USING_UART1 config BSP_USING_UART1
bool "Enable UART1" bool "Enable UART1"
select RT_USING_SERIAL
default y default y
config BSP_UART1_RX_USING_DMA
bool "Enable UART1 RX DMA"
depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
default n
endif
menuconfig BSP_USING_SPI
bool "Enable SPI BUS"
default n
select RT_USING_SPI
if BSP_USING_SPI
config BSP_USING_SPI1 config BSP_USING_SPI1
bool "Enable SPI1 BUS" bool "Enable SPI1 BUS"
select RT_USING_SPI
default n default n
config BSP_SPI_USING_DMA config BSP_SPI1_TX_USING_DMA
bool "Enable SPI DMA support" bool "Enable SPI1 TX DMA"
depends on BSP_USING_SPI1
default n default n
config BSP_SPI1_RX_USING_DMA
bool "Enable SPI1 RX DMA"
depends on BSP_USING_SPI1
select BSP_SPI1_TX_USING_DMA
default n
endif
menuconfig BSP_USING_I2C1 menuconfig BSP_USING_I2C1
bool "Enable I2C1 BUS (software simulation)" bool "Enable I2C1 BUS (software simulation)"
default n default n

View File

@ -15,6 +15,10 @@
#include <stm32f1xx.h> #include <stm32f1xx.h>
#include "drv_common.h" #include "drv_common.h"
#ifdef __cplusplus
extern "C" {
#endif
#define STM32_FLASH_START_ADRESS ((uint32_t)0x08000000) #define STM32_FLASH_START_ADRESS ((uint32_t)0x08000000)
#define STM32_FLASH_SIZE (128 * 1024) #define STM32_FLASH_SIZE (128 * 1024)
#define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE)) #define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE))
@ -38,4 +42,8 @@ extern int __bss_end;
void SystemClock_Config(void); void SystemClock_Config(void);
#ifdef __cplusplus
}
#endif
#endif /* __BOARD_H__ */ #endif /* __BOARD_H__ */

View File

@ -149,13 +149,8 @@
/* miscellaneous packages */ /* miscellaneous packages */
/* sample package */
/* samples: kernel and components samples */ /* samples: kernel and components samples */
/* example package: hello */
#define SOC_FAMILY_STM32 #define SOC_FAMILY_STM32
#define SOC_SERIES_STM32F1 #define SOC_SERIES_STM32F1
@ -168,6 +163,7 @@
/* On-chip Peripheral Drivers */ /* On-chip Peripheral Drivers */
#define BSP_USING_GPIO #define BSP_USING_GPIO
#define BSP_USING_UART
#define BSP_USING_UART1 #define BSP_USING_UART1
/* Board extended module Drivers */ /* Board extended module Drivers */

View File

@ -297,6 +297,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_BUTTON is not set # CONFIG_PKG_USING_BUTTON is not set
# CONFIG_PKG_USING_MPU6XXX is not set # CONFIG_PKG_USING_MPU6XXX is not set
# CONFIG_PKG_USING_PCF8574 is not set # CONFIG_PKG_USING_PCF8574 is not set
# CONFIG_PKG_USING_KENDRYTE_SDK is not set
# #
# miscellaneous packages # miscellaneous packages
@ -311,10 +312,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_ZLIB is not set # CONFIG_PKG_USING_ZLIB is not set
# CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_DSTR is not set
# CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_TINYFRAME is not set
# CONFIG_PKG_USING_KENDRYTE_DEMO is not set
#
# sample package
#
# #
# samples: kernel and components samples # samples: kernel and components samples
@ -323,11 +321,8 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set # CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
# CONFIG_PKG_USING_NETWORK_SAMPLES is not set # CONFIG_PKG_USING_NETWORK_SAMPLES is not set
# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set # CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
#
# example package: hello
#
# CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_HELLO is not set
# CONFIG_PKG_USING_VI is not set
CONFIG_SOC_FAMILY_STM32=y CONFIG_SOC_FAMILY_STM32=y
CONFIG_SOC_SERIES_STM32F4=y CONFIG_SOC_SERIES_STM32F4=y
@ -344,9 +339,10 @@ CONFIG_SOC_STM32F407ZG=y
# On-chip Peripheral Drivers # On-chip Peripheral Drivers
# #
CONFIG_BSP_USING_GPIO=y CONFIG_BSP_USING_GPIO=y
CONFIG_BSP_USING_UART=y
CONFIG_BSP_USING_UART1=y CONFIG_BSP_USING_UART1=y
# CONFIG_BSP_USING_SPI1 is not set # CONFIG_BSP_UART1_RX_USING_DMA is not set
# CONFIG_BSP_SPI_USING_DMA is not set # CONFIG_BSP_USING_SPI is not set
# CONFIG_BSP_USING_I2C1 is not set # CONFIG_BSP_USING_I2C1 is not set
# #

View File

@ -16,20 +16,42 @@ menu "On-chip Peripheral Drivers"
select RT_USING_PIN select RT_USING_PIN
default y default y
menuconfig BSP_USING_UART
bool "Enable UART"
default y
select RT_USING_SERIAL
if BSP_USING_UART
config BSP_USING_UART1 config BSP_USING_UART1
bool "Enable UART1" bool "Enable UART1"
select RT_USING_SERIAL
default y default y
config BSP_UART1_RX_USING_DMA
bool "Enable UART1 RX DMA"
depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
default n
endif
menuconfig BSP_USING_SPI
bool "Enable SPI BUS"
default n
select RT_USING_SPI
if BSP_USING_SPI
config BSP_USING_SPI1 config BSP_USING_SPI1
bool "Enable SPI1 BUS" bool "Enable SPI1 BUS"
select RT_USING_SPI
default n default n
config BSP_SPI_USING_DMA config BSP_SPI1_TX_USING_DMA
bool "Enable SPI DMA support" bool "Enable SPI1 TX DMA"
depends on BSP_USING_SPI1
default n default n
config BSP_SPI1_RX_USING_DMA
bool "Enable SPI1 RX DMA"
depends on BSP_USING_SPI1
select BSP_SPI1_TX_USING_DMA
default n
endif
menuconfig BSP_USING_I2C1 menuconfig BSP_USING_I2C1
bool "Enable I2C1 BUS (software simulation)" bool "Enable I2C1 BUS (software simulation)"
default n default n

View File

@ -15,6 +15,10 @@
#include <stm32f4xx.h> #include <stm32f4xx.h>
#include "drv_common.h" #include "drv_common.h"
#ifdef __cplusplus
extern "C" {
#endif
#define STM32_FLASH_START_ADRESS ((uint32_t)0x08000000) #define STM32_FLASH_START_ADRESS ((uint32_t)0x08000000)
#define STM32_FLASH_SIZE (1024 * 1024) #define STM32_FLASH_SIZE (1024 * 1024)
#define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE)) #define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE))
@ -37,5 +41,9 @@ extern int __bss_end;
void SystemClock_Config(void); void SystemClock_Config(void);
#ifdef __cplusplus
}
#endif
#endif #endif

View File

@ -149,13 +149,8 @@
/* miscellaneous packages */ /* miscellaneous packages */
/* sample package */
/* samples: kernel and components samples */ /* samples: kernel and components samples */
/* example package: hello */
#define SOC_FAMILY_STM32 #define SOC_FAMILY_STM32
#define SOC_SERIES_STM32F4 #define SOC_SERIES_STM32F4
@ -168,6 +163,7 @@
/* On-chip Peripheral Drivers */ /* On-chip Peripheral Drivers */
#define BSP_USING_GPIO #define BSP_USING_GPIO
#define BSP_USING_UART
#define BSP_USING_UART1 #define BSP_USING_UART1
/* Board extended module Drivers */ /* Board extended module Drivers */

View File

@ -297,6 +297,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_BUTTON is not set # CONFIG_PKG_USING_BUTTON is not set
# CONFIG_PKG_USING_MPU6XXX is not set # CONFIG_PKG_USING_MPU6XXX is not set
# CONFIG_PKG_USING_PCF8574 is not set # CONFIG_PKG_USING_PCF8574 is not set
# CONFIG_PKG_USING_KENDRYTE_SDK is not set
# #
# miscellaneous packages # miscellaneous packages
@ -311,10 +312,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_ZLIB is not set # CONFIG_PKG_USING_ZLIB is not set
# CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_DSTR is not set
# CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_TINYFRAME is not set
# CONFIG_PKG_USING_KENDRYTE_DEMO is not set
#
# sample package
#
# #
# samples: kernel and components samples # samples: kernel and components samples
@ -323,11 +321,8 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set # CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
# CONFIG_PKG_USING_NETWORK_SAMPLES is not set # CONFIG_PKG_USING_NETWORK_SAMPLES is not set
# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set # CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
#
# example package: hello
#
# CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_HELLO is not set
# CONFIG_PKG_USING_VI is not set
CONFIG_SOC_FAMILY_STM32=y CONFIG_SOC_FAMILY_STM32=y
CONFIG_SOC_SERIES_STM32F7=y CONFIG_SOC_SERIES_STM32F7=y
@ -344,9 +339,10 @@ CONFIG_SOC_STM32F767IG=y
# On-chip Peripheral Drivers # On-chip Peripheral Drivers
# #
CONFIG_BSP_USING_GPIO=y CONFIG_BSP_USING_GPIO=y
CONFIG_BSP_USING_UART=y
CONFIG_BSP_USING_UART1=y CONFIG_BSP_USING_UART1=y
# CONFIG_BSP_USING_SPI1 is not set # CONFIG_BSP_UART1_RX_USING_DMA is not set
# CONFIG_BSP_SPI_USING_DMA is not set # CONFIG_BSP_USING_SPI is not set
# CONFIG_BSP_USING_I2C1 is not set # CONFIG_BSP_USING_I2C1 is not set
# #

View File

@ -38,7 +38,7 @@ objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
SDK_ROOT = os.path.abspath('./') SDK_ROOT = os.path.abspath('./')
# include drivers # include drivers
objs.extend(SConscript(os.path.dirname(SDK_ROOT) + '/libraries/STM32F4xx_HAL/SConscript')) objs.extend(SConscript(os.path.dirname(SDK_ROOT) + '/libraries/STM32F7xx_HAL/SConscript'))
# include libraries # include libraries
objs.extend(SConscript(os.path.dirname(SDK_ROOT) + '/libraries/HAL_Drivers/SConscript')) objs.extend(SConscript(os.path.dirname(SDK_ROOT) + '/libraries/HAL_Drivers/SConscript'))

View File

@ -16,20 +16,42 @@ menu "On-chip Peripheral Drivers"
select RT_USING_PIN select RT_USING_PIN
default y default y
menuconfig BSP_USING_UART
bool "Enable UART"
default y
select RT_USING_SERIAL
if BSP_USING_UART
config BSP_USING_UART1 config BSP_USING_UART1
bool "Enable UART1" bool "Enable UART1"
select RT_USING_SERIAL
default y default y
config BSP_UART1_RX_USING_DMA
bool "Enable UART1 RX DMA"
depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
default n
endif
menuconfig BSP_USING_SPI
bool "Enable SPI BUS"
default n
select RT_USING_SPI
if BSP_USING_SPI
config BSP_USING_SPI1 config BSP_USING_SPI1
bool "Enable SPI1 BUS" bool "Enable SPI1 BUS"
select RT_USING_SPI
default n default n
config BSP_SPI_USING_DMA config BSP_SPI1_TX_USING_DMA
bool "Enable SPI DMA support" bool "Enable SPI1 TX DMA"
depends on BSP_USING_SPI1
default n default n
config BSP_SPI1_RX_USING_DMA
bool "Enable SPI1 RX DMA"
depends on BSP_USING_SPI1
select BSP_SPI1_TX_USING_DMA
default n
endif
menuconfig BSP_USING_I2C1 menuconfig BSP_USING_I2C1
bool "Enable I2C1 BUS (software simulation)" bool "Enable I2C1 BUS (software simulation)"
default n default n

View File

@ -15,6 +15,10 @@
#include <stm32f7xx.h> #include <stm32f7xx.h>
#include "drv_common.h" #include "drv_common.h"
#ifdef __cplusplus
extern "C" {
#endif
#define STM32_FLASH_START_ADRESS ((uint32_t)0x08000000) #define STM32_FLASH_START_ADRESS ((uint32_t)0x08000000)
#define STM32_FLASH_SIZE (1024 * 1024) #define STM32_FLASH_SIZE (1024 * 1024)
#define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE)) #define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE))
@ -37,4 +41,8 @@ extern int __bss_end;
void SystemClock_Config(void); void SystemClock_Config(void);
#ifdef __cplusplus
}
#endif
#endif #endif

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd"> <Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
<SchemaVersion>2.1</SchemaVersion> <SchemaVersion>2.1</SchemaVersion>
<Header>### uVision Project, (C) Keil Software</Header> <Header>### uVision Project, (C) Keil Software</Header>
<Targets> <Targets>
<Target> <Target>
<TargetName>rt-thread</TargetName> <TargetName>rt-thread</TargetName>
@ -11,33 +14,33 @@
<uAC6>0</uAC6> <uAC6>0</uAC6>
<TargetOption> <TargetOption>
<TargetCommonOption> <TargetCommonOption>
<Device>STM32F407ZGTx</Device> <Device>STM32F767BGTx</Device>
<Vendor>STMicroelectronics</Vendor> <Vendor>STMicroelectronics</Vendor>
<PackID>Keil.STM32F4xx_DFP.2.11.0</PackID> <PackID>Keil.STM32F7xx_DFP.2.9.0</PackID>
<PackURL>http://www.keil.com/pack</PackURL> <PackURL>http://www.keil.com/pack</PackURL>
<Cpu>IRAM(0x20000000,0x20000) IRAM2(0x10000000,0x10000) IROM(0x08000000,0x100000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE</Cpu> <Cpu>IRAM(0x20020000,0x60000) IRAM2(0x20000000,0x20000) IROM(0x08000000,0x100000) IROM2(0x00200000,0x100000) CPUTYPE("Cortex-M7") FPU3(DFPU) CLOCK(12000000) ELITTLE</Cpu>
<FlashUtilSpec /> <FlashUtilSpec></FlashUtilSpec>
<StartupFile /> <StartupFile></StartupFile>
<FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM))</FlashDriverDll> <FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20020000 -FC1000 -FN1 -FF0STM32F7x_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F767BGTx$CMSIS\Flash\STM32F7x_1024.FLM))</FlashDriverDll>
<DeviceId>0</DeviceId> <DeviceId>0</DeviceId>
<RegisterFile>$$Device:STM32F407ZGTx$Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h</RegisterFile> <RegisterFile>$$Device:STM32F767BGTx$Drivers\CMSIS\Device\ST\STM32F7xx\Include\stm32f7xx.h</RegisterFile>
<MemoryEnv /> <MemoryEnv></MemoryEnv>
<Cmp /> <Cmp></Cmp>
<Asm /> <Asm></Asm>
<Linker /> <Linker></Linker>
<OHString /> <OHString></OHString>
<InfinionOptionDll /> <InfinionOptionDll></InfinionOptionDll>
<SLE66CMisc /> <SLE66CMisc></SLE66CMisc>
<SLE66AMisc /> <SLE66AMisc></SLE66AMisc>
<SLE66LinkerMisc /> <SLE66LinkerMisc></SLE66LinkerMisc>
<SFDFile>$$Device:STM32F407ZGTx$CMSIS\SVD\STM32F40x.svd</SFDFile> <SFDFile>$$Device:STM32F767BGTx$CMSIS\SVD\STM32F7x7_v1r2.svd</SFDFile>
<bCustSvd>0</bCustSvd> <bCustSvd>0</bCustSvd>
<UseEnv>0</UseEnv> <UseEnv>0</UseEnv>
<BinPath /> <BinPath></BinPath>
<IncludePath /> <IncludePath></IncludePath>
<LibPath /> <LibPath></LibPath>
<RegisterFilePath /> <RegisterFilePath></RegisterFilePath>
<DBRegisterFilePath /> <DBRegisterFilePath></DBRegisterFilePath>
<TargetStatus> <TargetStatus>
<Error>0</Error> <Error>0</Error>
<ExitCodeStop>0</ExitCodeStop> <ExitCodeStop>0</ExitCodeStop>
@ -59,8 +62,8 @@
<BeforeCompile> <BeforeCompile>
<RunUserProg1>0</RunUserProg1> <RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2> <RunUserProg2>0</RunUserProg2>
<UserProg1Name /> <UserProg1Name></UserProg1Name>
<UserProg2Name /> <UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode> <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode> <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopU1X>0</nStopU1X> <nStopU1X>0</nStopU1X>
@ -69,8 +72,8 @@
<BeforeMake> <BeforeMake>
<RunUserProg1>0</RunUserProg1> <RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2> <RunUserProg2>0</RunUserProg2>
<UserProg1Name /> <UserProg1Name></UserProg1Name>
<UserProg2Name /> <UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode> <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode> <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopB1X>0</nStopB1X> <nStopB1X>0</nStopB1X>
@ -80,14 +83,14 @@
<RunUserProg1>1</RunUserProg1> <RunUserProg1>1</RunUserProg1>
<RunUserProg2>0</RunUserProg2> <RunUserProg2>0</RunUserProg2>
<UserProg1Name>fromelf --bin !L --output rtthread.bin</UserProg1Name> <UserProg1Name>fromelf --bin !L --output rtthread.bin</UserProg1Name>
<UserProg2Name /> <UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode> <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode> <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopA1X>0</nStopA1X> <nStopA1X>0</nStopA1X>
<nStopA2X>0</nStopA2X> <nStopA2X>0</nStopA2X>
</AfterMake> </AfterMake>
<SelectedForBatchBuild>0</SelectedForBatchBuild> <SelectedForBatchBuild>0</SelectedForBatchBuild>
<SVCSIdString /> <SVCSIdString></SVCSIdString>
</TargetCommonOption> </TargetCommonOption>
<CommonProperty> <CommonProperty>
<UseCPPCompiler>0</UseCPPCompiler> <UseCPPCompiler>0</UseCPPCompiler>
@ -101,19 +104,19 @@
<AssembleAssemblyFile>0</AssembleAssemblyFile> <AssembleAssemblyFile>0</AssembleAssemblyFile>
<PublicsOnly>0</PublicsOnly> <PublicsOnly>0</PublicsOnly>
<StopOnExitCode>3</StopOnExitCode> <StopOnExitCode>3</StopOnExitCode>
<CustomArgument /> <CustomArgument></CustomArgument>
<IncludeLibraryModules /> <IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg> <ComprImg>1</ComprImg>
</CommonProperty> </CommonProperty>
<DllOption> <DllOption>
<SimDllName>SARMCM3.DLL</SimDllName> <SimDllName>SARMCM3.DLL</SimDllName>
<SimDllArguments> -REMAP -MPU</SimDllArguments> <SimDllArguments> -REMAP -MPU</SimDllArguments>
<SimDlgDll>DCM.DLL</SimDlgDll> <SimDlgDll>DCM.DLL</SimDlgDll>
<SimDlgDllArguments>-pCM4</SimDlgDllArguments> <SimDlgDllArguments>-pCM7</SimDlgDllArguments>
<TargetDllName>SARMCM3.DLL</TargetDllName> <TargetDllName>SARMCM3.DLL</TargetDllName>
<TargetDllArguments> -MPU</TargetDllArguments> <TargetDllArguments> -MPU</TargetDllArguments>
<TargetDlgDll>TCM.DLL</TargetDlgDll> <TargetDlgDll>TCM.DLL</TargetDlgDll>
<TargetDlgDllArguments>-pCM4</TargetDlgDllArguments> <TargetDlgDllArguments>-pCM7</TargetDlgDllArguments>
</DllOption> </DllOption>
<DebugOption> <DebugOption>
<OPTHX> <OPTHX>
@ -135,11 +138,11 @@
</Flash1> </Flash1>
<bUseTDR>1</bUseTDR> <bUseTDR>1</bUseTDR>
<Flash2>BIN\UL2CM3.DLL</Flash2> <Flash2>BIN\UL2CM3.DLL</Flash2>
<Flash3>"" ()</Flash3> <Flash3></Flash3>
<Flash4 /> <Flash4></Flash4>
<pFcarmOut /> <pFcarmOut></pFcarmOut>
<pFcarmGrp /> <pFcarmGrp></pFcarmGrp>
<pFcArmRoot /> <pFcArmRoot></pFcArmRoot>
<FcArmLst>0</FcArmLst> <FcArmLst>0</FcArmLst>
</Utilities> </Utilities>
<TargetArmAds> <TargetArmAds>
@ -171,8 +174,8 @@
<AdsLsxf>1</AdsLsxf> <AdsLsxf>1</AdsLsxf>
<RvctClst>0</RvctClst> <RvctClst>0</RvctClst>
<GenPPlst>0</GenPPlst> <GenPPlst>0</GenPPlst>
<AdsCpuType>"Cortex-M4"</AdsCpuType> <AdsCpuType>"Cortex-M7"</AdsCpuType>
<RvctDeviceName /> <RvctDeviceName></RvctDeviceName>
<mOS>0</mOS> <mOS>0</mOS>
<uocRom>0</uocRom> <uocRom>0</uocRom>
<uocRam>0</uocRam> <uocRam>0</uocRam>
@ -180,15 +183,16 @@
<hadIRAM>1</hadIRAM> <hadIRAM>1</hadIRAM>
<hadXRAM>0</hadXRAM> <hadXRAM>0</hadXRAM>
<uocXRam>0</uocXRam> <uocXRam>0</uocXRam>
<RvdsVP>2</RvdsVP> <RvdsVP>3</RvdsVP>
<RvdsMve>0</RvdsMve>
<hadIRAM2>1</hadIRAM2> <hadIRAM2>1</hadIRAM2>
<hadIROM2>0</hadIROM2> <hadIROM2>1</hadIROM2>
<StupSel>8</StupSel> <StupSel>8</StupSel>
<useUlib>0</useUlib> <useUlib>0</useUlib>
<EndSel>0</EndSel> <EndSel>0</EndSel>
<uLtcg>0</uLtcg> <uLtcg>0</uLtcg>
<nSecure>0</nSecure> <nSecure>0</nSecure>
<RoSelD>3</RoSelD> <RoSelD>4</RoSelD>
<RwSelD>4</RwSelD> <RwSelD>4</RwSelD>
<CodeSel>0</CodeSel> <CodeSel>0</CodeSel>
<OptFeed>0</OptFeed> <OptFeed>0</OptFeed>
@ -205,7 +209,7 @@
<Ra1Chk>0</Ra1Chk> <Ra1Chk>0</Ra1Chk>
<Ra2Chk>0</Ra2Chk> <Ra2Chk>0</Ra2Chk>
<Ra3Chk>0</Ra3Chk> <Ra3Chk>0</Ra3Chk>
<Im1Chk>0</Im1Chk> <Im1Chk>1</Im1Chk>
<Im2Chk>1</Im2Chk> <Im2Chk>1</Im2Chk>
<OnChipMemories> <OnChipMemories>
<Ocm1> <Ocm1>
@ -240,8 +244,8 @@
</Ocm6> </Ocm6>
<IRAM> <IRAM>
<Type>0</Type> <Type>0</Type>
<StartAddress>0x20000000</StartAddress> <StartAddress>0x20020000</StartAddress>
<Size>0x20000</Size> <Size>0x60000</Size>
</IRAM> </IRAM>
<IROM> <IROM>
<Type>1</Type> <Type>1</Type>
@ -275,8 +279,8 @@
</OCR_RVCT4> </OCR_RVCT4>
<OCR_RVCT5> <OCR_RVCT5>
<Type>1</Type> <Type>1</Type>
<StartAddress>0x0</StartAddress> <StartAddress>0x200000</StartAddress>
<Size>0x0</Size> <Size>0x100000</Size>
</OCR_RVCT5> </OCR_RVCT5>
<OCR_RVCT6> <OCR_RVCT6>
<Type>0</Type> <Type>0</Type>
@ -295,16 +299,16 @@
</OCR_RVCT8> </OCR_RVCT8>
<OCR_RVCT9> <OCR_RVCT9>
<Type>0</Type> <Type>0</Type>
<StartAddress>0x20000000</StartAddress> <StartAddress>0x20020000</StartAddress>
<Size>0x20000</Size> <Size>0x60000</Size>
</OCR_RVCT9> </OCR_RVCT9>
<OCR_RVCT10> <OCR_RVCT10>
<Type>0</Type> <Type>0</Type>
<StartAddress>0x10000000</StartAddress> <StartAddress>0x20000000</StartAddress>
<Size>0x10000</Size> <Size>0x20000</Size>
</OCR_RVCT10> </OCR_RVCT10>
</OnChipMemories> </OnChipMemories>
<RvctStartVector /> <RvctStartVector></RvctStartVector>
</ArmAdsMisc> </ArmAdsMisc>
<Cads> <Cads>
<interw>1</interw> <interw>1</interw>
@ -331,9 +335,9 @@
<v6WtE>0</v6WtE> <v6WtE>0</v6WtE>
<v6Rtti>0</v6Rtti> <v6Rtti>0</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls /> <MiscControls></MiscControls>
<Define>USE_HAL_DRIVER, STM32F407xx</Define> <Define>USE_HAL_DRIVER, STM32F407xx</Define>
<Undefine /> <Undefine></Undefine>
<IncludePath>applications;.;board;board\CubeMX_Config\Inc;..\libraries\HAL_Drivers;..\libraries\HAL_Drivers\config;..\..\..\include;..\..\..\libcpu\arm\cortex-m4;..\..\..\libcpu\arm\common;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\finsh;..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Inc;..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Include;..\libraries\STM32F4xx_HAL\CMSIS\Include</IncludePath> <IncludePath>applications;.;board;board\CubeMX_Config\Inc;..\libraries\HAL_Drivers;..\libraries\HAL_Drivers\config;..\..\..\include;..\..\..\libcpu\arm\cortex-m4;..\..\..\libcpu\arm\common;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\finsh;..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Inc;..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Include;..\libraries\STM32F4xx_HAL\CMSIS\Include</IncludePath>
</VariousControls> </VariousControls>
</Cads> </Cads>
@ -349,10 +353,10 @@
<useXO>0</useXO> <useXO>0</useXO>
<uClangAs>0</uClangAs> <uClangAs>0</uClangAs>
<VariousControls> <VariousControls>
<MiscControls /> <MiscControls></MiscControls>
<Define /> <Define></Define>
<Undefine /> <Undefine></Undefine>
<IncludePath /> <IncludePath></IncludePath>
</VariousControls> </VariousControls>
</Aads> </Aads>
<LDads> <LDads>
@ -364,13 +368,13 @@
<useFile>0</useFile> <useFile>0</useFile>
<TextAddressRange>0x08000000</TextAddressRange> <TextAddressRange>0x08000000</TextAddressRange>
<DataAddressRange>0x20000000</DataAddressRange> <DataAddressRange>0x20000000</DataAddressRange>
<pXoBase /> <pXoBase></pXoBase>
<ScatterFile>.\board\linker_scripts\link.sct</ScatterFile> <ScatterFile>.\board\linker_scripts\link.sct</ScatterFile>
<IncludeLibs /> <IncludeLibs></IncludeLibs>
<IncludeLibsPath /> <IncludeLibsPath></IncludeLibsPath>
<Misc> --keep *.o(.rti_fn.*) --keep *.o(FSymTab)</Misc> <Misc> --keep *.o(.rti_fn.*) --keep *.o(FSymTab)</Misc>
<LinkerInputFile /> <LinkerInputFile></LinkerInputFile>
<DisabledWarnings /> <DisabledWarnings></DisabledWarnings>
</LDads> </LDads>
</TargetArmAds> </TargetArmAds>
</TargetOption> </TargetOption>
@ -393,36 +397,26 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>board\board.c</FilePath> <FilePath>board\board.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_msp.c</FileName> <FileName>stm32f4xx_hal_msp.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>board\CubeMX_Config\Src\stm32f4xx_hal_msp.c</FilePath> <FilePath>board\CubeMX_Config\Src\stm32f4xx_hal_msp.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>startup_stm32f407xx.s</FileName> <FileName>startup_stm32f407xx.s</FileName>
<FileType>2</FileType> <FileType>2</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f407xx.s</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f407xx.s</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>drv_gpio.c</FileName> <FileName>drv_gpio.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\HAL_Drivers\drv_gpio.c</FilePath> <FilePath>..\libraries\HAL_Drivers\drv_gpio.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>drv_usart.c</FileName> <FileName>drv_usart.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\HAL_Drivers\drv_usart.c</FilePath> <FilePath>..\libraries\HAL_Drivers\drv_usart.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>drv_common.c</FileName> <FileName>drv_common.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
@ -438,92 +432,66 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\src\clock.c</FilePath> <FilePath>..\..\..\src\clock.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>components.c</FileName> <FileName>components.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\src\components.c</FilePath> <FilePath>..\..\..\src\components.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>device.c</FileName> <FileName>device.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\src\device.c</FilePath> <FilePath>..\..\..\src\device.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>idle.c</FileName> <FileName>idle.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\src\idle.c</FilePath> <FilePath>..\..\..\src\idle.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>ipc.c</FileName> <FileName>ipc.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\src\ipc.c</FilePath> <FilePath>..\..\..\src\ipc.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>irq.c</FileName> <FileName>irq.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\src\irq.c</FilePath> <FilePath>..\..\..\src\irq.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>kservice.c</FileName> <FileName>kservice.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\src\kservice.c</FilePath> <FilePath>..\..\..\src\kservice.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>mem.c</FileName> <FileName>mem.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\src\mem.c</FilePath> <FilePath>..\..\..\src\mem.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>mempool.c</FileName> <FileName>mempool.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\src\mempool.c</FilePath> <FilePath>..\..\..\src\mempool.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>object.c</FileName> <FileName>object.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\src\object.c</FilePath> <FilePath>..\..\..\src\object.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>scheduler.c</FileName> <FileName>scheduler.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\src\scheduler.c</FilePath> <FilePath>..\..\..\src\scheduler.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>signal.c</FileName> <FileName>signal.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\src\signal.c</FilePath> <FilePath>..\..\..\src\signal.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>thread.c</FileName> <FileName>thread.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\src\thread.c</FilePath> <FilePath>..\..\..\src\thread.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>timer.c</FileName> <FileName>timer.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
@ -539,29 +507,21 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\libcpu\arm\cortex-m4\cpuport.c</FilePath> <FilePath>..\..\..\libcpu\arm\cortex-m4\cpuport.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>context_rvds.S</FileName> <FileName>context_rvds.S</FileName>
<FileType>2</FileType> <FileType>2</FileType>
<FilePath>..\..\..\libcpu\arm\cortex-m4\context_rvds.S</FilePath> <FilePath>..\..\..\libcpu\arm\cortex-m4\context_rvds.S</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>backtrace.c</FileName> <FileName>backtrace.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\libcpu\arm\common\backtrace.c</FilePath> <FilePath>..\..\..\libcpu\arm\common\backtrace.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>div0.c</FileName> <FileName>div0.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\libcpu\arm\common\div0.c</FilePath> <FilePath>..\..\..\libcpu\arm\common\div0.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>showmem.c</FileName> <FileName>showmem.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
@ -577,57 +537,41 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\components\drivers\misc\pin.c</FilePath> <FilePath>..\..\..\components\drivers\misc\pin.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>serial.c</FileName> <FileName>serial.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\components\drivers\serial\serial.c</FilePath> <FilePath>..\..\..\components\drivers\serial\serial.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>completion.c</FileName> <FileName>completion.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\components\drivers\src\completion.c</FilePath> <FilePath>..\..\..\components\drivers\src\completion.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>dataqueue.c</FileName> <FileName>dataqueue.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\components\drivers\src\dataqueue.c</FilePath> <FilePath>..\..\..\components\drivers\src\dataqueue.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>pipe.c</FileName> <FileName>pipe.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\components\drivers\src\pipe.c</FilePath> <FilePath>..\..\..\components\drivers\src\pipe.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>ringblk_buf.c</FileName> <FileName>ringblk_buf.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\components\drivers\src\ringblk_buf.c</FilePath> <FilePath>..\..\..\components\drivers\src\ringblk_buf.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>ringbuffer.c</FileName> <FileName>ringbuffer.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\components\drivers\src\ringbuffer.c</FilePath> <FilePath>..\..\..\components\drivers\src\ringbuffer.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>waitqueue.c</FileName> <FileName>waitqueue.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\components\drivers\src\waitqueue.c</FilePath> <FilePath>..\..\..\components\drivers\src\waitqueue.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>workqueue.c</FileName> <FileName>workqueue.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
@ -643,36 +587,26 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\components\finsh\shell.c</FilePath> <FilePath>..\..\..\components\finsh\shell.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>symbol.c</FileName> <FileName>symbol.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\components\finsh\symbol.c</FilePath> <FilePath>..\..\..\components\finsh\symbol.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>cmd.c</FileName> <FileName>cmd.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\components\finsh\cmd.c</FilePath> <FilePath>..\..\..\components\finsh\cmd.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>msh.c</FileName> <FileName>msh.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\components\finsh\msh.c</FilePath> <FilePath>..\..\..\components\finsh\msh.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>msh_cmd.c</FileName> <FileName>msh_cmd.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\components\finsh\msh_cmd.c</FilePath> <FilePath>..\..\..\components\finsh\msh_cmd.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>msh_file.c</FileName> <FileName>msh_file.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
@ -688,470 +622,336 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal.c</FileName> <FileName>stm32f4xx_hal.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_adc.c</FileName> <FileName>stm32f4xx_hal_adc.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_adc.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_adc.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_adc_ex.c</FileName> <FileName>stm32f4xx_hal_adc_ex.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_adc_ex.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_adc_ex.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_can.c</FileName> <FileName>stm32f4xx_hal_can.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_can.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_can.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_cec.c</FileName> <FileName>stm32f4xx_hal_cec.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cec.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cec.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_cortex.c</FileName> <FileName>stm32f4xx_hal_cortex.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_crc.c</FileName> <FileName>stm32f4xx_hal_crc.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_crc.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_crc.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_cryp.c</FileName> <FileName>stm32f4xx_hal_cryp.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_cryp_ex.c</FileName> <FileName>stm32f4xx_hal_cryp_ex.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp_ex.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp_ex.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_dac.c</FileName> <FileName>stm32f4xx_hal_dac.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dac.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dac.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_dac_ex.c</FileName> <FileName>stm32f4xx_hal_dac_ex.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dac_ex.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dac_ex.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_dcmi.c</FileName> <FileName>stm32f4xx_hal_dcmi.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dcmi.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dcmi.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_dcmi_ex.c</FileName> <FileName>stm32f4xx_hal_dcmi_ex.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dcmi_ex.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dcmi_ex.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_dfsdm.c</FileName> <FileName>stm32f4xx_hal_dfsdm.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dfsdm.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dfsdm.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_dma.c</FileName> <FileName>stm32f4xx_hal_dma.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_dma2d.c</FileName> <FileName>stm32f4xx_hal_dma2d.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma2d.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma2d.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_dma_ex.c</FileName> <FileName>stm32f4xx_hal_dma_ex.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_dsi.c</FileName> <FileName>stm32f4xx_hal_dsi.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dsi.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dsi.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_eth.c</FileName> <FileName>stm32f4xx_hal_eth.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_eth.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_eth.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_flash.c</FileName> <FileName>stm32f4xx_hal_flash.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_flash_ex.c</FileName> <FileName>stm32f4xx_hal_flash_ex.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_flash_ramfunc.c</FileName> <FileName>stm32f4xx_hal_flash_ramfunc.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_fmpi2c.c</FileName> <FileName>stm32f4xx_hal_fmpi2c.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_fmpi2c.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_fmpi2c.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_fmpi2c_ex.c</FileName> <FileName>stm32f4xx_hal_fmpi2c_ex.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_fmpi2c_ex.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_fmpi2c_ex.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_gpio.c</FileName> <FileName>stm32f4xx_hal_gpio.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_hash.c</FileName> <FileName>stm32f4xx_hal_hash.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_hash.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_hash.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_hash_ex.c</FileName> <FileName>stm32f4xx_hal_hash_ex.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_hash_ex.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_hash_ex.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_hcd.c</FileName> <FileName>stm32f4xx_hal_hcd.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_hcd.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_hcd.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_i2c.c</FileName> <FileName>stm32f4xx_hal_i2c.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2c.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2c.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_i2c_ex.c</FileName> <FileName>stm32f4xx_hal_i2c_ex.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2c_ex.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2c_ex.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_i2s.c</FileName> <FileName>stm32f4xx_hal_i2s.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2s.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2s.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_i2s_ex.c</FileName> <FileName>stm32f4xx_hal_i2s_ex.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2s_ex.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2s_ex.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_irda.c</FileName> <FileName>stm32f4xx_hal_irda.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_irda.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_irda.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_iwdg.c</FileName> <FileName>stm32f4xx_hal_iwdg.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_iwdg.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_iwdg.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_lptim.c</FileName> <FileName>stm32f4xx_hal_lptim.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_lptim.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_lptim.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_ltdc.c</FileName> <FileName>stm32f4xx_hal_ltdc.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_ltdc.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_ltdc.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_ltdc_ex.c</FileName> <FileName>stm32f4xx_hal_ltdc_ex.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_ltdc_ex.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_ltdc_ex.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_nand.c</FileName> <FileName>stm32f4xx_hal_nand.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_nand.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_nand.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_nor.c</FileName> <FileName>stm32f4xx_hal_nor.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_nor.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_nor.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_pccard.c</FileName> <FileName>stm32f4xx_hal_pccard.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pccard.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pccard.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_pcd.c</FileName> <FileName>stm32f4xx_hal_pcd.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pcd.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pcd.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_pcd_ex.c</FileName> <FileName>stm32f4xx_hal_pcd_ex.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pcd_ex.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pcd_ex.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_pwr.c</FileName> <FileName>stm32f4xx_hal_pwr.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_pwr_ex.c</FileName> <FileName>stm32f4xx_hal_pwr_ex.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_qspi.c</FileName> <FileName>stm32f4xx_hal_qspi.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_qspi.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_qspi.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_rcc.c</FileName> <FileName>stm32f4xx_hal_rcc.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_rcc_ex.c</FileName> <FileName>stm32f4xx_hal_rcc_ex.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_rng.c</FileName> <FileName>stm32f4xx_hal_rng.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rng.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rng.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_rtc.c</FileName> <FileName>stm32f4xx_hal_rtc.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rtc.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rtc.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_rtc_ex.c</FileName> <FileName>stm32f4xx_hal_rtc_ex.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rtc_ex.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rtc_ex.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_sai.c</FileName> <FileName>stm32f4xx_hal_sai.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sai.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sai.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_sai_ex.c</FileName> <FileName>stm32f4xx_hal_sai_ex.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sai_ex.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sai_ex.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_sd.c</FileName> <FileName>stm32f4xx_hal_sd.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sd.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sd.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_sdram.c</FileName> <FileName>stm32f4xx_hal_sdram.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sdram.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sdram.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_smartcard.c</FileName> <FileName>stm32f4xx_hal_smartcard.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_smartcard.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_smartcard.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_spdifrx.c</FileName> <FileName>stm32f4xx_hal_spdifrx.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spdifrx.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spdifrx.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_spi.c</FileName> <FileName>stm32f4xx_hal_spi.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_sram.c</FileName> <FileName>stm32f4xx_hal_sram.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sram.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sram.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_tim.c</FileName> <FileName>stm32f4xx_hal_tim.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_tim_ex.c</FileName> <FileName>stm32f4xx_hal_tim_ex.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_uart.c</FileName> <FileName>stm32f4xx_hal_uart.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_usart.c</FileName> <FileName>stm32f4xx_hal_usart.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_usart.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_usart.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_hal_wwdg.c</FileName> <FileName>stm32f4xx_hal_wwdg.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_wwdg.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_wwdg.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_ll_fmc.c</FileName> <FileName>stm32f4xx_ll_fmc.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_fmc.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_fmc.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_ll_fsmc.c</FileName> <FileName>stm32f4xx_ll_fsmc.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_fsmc.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_fsmc.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_ll_sdmmc.c</FileName> <FileName>stm32f4xx_ll_sdmmc.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_sdmmc.c</FilePath> <FilePath>..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_sdmmc.c</FilePath>
</File> </File>
</Files>
<Files>
<File> <File>
<FileName>stm32f4xx_ll_usb.c</FileName> <FileName>stm32f4xx_ll_usb.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
@ -1162,9 +962,11 @@
</Groups> </Groups>
</Target> </Target>
</Targets> </Targets>
<RTE> <RTE>
<apis/> <apis/>
<components/> <components/>
<files/> <files/>
</RTE> </RTE>
</Project> </Project>

View File

@ -149,13 +149,8 @@
/* miscellaneous packages */ /* miscellaneous packages */
/* sample package */
/* samples: kernel and components samples */ /* samples: kernel and components samples */
/* example package: hello */
#define SOC_FAMILY_STM32 #define SOC_FAMILY_STM32
#define SOC_SERIES_STM32F7 #define SOC_SERIES_STM32F7
@ -168,6 +163,7 @@
/* On-chip Peripheral Drivers */ /* On-chip Peripheral Drivers */
#define BSP_USING_GPIO #define BSP_USING_GPIO
#define BSP_USING_UART
#define BSP_USING_UART1 #define BSP_USING_UART1
/* Board extended module Drivers */ /* Board extended module Drivers */

View File

@ -5,6 +5,9 @@ ARCH='arm'
CPU='cortex-m7' CPU='cortex-m7'
CROSS_TOOL='gcc' CROSS_TOOL='gcc'
# bsp lib config
BSP_LIBRARY_TYPE = None
if os.getenv('RTT_CC'): if os.getenv('RTT_CC'):
CROSS_TOOL = os.getenv('RTT_CC') CROSS_TOOL = os.getenv('RTT_CC')
if os.getenv('RTT_ROOT'): if os.getenv('RTT_ROOT'):
@ -14,7 +17,7 @@ if os.getenv('RTT_ROOT'):
# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR # EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR
if CROSS_TOOL == 'gcc': if CROSS_TOOL == 'gcc':
PLATFORM = 'gcc' PLATFORM = 'gcc'
EXEC_PATH = '/usr/local/Cellar/arm-none-eabi-gcc/7-2017-q4-major/gcc/bin/' EXEC_PATH = r'C:\Users\XXYYZZ'
elif CROSS_TOOL == 'keil': elif CROSS_TOOL == 'keil':
PLATFORM = 'armcc' PLATFORM = 'armcc'
EXEC_PATH = r'C:/Keil_v5' EXEC_PATH = r'C:/Keil_v5'
@ -31,7 +34,6 @@ if PLATFORM == 'gcc':
# toolchains # toolchains
PREFIX = 'arm-none-eabi-' PREFIX = 'arm-none-eabi-'
CC = PREFIX + 'gcc' CC = PREFIX + 'gcc'
CXX = PREFIX + 'g++'
AS = PREFIX + 'gcc' AS = PREFIX + 'gcc'
AR = PREFIX + 'ar' AR = PREFIX + 'ar'
CXX = PREFIX + 'g++' CXX = PREFIX + 'g++'
@ -40,56 +42,48 @@ if PLATFORM == 'gcc':
SIZE = PREFIX + 'size' SIZE = PREFIX + 'size'
OBJDUMP = PREFIX + 'objdump' OBJDUMP = PREFIX + 'objdump'
OBJCPY = PREFIX + 'objcopy' OBJCPY = PREFIX + 'objcopy'
STRIP = PREFIX + 'strip'
DEVICE = ' -mcpu=' + CPU + ' -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections' DEVICE = ' -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections'
CFLAGS = DEVICE + ' -std=c99 -g -Wall' CFLAGS = DEVICE + ' -std=c99 -Dgcc'
AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -Wa,-mimplicit-it=thumb ' AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -Wa,-mimplicit-it=thumb '
LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,Reset_Handler -T rtthread.ld' LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rt-thread.map,-cref,-u,Reset_Handler -T board/linker_scripts/link.lds'
CPATH = '' CPATH = ''
LPATH = '' LPATH = ''
if BUILD == 'debug': if BUILD == 'debug':
CFLAGS += ' -O0 -gdwarf-2' CFLAGS += ' -O0 -gdwarf-2 -g'
AFLAGS += ' -gdwarf-2' AFLAGS += ' -gdwarf-2'
else: else:
CFLAGS += ' -O2 -Os' CFLAGS += ' -O2'
POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n' POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n'
# module setting
CXXFLAGS = ' -Woverloaded-virtual -fno-exceptions -fno-rtti '
M_CFLAGS = CFLAGS + ' -mlong-calls -fPIC '
M_CXXFLAGS = CXXFLAGS + ' -mlong-calls -fPIC'
M_LFLAGS = DEVICE + CXXFLAGS + ' -Wl,--gc-sections,-z,max-page-size=0x4' +\
' -shared -fPIC -nostartfiles -static-libgcc'
M_POST_ACTION = STRIP + ' -R .hash $TARGET\n' + SIZE + ' $TARGET \n'
elif PLATFORM == 'armcc': elif PLATFORM == 'armcc':
# toolchains # toolchains
CC = 'armcc' CC = 'armcc'
CXX = 'armcc'
AS = 'armasm' AS = 'armasm'
AR = 'armar' AR = 'armar'
LINK = 'armlink' LINK = 'armlink'
TARGET_EXT = 'axf' TARGET_EXT = 'axf'
DEVICE = ' --cpu Cortex-M7.fp.sp --fpu=FPv4-SP' DEVICE = ' --cpu Cortex-M7.fp.sp'
CFLAGS = DEVICE + ' --apcs=interwork ' CFLAGS = '-c ' + DEVICE + ' --apcs=interwork --c99'
AFLAGS = DEVICE AFLAGS = DEVICE + ' --apcs=interwork '
LFLAGS = DEVICE + ' --info sizes --info totals --info unused --info veneers --list rtthread.map --scatter rtthread.sct' LFLAGS = DEVICE + ' --scatter "board\linker_scripts\link.sct" --info sizes --info totals --info unused --info veneers --list rt-thread.map --strict'
CFLAGS += ' -I' + EXEC_PATH + '/ARM/ARMCC/include'
LFLAGS += ' --libpath=' + EXEC_PATH + '/ARM/ARMCC/lib'
CFLAGS += ' -I' + EXEC_PATH + '/ARM/ARMCC/INC' CFLAGS += ' -D__MICROLIB '
LFLAGS += ' --libpath "' + EXEC_PATH + '/ARM/ARMCC/lib"' AFLAGS += ' --pd "__MICROLIB SETA 1" '
LFLAGS += ' --library_type=microlib '
EXEC_PATH += '/arm/bin40/' EXEC_PATH += '/ARM/ARMCC/bin/'
if BUILD == 'debug': if BUILD == 'debug':
CFLAGS += ' -g -O0' CFLAGS += ' -g -O0'
AFLAGS += ' -g' AFLAGS += ' -g'
else: else:
CFLAGS += ' -O2 -Otime' CFLAGS += ' -O2'
CXXFLAGS = CFLAGS CXXFLAGS = CFLAGS
POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET' POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET'
@ -97,13 +91,12 @@ elif PLATFORM == 'armcc':
elif PLATFORM == 'iar': elif PLATFORM == 'iar':
# toolchains # toolchains
CC = 'iccarm' CC = 'iccarm'
CXX = 'iccarm'
AS = 'iasmarm' AS = 'iasmarm'
AR = 'iarchive' AR = 'iarchive'
LINK = 'ilinkarm' LINK = 'ilinkarm'
TARGET_EXT = 'out' TARGET_EXT = 'out'
DEVICE = '' DEVICE = '-Dewarm'
CFLAGS = DEVICE CFLAGS = DEVICE
CFLAGS += ' --diag_suppress Pa050' CFLAGS += ' --diag_suppress Pa050'
@ -114,31 +107,29 @@ elif PLATFORM == 'iar':
CFLAGS += ' --no_tbaa' CFLAGS += ' --no_tbaa'
CFLAGS += ' --no_clustering' CFLAGS += ' --no_clustering'
CFLAGS += ' --no_scheduling' CFLAGS += ' --no_scheduling'
CFLAGS += ' --debug'
CFLAGS += ' --endian=little' CFLAGS += ' --endian=little'
CFLAGS += ' --cpu=Cortex-M7' CFLAGS += ' --cpu=Cortex-M7'
CFLAGS += ' -e' CFLAGS += ' -e'
CFLAGS += ' --fpu=None' CFLAGS += ' --fpu=VFPv5_sp'
CFLAGS += ' --dlib_config "' + EXEC_PATH + '/arm/INC/c/DLib_Config_Normal.h"' CFLAGS += ' --dlib_config "' + EXEC_PATH + '/arm/INC/c/DLib_Config_Normal.h"'
CFLAGS += ' -Ol'
CFLAGS += ' --use_c++_inline'
CFLAGS += ' --silent' CFLAGS += ' --silent'
AFLAGS = '' AFLAGS = DEVICE
AFLAGS += ' -s+' AFLAGS += ' -s+'
AFLAGS += ' -w+' AFLAGS += ' -w+'
AFLAGS += ' -r' AFLAGS += ' -r'
AFLAGS += ' --cpu Cortex-M7' AFLAGS += ' --cpu Cortex-M7'
AFLAGS += ' --fpu None' AFLAGS += ' --fpu VFPv5_sp'
AFLAGS += ' -S' AFLAGS += ' -S'
LFLAGS = ' --config rtthread.icf' if BUILD == 'debug':
LFLAGS += ' --redirect _Printf=_PrintfTiny' CFLAGS += ' --debug'
LFLAGS += ' --redirect _Scanf=_ScanfSmall' CFLAGS += ' -On'
LFLAGS += ' --entry __iar_program_start' else:
LFLAGS += ' --silent' CFLAGS += ' -Oh'
CXXFLAGS = CFLAGS LFLAGS = ' --config "board/linker_scripts/link.icf"'
LFLAGS += ' --entry __iar_program_start'
EXEC_PATH = EXEC_PATH + '/arm/bin/' EXEC_PATH = EXEC_PATH + '/arm/bin/'
POST_ACTION = '' POST_ACTION = 'ielftool --bin $TARGET rtthread.bin'

View File

@ -103,7 +103,7 @@
<bEvRecOn>1</bEvRecOn> <bEvRecOn>1</bEvRecOn>
<bSchkAxf>0</bSchkAxf> <bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf> <bTchkAxf>0</bTchkAxf>
<nTsel>3</nTsel> <nTsel>4</nTsel>
<sDll></sDll> <sDll></sDll>
<sDllPa></sDllPa> <sDllPa></sDllPa>
<sDlgDll></sDlgDll> <sDlgDll></sDlgDll>
@ -119,13 +119,13 @@
<TargetDriverDllRegistry> <TargetDriverDllRegistry>
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>JL2CM3</Key> <Key>UL2CM3</Key>
<Name>-U59400616 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name> <Name>UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20020000 -FF0STM32F7x_1024 -FL0100000 -FS08000000 -FP0($$Device:STM32F767BGTx$CMSIS\Flash\STM32F7x_1024.FLM)</Name>
</SetRegEntry> </SetRegEntry>
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>UL2CM3</Key> <Key>JL2CM3</Key>
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM))</Name> <Name>-U59400616 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F7x_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F767BGTx$CMSIS\Flash\STM32F7x_1024.FLM)</Name>
</SetRegEntry> </SetRegEntry>
</TargetDriverDllRegistry> </TargetDriverDllRegistry>
<Breakpoint/> <Breakpoint/>

View File

@ -14,16 +14,16 @@
<uAC6>0</uAC6> <uAC6>0</uAC6>
<TargetOption> <TargetOption>
<TargetCommonOption> <TargetCommonOption>
<Device>STM32F407ZGTx</Device> <Device>STM32F767BGTx</Device>
<Vendor>STMicroelectronics</Vendor> <Vendor>STMicroelectronics</Vendor>
<PackID>Keil.STM32F4xx_DFP.2.13.0</PackID> <PackID>Keil.STM32F7xx_DFP.2.9.0</PackID>
<PackURL>http://www.keil.com/pack</PackURL> <PackURL>http://www.keil.com/pack</PackURL>
<Cpu>IRAM(0x20000000,0x20000) IRAM2(0x10000000,0x10000) IROM(0x08000000,0x100000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE</Cpu> <Cpu>IRAM(0x20020000,0x60000) IRAM2(0x20000000,0x20000) IROM(0x08000000,0x100000) IROM2(0x00200000,0x100000) CPUTYPE("Cortex-M7") FPU3(DFPU) CLOCK(12000000) ELITTLE</Cpu>
<FlashUtilSpec></FlashUtilSpec> <FlashUtilSpec></FlashUtilSpec>
<StartupFile></StartupFile> <StartupFile></StartupFile>
<FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM))</FlashDriverDll> <FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20020000 -FC1000 -FN1 -FF0STM32F7x_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F767BGTx$CMSIS\Flash\STM32F7x_1024.FLM))</FlashDriverDll>
<DeviceId>0</DeviceId> <DeviceId>0</DeviceId>
<RegisterFile>$$Device:STM32F407ZGTx$Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h</RegisterFile> <RegisterFile>$$Device:STM32F767BGTx$Drivers\CMSIS\Device\ST\STM32F7xx\Include\stm32f7xx.h</RegisterFile>
<MemoryEnv></MemoryEnv> <MemoryEnv></MemoryEnv>
<Cmp></Cmp> <Cmp></Cmp>
<Asm></Asm> <Asm></Asm>
@ -33,7 +33,7 @@
<SLE66CMisc></SLE66CMisc> <SLE66CMisc></SLE66CMisc>
<SLE66AMisc></SLE66AMisc> <SLE66AMisc></SLE66AMisc>
<SLE66LinkerMisc></SLE66LinkerMisc> <SLE66LinkerMisc></SLE66LinkerMisc>
<SFDFile>$$Device:STM32F407ZGTx$CMSIS\SVD\STM32F40x.svd</SFDFile> <SFDFile>$$Device:STM32F767BGTx$CMSIS\SVD\STM32F7x7_v1r2.svd</SFDFile>
<bCustSvd>0</bCustSvd> <bCustSvd>0</bCustSvd>
<UseEnv>0</UseEnv> <UseEnv>0</UseEnv>
<BinPath></BinPath> <BinPath></BinPath>
@ -112,11 +112,11 @@
<SimDllName>SARMCM3.DLL</SimDllName> <SimDllName>SARMCM3.DLL</SimDllName>
<SimDllArguments> -REMAP -MPU</SimDllArguments> <SimDllArguments> -REMAP -MPU</SimDllArguments>
<SimDlgDll>DCM.DLL</SimDlgDll> <SimDlgDll>DCM.DLL</SimDlgDll>
<SimDlgDllArguments>-pCM4</SimDlgDllArguments> <SimDlgDllArguments>-pCM7</SimDlgDllArguments>
<TargetDllName>SARMCM3.DLL</TargetDllName> <TargetDllName>SARMCM3.DLL</TargetDllName>
<TargetDllArguments> -MPU</TargetDllArguments> <TargetDllArguments> -MPU</TargetDllArguments>
<TargetDlgDll>TCM.DLL</TargetDlgDll> <TargetDlgDll>TCM.DLL</TargetDlgDll>
<TargetDlgDllArguments>-pCM4</TargetDlgDllArguments> <TargetDlgDllArguments>-pCM7</TargetDlgDllArguments>
</DllOption> </DllOption>
<DebugOption> <DebugOption>
<OPTHX> <OPTHX>
@ -138,7 +138,7 @@
</Flash1> </Flash1>
<bUseTDR>1</bUseTDR> <bUseTDR>1</bUseTDR>
<Flash2>BIN\UL2CM3.DLL</Flash2> <Flash2>BIN\UL2CM3.DLL</Flash2>
<Flash3>"" ()</Flash3> <Flash3></Flash3>
<Flash4></Flash4> <Flash4></Flash4>
<pFcarmOut></pFcarmOut> <pFcarmOut></pFcarmOut>
<pFcarmGrp></pFcarmGrp> <pFcarmGrp></pFcarmGrp>
@ -174,7 +174,7 @@
<AdsLsxf>1</AdsLsxf> <AdsLsxf>1</AdsLsxf>
<RvctClst>0</RvctClst> <RvctClst>0</RvctClst>
<GenPPlst>0</GenPPlst> <GenPPlst>0</GenPPlst>
<AdsCpuType>"Cortex-M4"</AdsCpuType> <AdsCpuType>"Cortex-M7"</AdsCpuType>
<RvctDeviceName></RvctDeviceName> <RvctDeviceName></RvctDeviceName>
<mOS>0</mOS> <mOS>0</mOS>
<uocRom>0</uocRom> <uocRom>0</uocRom>
@ -183,16 +183,16 @@
<hadIRAM>1</hadIRAM> <hadIRAM>1</hadIRAM>
<hadXRAM>0</hadXRAM> <hadXRAM>0</hadXRAM>
<uocXRam>0</uocXRam> <uocXRam>0</uocXRam>
<RvdsVP>2</RvdsVP> <RvdsVP>3</RvdsVP>
<RvdsMve>0</RvdsMve> <RvdsMve>0</RvdsMve>
<hadIRAM2>1</hadIRAM2> <hadIRAM2>1</hadIRAM2>
<hadIROM2>0</hadIROM2> <hadIROM2>1</hadIROM2>
<StupSel>8</StupSel> <StupSel>8</StupSel>
<useUlib>0</useUlib> <useUlib>0</useUlib>
<EndSel>0</EndSel> <EndSel>0</EndSel>
<uLtcg>0</uLtcg> <uLtcg>0</uLtcg>
<nSecure>0</nSecure> <nSecure>0</nSecure>
<RoSelD>3</RoSelD> <RoSelD>4</RoSelD>
<RwSelD>4</RwSelD> <RwSelD>4</RwSelD>
<CodeSel>0</CodeSel> <CodeSel>0</CodeSel>
<OptFeed>0</OptFeed> <OptFeed>0</OptFeed>
@ -209,7 +209,7 @@
<Ra1Chk>0</Ra1Chk> <Ra1Chk>0</Ra1Chk>
<Ra2Chk>0</Ra2Chk> <Ra2Chk>0</Ra2Chk>
<Ra3Chk>0</Ra3Chk> <Ra3Chk>0</Ra3Chk>
<Im1Chk>0</Im1Chk> <Im1Chk>1</Im1Chk>
<Im2Chk>1</Im2Chk> <Im2Chk>1</Im2Chk>
<OnChipMemories> <OnChipMemories>
<Ocm1> <Ocm1>
@ -244,8 +244,8 @@
</Ocm6> </Ocm6>
<IRAM> <IRAM>
<Type>0</Type> <Type>0</Type>
<StartAddress>0x20000000</StartAddress> <StartAddress>0x20020000</StartAddress>
<Size>0x20000</Size> <Size>0x60000</Size>
</IRAM> </IRAM>
<IROM> <IROM>
<Type>1</Type> <Type>1</Type>
@ -279,8 +279,8 @@
</OCR_RVCT4> </OCR_RVCT4>
<OCR_RVCT5> <OCR_RVCT5>
<Type>1</Type> <Type>1</Type>
<StartAddress>0x0</StartAddress> <StartAddress>0x200000</StartAddress>
<Size>0x0</Size> <Size>0x100000</Size>
</OCR_RVCT5> </OCR_RVCT5>
<OCR_RVCT6> <OCR_RVCT6>
<Type>0</Type> <Type>0</Type>
@ -299,13 +299,13 @@
</OCR_RVCT8> </OCR_RVCT8>
<OCR_RVCT9> <OCR_RVCT9>
<Type>0</Type> <Type>0</Type>
<StartAddress>0x20000000</StartAddress> <StartAddress>0x20020000</StartAddress>
<Size>0x20000</Size> <Size>0x60000</Size>
</OCR_RVCT9> </OCR_RVCT9>
<OCR_RVCT10> <OCR_RVCT10>
<Type>0</Type> <Type>0</Type>
<StartAddress>0x10000000</StartAddress> <StartAddress>0x20000000</StartAddress>
<Size>0x10000</Size> <Size>0x20000</Size>
</OCR_RVCT10> </OCR_RVCT10>
</OnChipMemories> </OnChipMemories>
<RvctStartVector></RvctStartVector> <RvctStartVector></RvctStartVector>

View File

@ -297,6 +297,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_BUTTON is not set # CONFIG_PKG_USING_BUTTON is not set
# CONFIG_PKG_USING_MPU6XXX is not set # CONFIG_PKG_USING_MPU6XXX is not set
# CONFIG_PKG_USING_PCF8574 is not set # CONFIG_PKG_USING_PCF8574 is not set
# CONFIG_PKG_USING_KENDRYTE_SDK is not set
# #
# miscellaneous packages # miscellaneous packages
@ -311,10 +312,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_ZLIB is not set # CONFIG_PKG_USING_ZLIB is not set
# CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_DSTR is not set
# CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_TINYFRAME is not set
# CONFIG_PKG_USING_KENDRYTE_DEMO is not set
#
# sample package
#
# #
# samples: kernel and components samples # samples: kernel and components samples
@ -323,11 +321,8 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set # CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
# CONFIG_PKG_USING_NETWORK_SAMPLES is not set # CONFIG_PKG_USING_NETWORK_SAMPLES is not set
# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set # CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
#
# example package: hello
#
# CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_HELLO is not set
# CONFIG_PKG_USING_VI is not set
CONFIG_SOC_FAMILY_STM32=y CONFIG_SOC_FAMILY_STM32=y
CONFIG_SOC_SERIES_STM32L4=y CONFIG_SOC_SERIES_STM32L4=y
@ -344,9 +339,10 @@ CONFIG_SOC_STM32L475VE=y
# On-chip Peripheral Drivers # On-chip Peripheral Drivers
# #
CONFIG_BSP_USING_GPIO=y CONFIG_BSP_USING_GPIO=y
CONFIG_BSP_USING_UART=y
CONFIG_BSP_USING_UART1=y CONFIG_BSP_USING_UART1=y
# CONFIG_BSP_USING_SPI1 is not set # CONFIG_BSP_UART1_RX_USING_DMA is not set
# CONFIG_BSP_SPI_USING_DMA is not set # CONFIG_BSP_USING_SPI is not set
# CONFIG_BSP_USING_I2C1 is not set # CONFIG_BSP_USING_I2C1 is not set
# #

View File

@ -16,20 +16,42 @@ menu "On-chip Peripheral Drivers"
select RT_USING_PIN select RT_USING_PIN
default y default y
menuconfig BSP_USING_UART
bool "Enable UART"
default y
select RT_USING_SERIAL
if BSP_USING_UART
config BSP_USING_UART1 config BSP_USING_UART1
bool "Enable UART1" bool "Enable UART1"
select RT_USING_SERIAL
default y default y
config BSP_UART1_RX_USING_DMA
bool "Enable UART1 RX DMA"
depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
default n
endif
menuconfig BSP_USING_SPI
bool "Enable SPI BUS"
default n
select RT_USING_SPI
if BSP_USING_SPI
config BSP_USING_SPI1 config BSP_USING_SPI1
bool "Enable SPI1 BUS" bool "Enable SPI1 BUS"
select RT_USING_SPI
default n default n
config BSP_SPI_USING_DMA config BSP_SPI1_TX_USING_DMA
bool "Enable SPI DMA support" bool "Enable SPI1 TX DMA"
depends on BSP_USING_SPI1
default n default n
config BSP_SPI1_RX_USING_DMA
bool "Enable SPI1 RX DMA"
depends on BSP_USING_SPI1
select BSP_SPI1_TX_USING_DMA
default n
endif
menuconfig BSP_USING_I2C1 menuconfig BSP_USING_I2C1
bool "Enable I2C1 BUS (software simulation)" bool "Enable I2C1 BUS (software simulation)"
default n default n

View File

@ -37,3 +37,4 @@ CPPDEFINES = ['STM32L475xx']
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES) group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
Return('group') Return('group')

View File

@ -15,6 +15,10 @@
#include <stm32l4xx.h> #include <stm32l4xx.h>
#include "drv_common.h" #include "drv_common.h"
#ifdef __cplusplus
extern "C" {
#endif
#define STM32_FLASH_START_ADRESS ((uint32_t)0x08000000) #define STM32_FLASH_START_ADRESS ((uint32_t)0x08000000)
#define STM32_FLASH_SIZE (512 * 1024) #define STM32_FLASH_SIZE (512 * 1024)
#define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE)) #define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE))
@ -28,5 +32,9 @@
void SystemClock_Config(void); void SystemClock_Config(void);
#ifdef __cplusplus
}
#endif
#endif #endif

View File

@ -149,13 +149,8 @@
/* miscellaneous packages */ /* miscellaneous packages */
/* sample package */
/* samples: kernel and components samples */ /* samples: kernel and components samples */
/* example package: hello */
#define SOC_FAMILY_STM32 #define SOC_FAMILY_STM32
#define SOC_SERIES_STM32L4 #define SOC_SERIES_STM32L4
@ -168,6 +163,7 @@
/* On-chip Peripheral Drivers */ /* On-chip Peripheral Drivers */
#define BSP_USING_GPIO #define BSP_USING_GPIO
#define BSP_USING_UART
#define BSP_USING_UART1 #define BSP_USING_UART1
/* Board extended module Drivers */ /* Board extended module Drivers */

View File

@ -281,6 +281,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_LITTLEVGL2RTT is not set # CONFIG_PKG_USING_LITTLEVGL2RTT is not set
# CONFIG_PKG_USING_CMSIS is not set # CONFIG_PKG_USING_CMSIS is not set
# CONFIG_PKG_USING_DFS_YAFFS is not set # CONFIG_PKG_USING_DFS_YAFFS is not set
# CONFIG_PKG_USING_LITTLEFS is not set
# #
# peripheral libraries and drivers # peripheral libraries and drivers
@ -295,6 +296,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_BUTTON is not set # CONFIG_PKG_USING_BUTTON is not set
# CONFIG_PKG_USING_MPU6XXX is not set # CONFIG_PKG_USING_MPU6XXX is not set
# CONFIG_PKG_USING_PCF8574 is not set # CONFIG_PKG_USING_PCF8574 is not set
# CONFIG_PKG_USING_KENDRYTE_SDK is not set
# #
# miscellaneous packages # miscellaneous packages
@ -309,10 +311,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_ZLIB is not set # CONFIG_PKG_USING_ZLIB is not set
# CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_DSTR is not set
# CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_TINYFRAME is not set
# CONFIG_PKG_USING_KENDRYTE_DEMO is not set
#
# sample package
#
# #
# samples: kernel and components samples # samples: kernel and components samples
@ -321,30 +320,8 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set # CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
# CONFIG_PKG_USING_NETWORK_SAMPLES is not set # CONFIG_PKG_USING_NETWORK_SAMPLES is not set
# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set # CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
#
# example package: hello
#
# CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_HELLO is not set
# CONFIG_PKG_USING_VI is not set
#
# Privated Packages of RealThread
#
# CONFIG_PKG_USING_CODEC is not set
# CONFIG_PKG_USING_PLAYER is not set
# CONFIG_PKG_USING_PERSIMMON_SRC is not set
#
# Network Utilities
#
# CONFIG_PKG_USING_WICED is not set
# CONFIG_PKG_USING_CLOUDSDK is not set
# CONFIG_PKG_USING_COREMARK is not set
# CONFIG_PKG_USING_POWER_MANAGER is not set
# CONFIG_PKG_USING_RT_OTA is not set
# CONFIG_PKG_USING_RDBD_SRC is not set
# CONFIG_PKG_USING_RTINSIGHT is not set
# CONFIG_PKG_USING_SMARTCONFIG is not set
CONFIG_SOC_FAMILY_STM32=y CONFIG_SOC_FAMILY_STM32=y
CONFIG_SOC_SERIES_STM32F0=y CONFIG_SOC_SERIES_STM32F0=y
@ -356,16 +333,24 @@ CONFIG_SOC_STM32F091RC=y
# #
# Onboard Peripheral Drivers # Onboard Peripheral Drivers
# #
CONFIG_BSP_USING_USB_TO_USART=y
# #
# On-chip Peripheral Drivers # On-chip Peripheral Drivers
# #
CONFIG_BSP_USING_GPIO=y CONFIG_BSP_USING_GPIO=y
CONFIG_BSP_USING_UART=y
# CONFIG_BSP_USING_UART1 is not set # CONFIG_BSP_USING_UART1 is not set
CONFIG_BSP_USING_UART2=y CONFIG_BSP_USING_UART2=y
# CONFIG_BSP_USING_SPI1 is not set # CONFIG_BSP_UART2_RX_USING_DMA is not set
# CONFIG_BSP_SPI_USING_DMA is not set # CONFIG_BSP_USING_SPI is not set
# CONFIG_BSP_USING_I2C1 is not set # CONFIG_BSP_USING_I2C1 is not set
# CONFIG_BSP_USING_TIM is not set
# CONFIG_BSP_USING_PWM is not set
# CONFIG_BSP_USING_ADC is not set
# CONFIG_BSP_USING_ON_CHIP_FLASH is not set
# CONFIG_BSP_USING_ONCHIP_RTC is not set
# CONFIG_BSP_USING_WDT is not set
# #
# Board extended module Drivers # Board extended module Drivers

View File

@ -9,6 +9,7 @@ menu "Onboard Peripheral Drivers"
config BSP_USING_USB_TO_USART config BSP_USING_USB_TO_USART
bool "Enable USB TO USART (uart2)" bool "Enable USB TO USART (uart2)"
select BSP_USING_UART
select BSP_USING_UART2 select BSP_USING_UART2
default y default y
@ -21,21 +22,53 @@ menu "On-chip Peripheral Drivers"
select RT_USING_PIN select RT_USING_PIN
default y default y
menuconfig BSP_USING_UART
bool "Enable UART"
default y
select RT_USING_SERIAL
if BSP_USING_UART
config BSP_USING_UART1 config BSP_USING_UART1
bool "Enable UART1" bool "Enable UART1"
select RT_USING_SERIAL default y
config BSP_UART1_RX_USING_DMA
bool "Enable UART1 RX DMA"
depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
default n default n
config BSP_USING_UART2 config BSP_USING_UART2
bool "Enable UART2" bool "Enable UART2"
select RT_USING_SERIAL default n
default y
config BSP_UART2_RX_USING_DMA
bool "Enable UART2 RX DMA"
depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA
default n
endif
menuconfig BSP_USING_SPI
bool "Enable SPI BUS"
default n
select RT_USING_SPI
if BSP_USING_SPI
config BSP_USING_SPI1 config BSP_USING_SPI1
bool "Enable SPI1 BUS" bool "Enable SPI1 BUS"
select RT_USING_SPI
default n default n
config BSP_SPI1_TX_USING_DMA
bool "Enable SPI1 TX DMA"
depends on BSP_USING_SPI1
default n
config BSP_SPI1_RX_USING_DMA
bool "Enable SPI1 RX DMA"
depends on BSP_USING_SPI1
select BSP_SPI1_TX_USING_DMA
default n
endif
menuconfig BSP_USING_I2C1 menuconfig BSP_USING_I2C1
bool "Enable I2C1 BUS (software simulation)" bool "Enable I2C1 BUS (software simulation)"
default n default n

View File

@ -15,6 +15,10 @@
#include <stm32f0xx.h> #include <stm32f0xx.h>
#include "drv_common.h" #include "drv_common.h"
#ifdef __cplusplus
extern "C" {
#endif
#define STM32_FLASH_START_ADRESS ((uint32_t)0x08000000) #define STM32_FLASH_START_ADRESS ((uint32_t)0x08000000)
#define STM32_FLASH_SIZE (256 * 1024) #define STM32_FLASH_SIZE (256 * 1024)
#define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE)) #define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE))
@ -38,4 +42,8 @@ extern int __bss_end;
void SystemClock_Config(void); void SystemClock_Config(void);
#ifdef __cplusplus
}
#endif
#endif /* __BOARD_H__ */ #endif /* __BOARD_H__ */

View File

@ -149,19 +149,8 @@
/* miscellaneous packages */ /* miscellaneous packages */
/* sample package */
/* samples: kernel and components samples */ /* samples: kernel and components samples */
/* example package: hello */
/* Privated Packages of RealThread */
/* Network Utilities */
#define SOC_FAMILY_STM32 #define SOC_FAMILY_STM32
#define SOC_SERIES_STM32F0 #define SOC_SERIES_STM32F0
@ -171,9 +160,12 @@
/* Onboard Peripheral Drivers */ /* Onboard Peripheral Drivers */
#define BSP_USING_USB_TO_USART
/* On-chip Peripheral Drivers */ /* On-chip Peripheral Drivers */
#define BSP_USING_GPIO #define BSP_USING_GPIO
#define BSP_USING_UART
#define BSP_USING_UART2 #define BSP_USING_UART2
/* Board extended module Drivers */ /* Board extended module Drivers */

View File

@ -312,6 +312,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_ZLIB is not set # CONFIG_PKG_USING_ZLIB is not set
# CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_DSTR is not set
# CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_TINYFRAME is not set
# CONFIG_PKG_USING_KENDRYTE_DEMO is not set
# #
# samples: kernel and components samples # samples: kernel and components samples
@ -321,6 +322,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_NETWORK_SAMPLES is not set # CONFIG_PKG_USING_NETWORK_SAMPLES is not set
# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set # CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
# CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_HELLO is not set
# CONFIG_PKG_USING_VI is not set
CONFIG_SOC_FAMILY_STM32=y CONFIG_SOC_FAMILY_STM32=y
CONFIG_SOC_SERIES_STM32F1=y CONFIG_SOC_SERIES_STM32F1=y
@ -341,14 +343,14 @@ CONFIG_BSP_USING_USB_TO_USART=y
# On-chip Peripheral Drivers # On-chip Peripheral Drivers
# #
CONFIG_BSP_USING_GPIO=y CONFIG_BSP_USING_GPIO=y
CONFIG_BSP_USING_UART=y
CONFIG_BSP_USING_UART1=y CONFIG_BSP_USING_UART1=y
# CONFIG_BSP_UART1_RX_USING_DMA is not set
# CONFIG_BSP_USING_UART2 is not set # CONFIG_BSP_USING_UART2 is not set
# CONFIG_BSP_USING_UART3 is not set # CONFIG_BSP_USING_UART3 is not set
# CONFIG_BSP_USING_TIM is not set # CONFIG_BSP_USING_TIM is not set
# CONFIG_BSP_USING_PWM is not set # CONFIG_BSP_USING_PWM is not set
# CONFIG_BSP_USING_SPI1 is not set # CONFIG_BSP_USING_SPI is not set
# CONFIG_BSP_USING_SPI2 is not set
# CONFIG_BSP_SPI_USING_DMA is not set
# CONFIG_BSP_USING_I2C1 is not set # CONFIG_BSP_USING_I2C1 is not set
# CONFIG_BSP_USING_ADC is not set # CONFIG_BSP_USING_ADC is not set
# CONFIG_BSP_USING_ON_CHIP_FLASH is not set # CONFIG_BSP_USING_ON_CHIP_FLASH is not set

View File

@ -9,6 +9,7 @@ menu "Onboard Peripheral Drivers"
config BSP_USING_USB_TO_USART config BSP_USING_USB_TO_USART
bool "Enable USB TO USART (uart1)" bool "Enable USB TO USART (uart1)"
select BSP_USING_UART
select BSP_USING_UART1 select BSP_USING_UART1
default y default y
@ -19,6 +20,7 @@ menu "Onboard Peripheral Drivers"
config BSP_USING_SPI_FLASH config BSP_USING_SPI_FLASH
bool "Enable SPI FLASH (w25q16 spi2)" bool "Enable SPI FLASH (w25q16 spi2)"
select BSP_USING_SPI
select BSP_USING_SPI2 select BSP_USING_SPI2
select RT_USING_SFUD select RT_USING_SFUD
select RT_SFUD_USING_SFDP select RT_SFUD_USING_SFDP
@ -39,21 +41,39 @@ menu "On-chip Peripheral Drivers"
select RT_USING_PIN select RT_USING_PIN
default y default y
menuconfig BSP_USING_UART
bool "Enable UART"
default y
select RT_USING_SERIAL
if BSP_USING_UART
config BSP_USING_UART1 config BSP_USING_UART1
bool "Enable UART1" bool "Enable UART1"
select RT_USING_SERIAL
default y default y
config BSP_UART1_RX_USING_DMA
bool "Enable UART1 RX DMA"
depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
default n
config BSP_USING_UART2 config BSP_USING_UART2
bool "Enable UART2" bool "Enable UART2"
select RT_USING_SERIAL default n
config BSP_UART2_RX_USING_DMA
bool "Enable UART2 RX DMA"
depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA
default n default n
config BSP_USING_UART3 config BSP_USING_UART3
bool "Enable UART3" bool "Enable UART3"
select RT_USING_SERIAL
default n default n
config BSP_UART3_RX_USING_DMA
bool "Enable UART3 RX DMA"
depends on BSP_USING_UART3 && RT_SERIAL_USING_DMA
default n
endif
menuconfig BSP_USING_TIM menuconfig BSP_USING_TIM
bool "Enable timer" bool "Enable timer"
default n default n
@ -91,20 +111,42 @@ menu "On-chip Peripheral Drivers"
endif endif
endif endif
menuconfig BSP_USING_SPI
bool "Enable SPI BUS"
default n
select RT_USING_SPI
if BSP_USING_SPI
config BSP_USING_SPI1 config BSP_USING_SPI1
bool "Enable SPI1 BUS" bool "Enable SPI1 BUS"
select RT_USING_SPI default n
config BSP_SPI1_TX_USING_DMA
bool "Enable SPI1 TX DMA"
depends on BSP_USING_SPI1
default n
config BSP_SPI1_RX_USING_DMA
bool "Enable SPI1 RX DMA"
depends on BSP_USING_SPI1
select BSP_SPI1_TX_USING_DMA
default n default n
config BSP_USING_SPI2 config BSP_USING_SPI2
bool "Enable SPI2 BUS" bool "Enable SPI2 BUS"
select RT_USING_SPI
default n default n
config BSP_SPI_USING_DMA config BSP_SPI2_TX_USING_DMA
bool "Enable SPI DMA support" bool "Enable SPI2 TX DMA"
depends on BSP_USING_SPI2
default n default n
config BSP_SPI2_RX_USING_DMA
bool "Enable SPI2 RX DMA"
depends on BSP_USING_SPI2
select BSP_SPI2_TX_USING_DMA
default n
endif
menuconfig BSP_USING_I2C1 menuconfig BSP_USING_I2C1
bool "Enable I2C1 BUS (software simulation)" bool "Enable I2C1 BUS (software simulation)"
default n default n

View File

@ -15,6 +15,10 @@
#include <stm32f1xx.h> #include <stm32f1xx.h>
#include "drv_common.h" #include "drv_common.h"
#ifdef __cplusplus
extern "C" {
#endif
#define STM32_FLASH_START_ADRESS ((uint32_t)0x08000000) #define STM32_FLASH_START_ADRESS ((uint32_t)0x08000000)
#define STM32_FLASH_SIZE (128 * 1024) #define STM32_FLASH_SIZE (128 * 1024)
#define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE)) #define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE))
@ -38,4 +42,8 @@ extern int __bss_end;
void SystemClock_Config(void); void SystemClock_Config(void);
#ifdef __cplusplus
}
#endif
#endif /* __BOARD_H__ */ #endif /* __BOARD_H__ */

View File

@ -187,7 +187,7 @@
<Group> <Group>
<GroupName>Applications</GroupName> <GroupName>Applications</GroupName>
<tvExp>0</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
@ -207,7 +207,7 @@
<Group> <Group>
<GroupName>Drivers</GroupName> <GroupName>Drivers</GroupName>
<tvExp>0</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
@ -287,7 +287,7 @@
<Group> <Group>
<GroupName>Kernel</GroupName> <GroupName>Kernel</GroupName>
<tvExp>0</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
@ -487,7 +487,7 @@
<Group> <Group>
<GroupName>CORTEX-M3</GroupName> <GroupName>CORTEX-M3</GroupName>
<tvExp>0</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
@ -555,7 +555,7 @@
<Group> <Group>
<GroupName>DeviceDrivers</GroupName> <GroupName>DeviceDrivers</GroupName>
<tvExp>0</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
@ -671,7 +671,7 @@
<Group> <Group>
<GroupName>finsh</GroupName> <GroupName>finsh</GroupName>
<tvExp>0</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>

View File

@ -166,6 +166,7 @@
/* On-chip Peripheral Drivers */ /* On-chip Peripheral Drivers */
#define BSP_USING_GPIO #define BSP_USING_GPIO
#define BSP_USING_UART
#define BSP_USING_UART1 #define BSP_USING_UART1
/* Board extended module Drivers */ /* Board extended module Drivers */

View File

@ -312,6 +312,7 @@ CONFIG_RT_USING_LIBC=y
# CONFIG_PKG_USING_ZLIB is not set # CONFIG_PKG_USING_ZLIB is not set
# CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_DSTR is not set
# CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_TINYFRAME is not set
# CONFIG_PKG_USING_KENDRYTE_DEMO is not set
# #
# samples: kernel and components samples # samples: kernel and components samples
@ -321,6 +322,7 @@ CONFIG_RT_USING_LIBC=y
# CONFIG_PKG_USING_NETWORK_SAMPLES is not set # CONFIG_PKG_USING_NETWORK_SAMPLES is not set
# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set # CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
# CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_HELLO is not set
# CONFIG_PKG_USING_VI is not set
CONFIG_SOC_FAMILY_STM32=y CONFIG_SOC_FAMILY_STM32=y
CONFIG_SOC_SERIES_STM32F1=y CONFIG_SOC_SERIES_STM32F1=y
@ -345,14 +347,13 @@ CONFIG_BSP_USING_USB_TO_USART=y
# On-chip Peripheral Drivers # On-chip Peripheral Drivers
# #
CONFIG_BSP_USING_GPIO=y CONFIG_BSP_USING_GPIO=y
CONFIG_BSP_USING_UART=y
CONFIG_BSP_USING_UART1=y CONFIG_BSP_USING_UART1=y
# CONFIG_BSP_UART1_RX_USING_DMA is not set
# CONFIG_BSP_USING_UART2 is not set # CONFIG_BSP_USING_UART2 is not set
# CONFIG_BSP_USING_UART3 is not set # CONFIG_BSP_USING_UART3 is not set
# CONFIG_BSP_USING_ON_CHIP_FLASH is not set # CONFIG_BSP_USING_ON_CHIP_FLASH is not set
# CONFIG_BSP_USING_SPI1 is not set # CONFIG_BSP_USING_SPI is not set
# CONFIG_BSP_USING_SPI2 is not set
# CONFIG_BSP_USING_SPI3 is not set
# CONFIG_BSP_SPI_USING_DMA is not set
# CONFIG_BSP_USING_I2C1 is not set # CONFIG_BSP_USING_I2C1 is not set
# CONFIG_BSP_USING_TIM is not set # CONFIG_BSP_USING_TIM is not set
# CONFIG_BSP_USING_PWM is not set # CONFIG_BSP_USING_PWM is not set

View File

@ -9,6 +9,7 @@ menu "Onboard Peripheral Drivers"
config BSP_USING_USB_TO_USART config BSP_USING_USB_TO_USART
bool "Enable USB TO USART (uart1)" bool "Enable USB TO USART (uart1)"
select BSP_USING_UART
select BSP_USING_UART1 select BSP_USING_UART1
default y default y
@ -19,6 +20,7 @@ menu "Onboard Peripheral Drivers"
config BSP_USING_SPI_FLASH config BSP_USING_SPI_FLASH
bool "Enable SPI FLASH (w25q64 spi1)" bool "Enable SPI FLASH (w25q64 spi1)"
select BSP_USING_SPI
select BSP_USING_SPI1 select BSP_USING_SPI1
select RT_USING_SFUD select RT_USING_SFUD
select RT_SFUD_USING_SFDP select RT_SFUD_USING_SFDP
@ -52,7 +54,6 @@ menu "Onboard Peripheral Drivers"
select WIZNET_DEVICE_EXTERN_CONFIG select WIZNET_DEVICE_EXTERN_CONFIG
select BSP_USING_SPI2 select BSP_USING_SPI2
if BSP_USING_ETH if BSP_USING_ETH
if WIZNET_DEVICE_EXTERN_CONFIG if WIZNET_DEVICE_EXTERN_CONFIG
config WIZ_SPI_DEVICE config WIZ_SPI_DEVICE
string string
@ -89,44 +90,94 @@ menu "On-chip Peripheral Drivers"
select RT_USING_PIN select RT_USING_PIN
default y default y
menuconfig BSP_USING_UART
bool "Enable UART"
default y
select RT_USING_SERIAL
if BSP_USING_UART
config BSP_USING_UART1 config BSP_USING_UART1
bool "Enable UART1" bool "Enable UART1"
select RT_USING_SERIAL
default y default y
config BSP_UART1_RX_USING_DMA
bool "Enable UART1 RX DMA"
depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
default n
config BSP_USING_UART2 config BSP_USING_UART2
bool "Enable UART2" bool "Enable UART2"
select RT_USING_SERIAL default n
config BSP_UART2_RX_USING_DMA
bool "Enable UART2 RX DMA"
depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA
default n default n
config BSP_USING_UART3 config BSP_USING_UART3
bool "Enable UART3" bool "Enable UART3"
select RT_USING_SERIAL
default n default n
config BSP_UART3_RX_USING_DMA
bool "Enable UART3 RX DMA"
depends on BSP_USING_UART3 && RT_SERIAL_USING_DMA
default n
endif
config BSP_USING_ON_CHIP_FLASH config BSP_USING_ON_CHIP_FLASH
bool "Enable on-chip FLASH" bool "Enable on-chip FLASH"
default n default n
menuconfig BSP_USING_SPI
bool "Enable SPI BUS"
default n
select RT_USING_SPI
if BSP_USING_SPI
config BSP_USING_SPI1 config BSP_USING_SPI1
bool "Enable SPI1 BUS" bool "Enable SPI1 BUS"
select RT_USING_SPI default n
config BSP_SPI1_TX_USING_DMA
bool "Enable SPI1 TX DMA"
depends on BSP_USING_SPI1
default n
config BSP_SPI1_RX_USING_DMA
bool "Enable SPI1 RX DMA"
depends on BSP_USING_SPI1
select BSP_SPI1_TX_USING_DMA
default n default n
config BSP_USING_SPI2 config BSP_USING_SPI2
bool "Enable SPI2 BUS" bool "Enable SPI2 BUS"
select RT_USING_SPI default n
config BSP_SPI2_TX_USING_DMA
bool "Enable SPI2 TX DMA"
depends on BSP_USING_SPI2
default n
config BSP_SPI2_RX_USING_DMA
bool "Enable SPI2 RX DMA"
depends on BSP_USING_SPI2
select BSP_SPI2_TX_USING_DMA
default n default n
config BSP_USING_SPI3 config BSP_USING_SPI3
bool "Enable SPI3 BUS" bool "Enable SPI3 BUS"
select RT_USING_SPI
default n default n
config BSP_SPI_USING_DMA config BSP_SPI3_TX_USING_DMA
bool "Enable SPI DMA support" bool "Enable SPI3 TX DMA"
depends on BSP_USING_SPI3
default n default n
config BSP_SPI3_RX_USING_DMA
bool "Enable SPI3 RX DMA"
depends on BSP_USING_SPI3
select BSP_SPI3_TX_USING_DMA
default n
endif
menuconfig BSP_USING_I2C1 menuconfig BSP_USING_I2C1
bool "Enable I2C1 BUS (software simulation)" bool "Enable I2C1 BUS (software simulation)"
default n default n

View File

@ -15,6 +15,10 @@
#include <stm32f1xx.h> #include <stm32f1xx.h>
#include "drv_common.h" #include "drv_common.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Internal SRAM memory size[Kbytes] <8-64>, Default: 64*/ /* Internal SRAM memory size[Kbytes] <8-64>, Default: 64*/
#define STM32_SRAM_SIZE 64 #define STM32_SRAM_SIZE 64
#define STM32_SRAM_END (0x20000000 + STM32_SRAM_SIZE * 1024) #define STM32_SRAM_END (0x20000000 + STM32_SRAM_SIZE * 1024)
@ -38,4 +42,8 @@ extern int __bss_end;
void SystemClock_Config(void); void SystemClock_Config(void);
#ifdef __cplusplus
}
#endif
#endif /* __BOARD_H__ */ #endif /* __BOARD_H__ */

View File

@ -167,6 +167,7 @@
/* On-chip Peripheral Drivers */ /* On-chip Peripheral Drivers */
#define BSP_USING_GPIO #define BSP_USING_GPIO
#define BSP_USING_UART
#define BSP_USING_UART1 #define BSP_USING_UART1
/* Board extended module Drivers */ /* Board extended module Drivers */

View File

@ -312,6 +312,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_ZLIB is not set # CONFIG_PKG_USING_ZLIB is not set
# CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_DSTR is not set
# CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_TINYFRAME is not set
# CONFIG_PKG_USING_KENDRYTE_DEMO is not set
# #
# samples: kernel and components samples # samples: kernel and components samples
@ -321,6 +322,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_NETWORK_SAMPLES is not set # CONFIG_PKG_USING_NETWORK_SAMPLES is not set
# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set # CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
# CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_HELLO is not set
# CONFIG_PKG_USING_VI is not set
CONFIG_SOC_FAMILY_STM32=y CONFIG_SOC_FAMILY_STM32=y
CONFIG_SOC_SERIES_STM32F4=y CONFIG_SOC_SERIES_STM32F4=y
@ -333,8 +335,9 @@ CONFIG_SOC_STM32F407ZG=y
# Onboard Peripheral Drivers # Onboard Peripheral Drivers
# #
CONFIG_BSP_USING_USB_TO_USART=y CONFIG_BSP_USING_USB_TO_USART=y
# CONFIG_BSP_USING_SPI_FLASH is not set # CONFIG_BSP_USING_COM2 is not set
# CONFIG_BSP_USING_COM3 is not set # CONFIG_BSP_USING_COM3 is not set
# CONFIG_BSP_USING_SPI_FLASH is not set
# CONFIG_BSP_USING_EEPROM is not set # CONFIG_BSP_USING_EEPROM is not set
# CONFIG_BSP_USING_ETH is not set # CONFIG_BSP_USING_ETH is not set
# CONFIG_BSP_USING_MPU6050 is not set # CONFIG_BSP_USING_MPU6050 is not set
@ -344,16 +347,14 @@ CONFIG_BSP_USING_USB_TO_USART=y
# On-chip Peripheral Drivers # On-chip Peripheral Drivers
# #
CONFIG_BSP_USING_GPIO=y CONFIG_BSP_USING_GPIO=y
CONFIG_BSP_USING_UART=y
CONFIG_BSP_USING_UART1=y CONFIG_BSP_USING_UART1=y
# CONFIG_BSP_USING_UART2 is not set # CONFIG_BSP_UART1_RX_USING_DMA is not set
# CONFIG_BSP_USING_UART3 is not set # CONFIG_BSP_USING_UART3 is not set
# CONFIG_BSP_USING_UART6 is not set
# CONFIG_BSP_USING_TIM is not set # CONFIG_BSP_USING_TIM is not set
# CONFIG_BSP_USING_PWM is not set # CONFIG_BSP_USING_PWM is not set
# CONFIG_BSP_USING_ON_CHIP_FLASH is not set # CONFIG_BSP_USING_ON_CHIP_FLASH is not set
# CONFIG_BSP_USING_SPI1 is not set # CONFIG_BSP_USING_SPI is not set
# CONFIG_BSP_USING_SPI2 is not set
# CONFIG_BSP_SPI_USING_DMA is not set
# CONFIG_BSP_USING_ADC is not set # CONFIG_BSP_USING_ADC is not set
# CONFIG_BSP_USING_I2C1 is not set # CONFIG_BSP_USING_I2C1 is not set
# CONFIG_BSP_USING_ONCHIP_RTC is not set # CONFIG_BSP_USING_ONCHIP_RTC is not set

View File

@ -9,21 +9,25 @@ menu "Onboard Peripheral Drivers"
config BSP_USING_USB_TO_USART config BSP_USING_USB_TO_USART
bool "Enable USB TO USART (uart1)" bool "Enable USB TO USART (uart1)"
select BSP_USING_UART
select BSP_USING_UART1 select BSP_USING_UART1
default y default y
config BSP_USING_COM2 config BSP_USING_COM2
bool "Enable COM2 (uart2 pin conflict with Ethernet and PWM)" bool "Enable COM2 (uart2 pin conflict with Ethernet and PWM)"
select BSP_USING_UART
select BSP_USING_UART2 select BSP_USING_UART2
default n default n
config BSP_USING_COM3 config BSP_USING_COM3
bool "Enable COM3 (uart3)" bool "Enable COM3 (uart3)"
select BSP_USING_UART
select BSP_USING_UART3 select BSP_USING_UART3
default n default n
config BSP_USING_SPI_FLASH config BSP_USING_SPI_FLASH
bool "Enable SPI FLASH (w25q128 spi1)" bool "Enable SPI FLASH (w25q128 spi1)"
select BSP_USING_SPI
select BSP_USING_SPI1 select BSP_USING_SPI1
select RT_USING_SFUD select RT_USING_SFUD
select RT_SFUD_USING_SFDP select RT_SFUD_USING_SFDP
@ -65,16 +69,30 @@ menu "On-chip Peripheral Drivers"
select RT_USING_PIN select RT_USING_PIN
default y default y
menuconfig BSP_USING_UART
bool "Enable UART"
default y
select RT_USING_SERIAL
if BSP_USING_UART
config BSP_USING_UART1 config BSP_USING_UART1
bool "Enable UART1" bool "Enable UART1"
select RT_USING_SERIAL
default y default y
config BSP_UART1_RX_USING_DMA
bool "Enable UART1 RX DMA"
depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
default n
config BSP_USING_UART3 config BSP_USING_UART3
bool "Enable UART3" bool "Enable UART3"
select RT_USING_SERIAL
default n default n
config BSP_UART3_RX_USING_DMA
bool "Enable UART3 RX DMA"
depends on BSP_USING_UART3 && RT_SERIAL_USING_DMA
default n
endif
menuconfig BSP_USING_TIM menuconfig BSP_USING_TIM
bool "Enable timer" bool "Enable timer"
default n default n
@ -112,20 +130,42 @@ menu "On-chip Peripheral Drivers"
bool "Enable on-chip FLASH" bool "Enable on-chip FLASH"
default n default n
menuconfig BSP_USING_SPI
bool "Enable SPI BUS"
default n
select RT_USING_SPI
if BSP_USING_SPI
config BSP_USING_SPI1 config BSP_USING_SPI1
bool "Enable SPI1 BUS" bool "Enable SPI1 BUS"
select RT_USING_SPI default n
default y
config BSP_SPI1_TX_USING_DMA
bool "Enable SPI1 TX DMA"
depends on BSP_USING_SPI1
default n
config BSP_SPI1_RX_USING_DMA
bool "Enable SPI1 RX DMA"
depends on BSP_USING_SPI1
select BSP_SPI1_TX_USING_DMA
default n
config BSP_USING_SPI2 config BSP_USING_SPI2
bool "Enable SPI2 BUS" bool "Enable SPI2 BUS"
select RT_USING_SPI
default n default n
config BSP_SPI_USING_DMA config BSP_SPI2_TX_USING_DMA
bool "Enable SPI DMA support" bool "Enable SPI2 TX DMA"
depends on BSP_USING_SPI2
default n default n
config BSP_SPI2_RX_USING_DMA
bool "Enable SPI2 RX DMA"
depends on BSP_USING_SPI2
select BSP_SPI2_TX_USING_DMA
default n
endif
menuconfig BSP_USING_ADC menuconfig BSP_USING_ADC
bool "Enable ADC" bool "Enable ADC"
default n default n

View File

@ -15,6 +15,10 @@
#include <stm32f4xx.h> #include <stm32f4xx.h>
#include "drv_common.h" #include "drv_common.h"
#ifdef __cplusplus
extern "C" {
#endif
#define STM32_SRAM_SIZE (128) #define STM32_SRAM_SIZE (128)
#define STM32_SRAM_END (0x20000000 + STM32_SRAM_SIZE * 1024) #define STM32_SRAM_END (0x20000000 + STM32_SRAM_SIZE * 1024)
@ -37,5 +41,9 @@ extern int __bss_end;
void SystemClock_Config(void); void SystemClock_Config(void);
#ifdef __cplusplus
}
#endif
#endif #endif

View File

@ -165,6 +165,7 @@
/* On-chip Peripheral Drivers */ /* On-chip Peripheral Drivers */
#define BSP_USING_GPIO #define BSP_USING_GPIO
#define BSP_USING_UART
#define BSP_USING_UART1 #define BSP_USING_UART1
/* Board extended module Drivers */ /* Board extended module Drivers */

View File

@ -312,6 +312,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_ZLIB is not set # CONFIG_PKG_USING_ZLIB is not set
# CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_DSTR is not set
# CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_TINYFRAME is not set
# CONFIG_PKG_USING_KENDRYTE_DEMO is not set
# #
# samples: kernel and components samples # samples: kernel and components samples
@ -321,6 +322,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_NETWORK_SAMPLES is not set # CONFIG_PKG_USING_NETWORK_SAMPLES is not set
# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set # CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
# CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_HELLO is not set
# CONFIG_PKG_USING_VI is not set
CONFIG_SOC_FAMILY_STM32=y CONFIG_SOC_FAMILY_STM32=y
CONFIG_SOC_SERIES_STM32F4=y CONFIG_SOC_SERIES_STM32F4=y
@ -337,10 +339,10 @@ CONFIG_SOC_STM32F407VG=y
# On-chip Peripheral Drivers # On-chip Peripheral Drivers
# #
CONFIG_BSP_USING_GPIO=y CONFIG_BSP_USING_GPIO=y
CONFIG_BSP_USING_UART=y
CONFIG_BSP_USING_UART1=y CONFIG_BSP_USING_UART1=y
# CONFIG_BSP_UART_USING_DMA_RX is not set # CONFIG_BSP_UART1_RX_USING_DMA is not set
# CONFIG_BSP_USING_SPI1 is not set # CONFIG_BSP_USING_SPI is not set
# CONFIG_BSP_SPI_USING_DMA is not set
# CONFIG_BSP_USING_I2C1 is not set # CONFIG_BSP_USING_I2C1 is not set
# #

Some files were not shown because too many files have changed in this diff Show More