diff --git a/bsp/stm32/README.md b/bsp/stm32/README.md index a23f5e9380e70d92591cc0ddadec76602d599646..90b123c505153fbe91dde69859bec3452ebebbe8 100644 --- a/bsp/stm32/README.md +++ b/bsp/stm32/README.md @@ -10,4 +10,11 @@ STM32 系列 BSP 目前支持情况如下表所示: | stm32f429-atk-apollo | 正点原子 F429 阿波罗开发板 | | stm32f429-fire-challenger | 野火 F429 挑战者开发板 | +了解每个 BSP 的详细情况可以阅读该 BSP 下的 readme 文件,如需使用 BSP 更多功能可参考 docs 文件夹下提供的说明文档: + +| 文档名称 | 简介 | +| -------------------- | ------------------------------------------------- | +| BSP 进阶使用指南 | 介绍如何使用 BSP 提供的高级功能以及添加更多新功能 | +| STM32系列BSP添加教程 | 介绍如何添加一个新的 STM32 系列的 BSP | +| STM32系列BSP制作规范 | 介绍一个新 STM32 系列 BSP 的制作规范 | diff --git "a/bsp/stm32/docs/BSP\350\277\233\351\230\266\344\275\277\347\224\250\346\214\207\345\215\227.md" "b/bsp/stm32/docs/BSP\350\277\233\351\230\266\344\275\277\347\224\250\346\214\207\345\215\227.md" new file mode 100644 index 0000000000000000000000000000000000000000..887aa619ddd5108b1ea2a4f566e4b978bec40d28 --- /dev/null +++ "b/bsp/stm32/docs/BSP\350\277\233\351\230\266\344\275\277\347\224\250\346\214\207\345\215\227.md" @@ -0,0 +1,115 @@ +# BSP 进阶使用指南 + +## 简介 + +本文档是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。 + +主要包括以下内容: + +1. 如何使用开发板上更多的板载资源 +2. 如何使用更多的片上资源 +3. 如何添加更多片上资源选项 + +## 前提要求 + +- 学会如何使用 ENV 工具,参考:[RT-Thread env 工具用户手册](https://www.rt-thread.org/document/site/rtthread-development-guide/rtthread-tool-manual/env/env-user-manual/) + +## 如何使用更多的板载资源 + +开发板上一般有很多的板载资源,如 Flash、SD卡、以太网等,但是 BSP 工程默认没有添加对这些外设的支持。如何在工程里添加这些外设的支持呢?这就需要使用 ENV 工具了。下面以在正点原子阿波罗 F429 开发板上开启 SPI Flash 支持为例,一步步的展示如何使用 ENV 工具对 BSP 进行配置。 + +### 1)打开配置工具 + +在目录 `rt-thread\bsp\stm32\stm32f429-atk-apollo` 下打开 menuconfig 配置界面。 + +![打开 menuconfig](figures/menuconfig_apolo.png) + +打开的配置工具界面如下所示: + +![RT-Thread 配置菜单](figures/config1.png) + +通过键盘上的上下键移动光标,选中 `Hardware Drivers Config`然后按回车键进入硬件驱动配置菜单。 + +### 2)进入硬件驱动配置菜单 + +在硬件配置菜单里有三个选项,分别是 **板载外设配置菜单**、**片上外设配置菜单**和**扩展模块配置菜单**,按回车键进入板载外设配置菜单。 + +![硬件驱动 配置菜单](figures/config2.png) + +### 3)在板载外设配置菜单里开启 SPI Flash 选项 + +![板载外设 配置菜单](figures/spi_flash.png) + +### 4)保存退出 + +然后右移光标选中 Save 按回车键保存,然后按 Esc 键退出配置工具。 + +![保存退出](figures/save.png) + +### 5)更新软件包 + +输入命令 `pkgs --update` 使软件包配置生效。 + +![1543477036034](figures/update.png) + +### 6)生成 MDK5 工程 + +输入命令 `scons --target=mdk5 -s` 重新生成 MDK5 的工程。 + +![1543477194829](figures/scons_mdk5.png) + +### 7)编译下载 + +打开生成的 MDK5 工程文件,编译并下载。 + +![1543478492157](figures/complise.png) + +### 8)查看运行结果 + +程序运行后,输入命令 `list_device` 可以看到名为 W25Q256 的块设备,此时 `SPI Flash` 设备已经可以使用了。 + +![1543478742034](figures/run_flash.png) + +## 如何使用更多的片上资源 + +如果想要使用除了当前支持的片上资源(GPIO 和 UART1),又不想开启板载资源的支持,可以通过直接配置 **片上外设配置菜单** 的方式,使用更多片上资源。 + +配置方法和上一章节介绍的 **如何使用更多的板载资源的配置方法** 一样,只是本次需要进入 `片上外设配置菜单`。 + +![1543481275711](figures/on_chip_config.png) + +## 如何添加更多的片上资源选项 + +如果想使用的片上外设是 `片上外设配置菜单` 里没有的,就需要自己添加了。下面以添加 SPI3 的驱动支持为例讲解如何添加更多片上外设支持。 + +> 没有安装 stm32cubemx 软件的移步 STM32cube中文网: ,在 `资源下载` 里下载 stm32cubemx 软件。 + +添加 SPI3 的外设支持需要以下几步: + +### 1)打开 Cube 的工程 + +![1543486779576](figures/cubemx.png) + +### 2)配置好 SPI3 的引脚,并生成代码 + +按照图中所示步骤操作: + +![1543487684698](figures/cube_spi3.png) + +### 3)修改 Konfig 文件 + +打开board文件夹下的 Konfig 文件,拷贝 SPI2 的配置项,并重命名 SPI2 为 SPI3。 + +![1543542657074](figures/Kconfig2.png) + +### 4)重新配置工程 + +经过上一步的修改,此时重新打开 ENV 工具,在 menuconfig 中就会出现添加的 SPI3 的配置项。 + +![1543543081284](figures/config5.png) + +### 5)生成工程,编译下载 + +重新生成工程之后,编译下载到开发板,程序会自动开始运行。输入 `list_device` 命令可以看到 spi3 总线设备已经挂载成功了。 + +![1543543446786](figures/run_spi3.png) diff --git "a/bsp/stm32/libraries/templates/STM32\347\263\273\345\210\227BSP\346\267\273\345\212\240\346\225\231\347\250\213.md" "b/bsp/stm32/docs/STM32\347\263\273\345\210\227BSP\346\267\273\345\212\240\346\225\231\347\250\213.md" similarity index 98% rename from "bsp/stm32/libraries/templates/STM32\347\263\273\345\210\227BSP\346\267\273\345\212\240\346\225\231\347\250\213.md" rename to "bsp/stm32/docs/STM32\347\263\273\345\210\227BSP\346\267\273\345\212\240\346\225\231\347\250\213.md" index f23fd40de6b8dad9960fbcd583bee1163502f9d1..2ac0f6b48e3d5c1a45ad5fbf886eccd2c7f14901 100644 --- "a/bsp/stm32/libraries/templates/STM32\347\263\273\345\210\227BSP\346\267\273\345\212\240\346\225\231\347\250\213.md" +++ "b/bsp/stm32/docs/STM32\347\263\273\345\210\227BSP\346\267\273\345\212\240\346\225\231\347\250\213.md" @@ -112,6 +112,8 @@ STM32 BSP 由三部分组成,分别是 (1) 通用库、(2) BSP 模板和 (3) | SOC_STM32F103RB | 芯片型号 | SOC_STM32xxx | | SOC_SERIES_STM32F1 | 芯片系列| SOC_SERIES_STM32xx | +用户可参考这个链接学习 Kconfig语法:(https://blog.csdn.net/jianwen_hi/article/details/53398141) + ### 修改工程构建相关文件 接下来需要修改用于构建工程相关的文件。 diff --git a/bsp/stm32/libraries/templates/figures/CubeMX_1.png b/bsp/stm32/docs/figures/CubeMX_1.png similarity index 100% rename from bsp/stm32/libraries/templates/figures/CubeMX_1.png rename to bsp/stm32/docs/figures/CubeMX_1.png diff --git a/bsp/stm32/libraries/templates/figures/CubeMX_2.png b/bsp/stm32/docs/figures/CubeMX_2.png similarity index 100% rename from bsp/stm32/libraries/templates/figures/CubeMX_2.png rename to bsp/stm32/docs/figures/CubeMX_2.png diff --git a/bsp/stm32/libraries/templates/figures/CubeMX_3.png b/bsp/stm32/docs/figures/CubeMX_3.png similarity index 100% rename from bsp/stm32/libraries/templates/figures/CubeMX_3.png rename to bsp/stm32/docs/figures/CubeMX_3.png diff --git a/bsp/stm32/libraries/templates/figures/CubeMX_4.png b/bsp/stm32/docs/figures/CubeMX_4.png similarity index 100% rename from bsp/stm32/libraries/templates/figures/CubeMX_4.png rename to bsp/stm32/docs/figures/CubeMX_4.png diff --git a/bsp/stm32/libraries/templates/figures/CubeMX_5.png b/bsp/stm32/docs/figures/CubeMX_5.png similarity index 100% rename from bsp/stm32/libraries/templates/figures/CubeMX_5.png rename to bsp/stm32/docs/figures/CubeMX_5.png diff --git a/bsp/stm32/docs/figures/Kconfig.png b/bsp/stm32/docs/figures/Kconfig.png new file mode 100644 index 0000000000000000000000000000000000000000..8c5748df13a71f198f279d5c0f4b2a5984e94ffc Binary files /dev/null and b/bsp/stm32/docs/figures/Kconfig.png differ diff --git a/bsp/stm32/docs/figures/Kconfig2.png b/bsp/stm32/docs/figures/Kconfig2.png new file mode 100644 index 0000000000000000000000000000000000000000..960709f4f2866da6342f033fd5bedc094bf2fb59 Binary files /dev/null and b/bsp/stm32/docs/figures/Kconfig2.png differ diff --git a/bsp/stm32/libraries/templates/figures/SConscript.png b/bsp/stm32/docs/figures/SConscript.png similarity index 100% rename from bsp/stm32/libraries/templates/figures/SConscript.png rename to bsp/stm32/docs/figures/SConscript.png diff --git a/bsp/stm32/libraries/templates/figures/board_1.png b/bsp/stm32/docs/figures/board_1.png similarity index 100% rename from bsp/stm32/libraries/templates/figures/board_1.png rename to bsp/stm32/docs/figures/board_1.png diff --git a/bsp/stm32/libraries/templates/figures/board_2.png b/bsp/stm32/docs/figures/board_2.png similarity index 100% rename from bsp/stm32/libraries/templates/figures/board_2.png rename to bsp/stm32/docs/figures/board_2.png diff --git a/bsp/stm32/docs/figures/complise.png b/bsp/stm32/docs/figures/complise.png new file mode 100644 index 0000000000000000000000000000000000000000..283d5243afdf64378b1acfe9d75f7b5fe888c0e3 Binary files /dev/null and b/bsp/stm32/docs/figures/complise.png differ diff --git a/bsp/stm32/docs/figures/config.png b/bsp/stm32/docs/figures/config.png new file mode 100644 index 0000000000000000000000000000000000000000..53183c2868217af5ddf105d4f9fb2769368902aa Binary files /dev/null and b/bsp/stm32/docs/figures/config.png differ diff --git a/bsp/stm32/docs/figures/config1.png b/bsp/stm32/docs/figures/config1.png new file mode 100644 index 0000000000000000000000000000000000000000..e6ca8f5b3ce14bcdb2338ca430e9c2785abb889b Binary files /dev/null and b/bsp/stm32/docs/figures/config1.png differ diff --git a/bsp/stm32/docs/figures/config2.png b/bsp/stm32/docs/figures/config2.png new file mode 100644 index 0000000000000000000000000000000000000000..498b0f99c1b83e6e6347e467e6e9e6e56888a9fe Binary files /dev/null and b/bsp/stm32/docs/figures/config2.png differ diff --git a/bsp/stm32/docs/figures/config3.png b/bsp/stm32/docs/figures/config3.png new file mode 100644 index 0000000000000000000000000000000000000000..565532e3acc4a221a6388a131531526391722533 Binary files /dev/null and b/bsp/stm32/docs/figures/config3.png differ diff --git a/bsp/stm32/docs/figures/config4.png b/bsp/stm32/docs/figures/config4.png new file mode 100644 index 0000000000000000000000000000000000000000..c2734caf6d0841e3532730f03fc7b3c44cf0a9a8 Binary files /dev/null and b/bsp/stm32/docs/figures/config4.png differ diff --git a/bsp/stm32/docs/figures/config5.png b/bsp/stm32/docs/figures/config5.png new file mode 100644 index 0000000000000000000000000000000000000000..b995b52c3eafe396e7f2e37f7ba6db3882694ff9 Binary files /dev/null and b/bsp/stm32/docs/figures/config5.png differ diff --git a/bsp/stm32/libraries/templates/figures/copy.png b/bsp/stm32/docs/figures/copy.png similarity index 100% rename from bsp/stm32/libraries/templates/figures/copy.png rename to bsp/stm32/docs/figures/copy.png diff --git a/bsp/stm32/docs/figures/cube_spi3.png b/bsp/stm32/docs/figures/cube_spi3.png new file mode 100644 index 0000000000000000000000000000000000000000..a30e29bc968109290e8f4c869ecf1a0ecc27e0c3 Binary files /dev/null and b/bsp/stm32/docs/figures/cube_spi3.png differ diff --git a/bsp/stm32/docs/figures/cubemx.png b/bsp/stm32/docs/figures/cubemx.png new file mode 100644 index 0000000000000000000000000000000000000000..d339c2efb415e23cc83e994ff24345f85300f032 Binary files /dev/null and b/bsp/stm32/docs/figures/cubemx.png differ diff --git a/bsp/stm32/docs/figures/exit.png b/bsp/stm32/docs/figures/exit.png new file mode 100644 index 0000000000000000000000000000000000000000..a8e41300db8081a7dfe3b000e0695c16143795d5 Binary files /dev/null and b/bsp/stm32/docs/figures/exit.png differ diff --git a/bsp/stm32/libraries/templates/figures/frame.png b/bsp/stm32/docs/figures/frame.png similarity index 100% rename from bsp/stm32/libraries/templates/figures/frame.png rename to bsp/stm32/docs/figures/frame.png diff --git a/bsp/stm32/libraries/templates/figures/linker_scripts.png b/bsp/stm32/docs/figures/linker_scripts.png similarity index 100% rename from bsp/stm32/libraries/templates/figures/linker_scripts.png rename to bsp/stm32/docs/figures/linker_scripts.png diff --git a/bsp/stm32/docs/figures/menuconfig.png b/bsp/stm32/docs/figures/menuconfig.png new file mode 100644 index 0000000000000000000000000000000000000000..f272f53cd839888e52fb5ea99a7c7507bdeef4b4 Binary files /dev/null and b/bsp/stm32/docs/figures/menuconfig.png differ diff --git a/bsp/stm32/libraries/templates/figures/menuconfig_1.png b/bsp/stm32/docs/figures/menuconfig_1.png similarity index 100% rename from bsp/stm32/libraries/templates/figures/menuconfig_1.png rename to bsp/stm32/docs/figures/menuconfig_1.png diff --git a/bsp/stm32/libraries/templates/figures/menuconfig_2.png b/bsp/stm32/docs/figures/menuconfig_2.png similarity index 100% rename from bsp/stm32/libraries/templates/figures/menuconfig_2.png rename to bsp/stm32/docs/figures/menuconfig_2.png diff --git a/bsp/stm32/libraries/templates/figures/menuconfig_3.png b/bsp/stm32/docs/figures/menuconfig_3.png similarity index 100% rename from bsp/stm32/libraries/templates/figures/menuconfig_3.png rename to bsp/stm32/docs/figures/menuconfig_3.png diff --git a/bsp/stm32/libraries/templates/figures/menuconfig_4.png b/bsp/stm32/docs/figures/menuconfig_4.png similarity index 100% rename from bsp/stm32/libraries/templates/figures/menuconfig_4.png rename to bsp/stm32/docs/figures/menuconfig_4.png diff --git a/bsp/stm32/docs/figures/menuconfig_apolo.png b/bsp/stm32/docs/figures/menuconfig_apolo.png new file mode 100644 index 0000000000000000000000000000000000000000..a5738a290e1d8d23a154e6f27d76ee05b9420329 Binary files /dev/null and b/bsp/stm32/docs/figures/menuconfig_apolo.png differ diff --git a/bsp/stm32/docs/figures/on_chip_config.png b/bsp/stm32/docs/figures/on_chip_config.png new file mode 100644 index 0000000000000000000000000000000000000000..bc90fc747b12bf2c25bbd71259a33cd9bf6d29b2 Binary files /dev/null and b/bsp/stm32/docs/figures/on_chip_config.png differ diff --git a/bsp/stm32/docs/figures/run_flash.png b/bsp/stm32/docs/figures/run_flash.png new file mode 100644 index 0000000000000000000000000000000000000000..5a463c3835af61dbc154fe8efbd2efbacafcb826 Binary files /dev/null and b/bsp/stm32/docs/figures/run_flash.png differ diff --git a/bsp/stm32/docs/figures/run_spi3.png b/bsp/stm32/docs/figures/run_spi3.png new file mode 100644 index 0000000000000000000000000000000000000000..a73b86d47b095f5f20ea9df2d50ce2877f7b004f Binary files /dev/null and b/bsp/stm32/docs/figures/run_spi3.png differ diff --git a/bsp/stm32/docs/figures/save.png b/bsp/stm32/docs/figures/save.png new file mode 100644 index 0000000000000000000000000000000000000000..ce905c0fe4609870c61b36c6913870f6786d514f Binary files /dev/null and b/bsp/stm32/docs/figures/save.png differ diff --git a/bsp/stm32/docs/figures/scons_mdk5.png b/bsp/stm32/docs/figures/scons_mdk5.png new file mode 100644 index 0000000000000000000000000000000000000000..dbb833f028b0d79e99f8b546919b72e092565b1b Binary files /dev/null and b/bsp/stm32/docs/figures/scons_mdk5.png differ diff --git a/bsp/stm32/docs/figures/spi_flash.png b/bsp/stm32/docs/figures/spi_flash.png new file mode 100644 index 0000000000000000000000000000000000000000..b749928c2c7ec76521d9b79e1fc54d429e23baf1 Binary files /dev/null and b/bsp/stm32/docs/figures/spi_flash.png differ diff --git a/bsp/stm32/libraries/templates/figures/template_1.png b/bsp/stm32/docs/figures/template_1.png similarity index 100% rename from bsp/stm32/libraries/templates/figures/template_1.png rename to bsp/stm32/docs/figures/template_1.png diff --git a/bsp/stm32/libraries/templates/figures/template_2.png b/bsp/stm32/docs/figures/template_2.png similarity index 100% rename from bsp/stm32/libraries/templates/figures/template_2.png rename to bsp/stm32/docs/figures/template_2.png diff --git a/bsp/stm32/libraries/templates/figures/template_3.png b/bsp/stm32/docs/figures/template_3.png similarity index 100% rename from bsp/stm32/libraries/templates/figures/template_3.png rename to bsp/stm32/docs/figures/template_3.png diff --git a/bsp/stm32/docs/figures/update.png b/bsp/stm32/docs/figures/update.png new file mode 100644 index 0000000000000000000000000000000000000000..fa1531ae856f4fe9c0c68833938191843b0ee7e2 Binary files /dev/null and b/bsp/stm32/docs/figures/update.png differ diff --git a/bsp/stm32/libraries/templates/figures/xCubeMX_1.png b/bsp/stm32/docs/figures/xCubeMX_1.png similarity index 100% rename from bsp/stm32/libraries/templates/figures/xCubeMX_1.png rename to bsp/stm32/docs/figures/xCubeMX_1.png diff --git a/bsp/stm32/libraries/HAL_Drivers/config/f1/spi_config.h b/bsp/stm32/libraries/HAL_Drivers/config/f1/spi_config.h index 18f3190a0f799f90e627780610ae9368ac8f66d1..a910847e3971e605b37d2545207627088813b459 100644 --- a/bsp/stm32/libraries/HAL_Drivers/config/f1/spi_config.h +++ b/bsp/stm32/libraries/HAL_Drivers/config/f1/spi_config.h @@ -3,7 +3,6 @@ * * SPDX-License-Identifier: Apache-2.0 * - * * Change Logs: * Date Author Notes * 2018-11-06 SummerGift change to new framework diff --git a/bsp/stm32/libraries/HAL_Drivers/config/f1/uart_config.h b/bsp/stm32/libraries/HAL_Drivers/config/f1/uart_config.h index f34bff5fc7f66185e6f0d82d609fd01048451791..fd7482f4e6b6036d4ddf1f3c72877e0cb09a2fa8 100644 --- a/bsp/stm32/libraries/HAL_Drivers/config/f1/uart_config.h +++ b/bsp/stm32/libraries/HAL_Drivers/config/f1/uart_config.h @@ -3,7 +3,6 @@ * * SPDX-License-Identifier: Apache-2.0 * - * * Change Logs: * Date Author Notes * 2018-10-30 BalanceTWK change to new framework diff --git a/bsp/stm32/libraries/HAL_Drivers/config/f4/spi_config.h b/bsp/stm32/libraries/HAL_Drivers/config/f4/spi_config.h index a3c890b858e294209c221954c25f9c27b07cfab4..791c51bd2785f240c2a810ad32c7713fe8563b81 100644 --- a/bsp/stm32/libraries/HAL_Drivers/config/f4/spi_config.h +++ b/bsp/stm32/libraries/HAL_Drivers/config/f4/spi_config.h @@ -3,7 +3,6 @@ * * SPDX-License-Identifier: Apache-2.0 * - * * Change Logs: * Date Author Notes * 2018-11-06 SummerGift change to new framework diff --git a/bsp/stm32/libraries/HAL_Drivers/config/f4/uart_config.h b/bsp/stm32/libraries/HAL_Drivers/config/f4/uart_config.h index a0909ad5cbd578313d3af45b97c210863b8c46b9..d8fab2c3613054554088aea6909e4c5bf1ca1d88 100644 --- a/bsp/stm32/libraries/HAL_Drivers/config/f4/uart_config.h +++ b/bsp/stm32/libraries/HAL_Drivers/config/f4/uart_config.h @@ -3,7 +3,6 @@ * * SPDX-License-Identifier: Apache-2.0 * - * * Change Logs: * Date Author Notes * 2018-10-30 SummerGift change to new framework diff --git a/bsp/stm32/libraries/HAL_Drivers/config/l4/spi_config.h b/bsp/stm32/libraries/HAL_Drivers/config/l4/spi_config.h index 52bf207fd1268106e2ca73b082faf0c9465fe25c..054f55ff7792571c903616b3f34ced1470844996 100644 --- a/bsp/stm32/libraries/HAL_Drivers/config/l4/spi_config.h +++ b/bsp/stm32/libraries/HAL_Drivers/config/l4/spi_config.h @@ -3,7 +3,6 @@ * * SPDX-License-Identifier: Apache-2.0 * - * * Change Logs: * Date Author Notes * 2018-11-06 SummerGift change to new framework diff --git a/bsp/stm32/libraries/HAL_Drivers/config/l4/uart_config.h b/bsp/stm32/libraries/HAL_Drivers/config/l4/uart_config.h index 9b430bbcce922314545de4f4166ddfa369e6e840..46d5414f55ab017f6382c65108ca130651d44cf4 100644 --- a/bsp/stm32/libraries/HAL_Drivers/config/l4/uart_config.h +++ b/bsp/stm32/libraries/HAL_Drivers/config/l4/uart_config.h @@ -3,7 +3,6 @@ * * SPDX-License-Identifier: Apache-2.0 * - * * Change Logs: * Date Author Notes * 2018-11-06 SummerGift change to new framework diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_common.c b/bsp/stm32/libraries/HAL_Drivers/drv_common.c index 5a95937ac598824fed1f69fd826544ad289d4209..1f54ebc800881a775e1e356c7729746f8d4445df 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drv_common.c +++ b/bsp/stm32/libraries/HAL_Drivers/drv_common.c @@ -3,7 +3,6 @@ * * SPDX-License-Identifier: Apache-2.0 * - * * Change Logs: * Date Author Notes * 2018-11-7 SummerGift change to new framework diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_common.h b/bsp/stm32/libraries/HAL_Drivers/drv_common.h index bc052c184c770c424308947788340599a742e201..a897c178d3662af1a1bf170773316b5ee349de81 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drv_common.h +++ b/bsp/stm32/libraries/HAL_Drivers/drv_common.h @@ -3,7 +3,6 @@ * * SPDX-License-Identifier: Apache-2.0 * - * * Change Logs: * Date Author Notes * 2018-11-7 SummerGift change to new framework diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_config.h b/bsp/stm32/libraries/HAL_Drivers/drv_config.h index 30f860f7166ee41c22a132751317bcd0b307f3a8..33b94d2829ccffc6ea8a9090e1cd43855fef6595 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drv_config.h +++ b/bsp/stm32/libraries/HAL_Drivers/drv_config.h @@ -3,7 +3,6 @@ * * SPDX-License-Identifier: Apache-2.0 * - * * Change Logs: * Date Author Notes * 2018-10-30 SummerGift change to new framework diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_dma.h b/bsp/stm32/libraries/HAL_Drivers/drv_dma.h index d5bd45b51a8868ad68a91bd59dc373edffea23e5..62236ac3f855aaefd7cf39abb649cbe955986697 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drv_dma.h +++ b/bsp/stm32/libraries/HAL_Drivers/drv_dma.h @@ -3,7 +3,6 @@ * * SPDX-License-Identifier: Apache-2.0 * - * * Change Logs: * Date Author Notes * 2018-11-10 SummerGift change to new framework diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_emac.c b/bsp/stm32/libraries/HAL_Drivers/drv_emac.c index b28d31112a5e495a2177be36a82522e5a501d321..5b6c0eed99f1a196cfaf6cee089a169d0d8da69d 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drv_emac.c +++ b/bsp/stm32/libraries/HAL_Drivers/drv_emac.c @@ -3,7 +3,6 @@ * * SPDX-License-Identifier: Apache-2.0 * - * * Change Logs: * Date Author Notes * 2018-11-19 SummerGift first version diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_gpio.c b/bsp/stm32/libraries/HAL_Drivers/drv_gpio.c index 9207c2d468e987290c3fd6bfd2e503fb069333dd..d35c71c0e972549361ce5e24f0124c90af79641f 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drv_gpio.c +++ b/bsp/stm32/libraries/HAL_Drivers/drv_gpio.c @@ -3,7 +3,6 @@ * * SPDX-License-Identifier: Apache-2.0 * - * * Change Logs: * Date Author Notes * 2018-11-06 balanceTWK change to new framework diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_gpio.h b/bsp/stm32/libraries/HAL_Drivers/drv_gpio.h index 8b87cf5fd56ea8aae2fa4f0b34fdc172412ccff3..a62370cae4131f8e8b24c9896681dbc809f9b18d 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drv_gpio.h +++ b/bsp/stm32/libraries/HAL_Drivers/drv_gpio.h @@ -3,7 +3,6 @@ * * SPDX-License-Identifier: Apache-2.0 * - * * Change Logs: * Date Author Notes * 2018-11-06 balanceTWK change to new framework diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_qspi.c b/bsp/stm32/libraries/HAL_Drivers/drv_qspi.c index 5aad91a2bda73c09635cc6590bfd375afa09ffcf..5fa182899cb9f37c25b58af9cae25ce932458e3a 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drv_qspi.c +++ b/bsp/stm32/libraries/HAL_Drivers/drv_qspi.c @@ -3,7 +3,6 @@ * * SPDX-License-Identifier: Apache-2.0 * - * * Change Logs: * Date Author Notes * 2018-11-27 zylx change to new framework @@ -19,10 +18,7 @@ #define LOG_TAG "drv.qspi" #include -#if !defined(BSP_USING_QSPI) - #error "Please define at least one BSP_USING_QSPI" - /* this driver can be disabled at menuconfig ? RT-Thread Components ? Device Drivers */ -#endif +#if defined(BSP_USING_QSPI) struct stm32_hw_spi_cs { @@ -33,6 +29,9 @@ struct stm32_qspi_bus { QSPI_HandleTypeDef QSPI_Handler; char *bus_name; +#ifdef BSP_QSPI_USING_DMA + DMA_HandleTypeDef hdma_quadspi; +#endif }; struct rt_spi_bus _qspi_bus1; @@ -94,6 +93,33 @@ static int stm32_qspi_init(struct rt_qspi_device *device, struct rt_qspi_configu LOG_E("qspi init failed (%d)!", result); } +#ifdef BSP_QSPI_USING_DMA + /* QSPI interrupts must be enabled when using the HAL_QSPI_Receive_DMA */ + HAL_NVIC_SetPriority(QUADSPI_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(QUADSPI_IRQn); + HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn); + + /* init QSPI DMA */ + __HAL_RCC_DMA1_CLK_ENABLE(); + HAL_DMA_DeInit(qspi_bus->QSPI_Handler.hdma); + qspi_bus->hdma_quadspi.Instance = DMA1_Channel5; + qspi_bus->hdma_quadspi.Init.Request = DMA_REQUEST_5; + qspi_bus->hdma_quadspi.Init.Direction = DMA_PERIPH_TO_MEMORY; + qspi_bus->hdma_quadspi.Init.PeriphInc = DMA_PINC_DISABLE; + qspi_bus->hdma_quadspi.Init.MemInc = DMA_MINC_ENABLE; + qspi_bus->hdma_quadspi.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; + qspi_bus->hdma_quadspi.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; + qspi_bus->hdma_quadspi.Init.Mode = DMA_NORMAL; + qspi_bus->hdma_quadspi.Init.Priority = DMA_PRIORITY_LOW; + if (HAL_DMA_Init(&qspi_bus->hdma_quadspi) != HAL_OK) + { + LOG_E("qspi dma init failed (%d)!", result); + } + + __HAL_LINKDMA(&qspi_bus->QSPI_Handler,hdma,qspi_bus->hdma_quadspi); +#endif /* BSP_QSPI_USING_DMA */ + return result; } @@ -205,7 +231,6 @@ static rt_uint32_t qspixfer(struct rt_spi_device *device, struct rt_spi_message { if (HAL_QSPI_Transmit(&qspi_bus->QSPI_Handler, (rt_uint8_t *)sndb, 5000) == HAL_OK) { - len = length; } else @@ -222,12 +247,17 @@ static rt_uint32_t qspixfer(struct rt_spi_device *device, struct rt_spi_message } else if (rcvb)/* recv data */ { - qspi_send_cmd(qspi_bus, qspi_message); - +#ifdef BSP_QSPI_USING_DMA + if (HAL_QSPI_Receive_DMA(&qspi_bus->QSPI_Handler, rcvb) == HAL_OK) +#else if (HAL_QSPI_Receive(&qspi_bus->QSPI_Handler, rcvb, 5000) == HAL_OK) +#endif { len = length; +#ifdef BSP_QSPI_USING_DMA + while(qspi_bus->QSPI_Handler.RxXferCount != 0); +#endif } else { @@ -283,20 +313,22 @@ static int stm32_qspi_register_bus(struct stm32_qspi_bus *qspi_bus, const char * */ rt_err_t stm32_qspi_bus_attach_device(const char *bus_name, const char *device_name, rt_uint32_t pin, rt_uint8_t data_line_width, void (*enter_qspi_mode)(), void (*exit_qspi_mode)()) { + struct rt_qspi_device *qspi_device = RT_NULL; + struct stm32_hw_spi_cs *cs_pin = RT_NULL; rt_err_t result = RT_EOK; RT_ASSERT(bus_name != RT_NULL); RT_ASSERT(device_name != RT_NULL); RT_ASSERT(data_line_width == 1 || data_line_width == 2 || data_line_width == 4); - struct rt_qspi_device *qspi_device = (struct rt_qspi_device *)rt_malloc(sizeof(struct rt_qspi_device)); + qspi_device = (struct rt_qspi_device *)rt_malloc(sizeof(struct rt_qspi_device)); if (qspi_device == RT_NULL) { LOG_E("no memory, qspi bus attach device failed!"); result = RT_ENOMEM; goto __exit; } - struct stm32_hw_spi_cs *cs_pin = (struct stm32_hw_spi_cs *)rt_malloc(sizeof(struct stm32_hw_spi_cs)); + cs_pin = (struct stm32_hw_spi_cs *)rt_malloc(sizeof(struct stm32_hw_spi_cs)); if (qspi_device == RT_NULL) { LOG_E("no memory, qspi bus attach device failed!"); @@ -333,10 +365,35 @@ __exit: return result; } +#ifdef BSP_QSPI_USING_DMA +void QUADSPI_IRQHandler(void) +{ + /* enter interrupt */ + rt_interrupt_enter(); + + HAL_QSPI_IRQHandler(&_stm32_qspi_bus.QSPI_Handler); + + /* leave interrupt */ + rt_interrupt_leave(); +} + +void DMA1_Channel5_IRQHandler(void) +{ + /* enter interrupt */ + rt_interrupt_enter(); + + HAL_DMA_IRQHandler(&_stm32_qspi_bus.hdma_quadspi); + + /* leave interrupt */ + rt_interrupt_leave(); +} +#endif /* BSP_QSPI_USING_DMA */ + static int rt_hw_qspi_bus_init(void) { return stm32_qspi_register_bus(&_stm32_qspi_bus, "qspi1"); } INIT_BOARD_EXPORT(rt_hw_qspi_bus_init); +#endif /* BSP_USING_QSPI */ #endif /* RT_USING_QSPI */ diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_qspi.h b/bsp/stm32/libraries/HAL_Drivers/drv_qspi.h index c9d779a9bd125488e293bfcbcbb4a79d6aaaf8fd..28dbf437d10aa4d38395675833102196cc60a1e2 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drv_qspi.h +++ b/bsp/stm32/libraries/HAL_Drivers/drv_qspi.h @@ -3,7 +3,6 @@ * * SPDX-License-Identifier: Apache-2.0 * - * * Change Logs: * Date Author Notes * 2018-11-27 zylx change to new framework diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_spi.c b/bsp/stm32/libraries/HAL_Drivers/drv_spi.c index 45bd46b24f35c0315df436df4f5af175588b26a7..a07391a095818014744ece37af57788def950066 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drv_spi.c +++ b/bsp/stm32/libraries/HAL_Drivers/drv_spi.c @@ -3,7 +3,6 @@ * * SPDX-License-Identifier: Apache-2.0 * - * * Change Logs: * Date Author Notes * 2018-11-5 SummerGift change to new framework diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_spi.h b/bsp/stm32/libraries/HAL_Drivers/drv_spi.h index 34eee8d9f0aa00f09fd642328e19b47e85081312..710f3fa59c5eee3c00641aef32249395d2addfb0 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drv_spi.h +++ b/bsp/stm32/libraries/HAL_Drivers/drv_spi.h @@ -3,7 +3,6 @@ * * SPDX-License-Identifier: Apache-2.0 * - * * Change Logs: * Date Author Notes * 2018-11-5 SummerGift change to new framework diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_usart.c b/bsp/stm32/libraries/HAL_Drivers/drv_usart.c index d803f5558fce78d65a92e63e0e21bdb42ff57339..c54f304adad568886d4dda6dbca24c5f3feb5ef0 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drv_usart.c +++ b/bsp/stm32/libraries/HAL_Drivers/drv_usart.c @@ -3,7 +3,6 @@ * * SPDX-License-Identifier: Apache-2.0 * - * * Change Logs: * Date Author Notes * 2018-10-30 SummerGift change to new framework diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_usart.h b/bsp/stm32/libraries/HAL_Drivers/drv_usart.h index 451c72ad205a4030f606ca798969d5d183176873..1dc3b702f17e1745a8d030f25f8f9646e2700b58 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drv_usart.h +++ b/bsp/stm32/libraries/HAL_Drivers/drv_usart.h @@ -3,7 +3,6 @@ * * SPDX-License-Identifier: Apache-2.0 * - * * Change Logs: * Date Author Notes * 2018.10.30 SummerGift change to new framework diff --git a/bsp/stm32/libraries/templates/figures/Kconfig.png b/bsp/stm32/libraries/templates/figures/Kconfig.png deleted file mode 100644 index 29504e2f2753fabea59b7dc2f5a19d5761b27306..0000000000000000000000000000000000000000 Binary files a/bsp/stm32/libraries/templates/figures/Kconfig.png and /dev/null differ diff --git a/bsp/stm32/libraries/templates/stm32f10x/applications/main.c b/bsp/stm32/libraries/templates/stm32f10x/applications/main.c index 9b786fb7f1f97aef78364a2fd9c38d9402e1b4ba..22ff66584c65cbc2a72a25eeba29503f6707ea91 100644 --- a/bsp/stm32/libraries/templates/stm32f10x/applications/main.c +++ b/bsp/stm32/libraries/templates/stm32f10x/applications/main.c @@ -3,7 +3,6 @@ * * SPDX-License-Identifier: Apache-2.0 * - * * Change Logs: * Date Author Notes * 2018-11-06 SummerGift change to new framework diff --git a/bsp/stm32/libraries/templates/stm32f10x/board/board.c b/bsp/stm32/libraries/templates/stm32f10x/board/board.c index 5ffc0fe7513ec411490abe7a0e834100c03aa492..36c127c5b73902711cfbff3737281e5a8eaed29c 100644 --- a/bsp/stm32/libraries/templates/stm32f10x/board/board.c +++ b/bsp/stm32/libraries/templates/stm32f10x/board/board.c @@ -3,7 +3,6 @@ * * SPDX-License-Identifier: Apache-2.0 * - * * Change Logs: * Date Author Notes * 2018-11-06 SummerGift change to new framework diff --git a/bsp/stm32/libraries/templates/stm32f10x/board/board.h b/bsp/stm32/libraries/templates/stm32f10x/board/board.h index 164595a05d3774eebc18596be0f982ea2379b2ad..2c56c5548b4e690e4e64cb4372e44be68cac7657 100644 --- a/bsp/stm32/libraries/templates/stm32f10x/board/board.h +++ b/bsp/stm32/libraries/templates/stm32f10x/board/board.h @@ -3,7 +3,6 @@ * * SPDX-License-Identifier: Apache-2.0 * - * * Change Logs: * Date Author Notes * 2018-11-5 SummerGift change to new framework diff --git a/bsp/stm32/libraries/templates/stm32f10x/project.ewp b/bsp/stm32/libraries/templates/stm32f10x/project.ewp index 957c50b46cf13bc30cb146cafa39fa688d52c7d8..1e0457c86ac06814f4113b9425fa5c584aaf8402 100644 --- a/bsp/stm32/libraries/templates/stm32f10x/project.ewp +++ b/bsp/stm32/libraries/templates/stm32f10x/project.ewp @@ -651,7 +651,7 @@