From 02bd7c0f805f2d49c6753675783515f0555b5fb9 Mon Sep 17 00:00:00 2001 From: SummerGift Date: Tue, 25 Dec 2018 15:53:32 +0800 Subject: [PATCH] [bsp][stm32] add stm32f407-st-discovery bsp --- bsp/stm32/stm32f407-st-discovery/.config | 348 ++ bsp/stm32/stm32f407-st-discovery/.gitignore | 42 + bsp/stm32/stm32f407-st-discovery/Kconfig | 21 + bsp/stm32/stm32f407-st-discovery/README.md | 106 + bsp/stm32/stm32f407-st-discovery/SConscript | 14 + bsp/stm32/stm32f407-st-discovery/SConstruct | 58 + .../applications/SConscript | 12 + .../applications/main.c | 34 + .../board/CubeMX_Config/.mxproject | 13 + .../board/CubeMX_Config/CubeMX_Config.ioc | 174 + .../board/CubeMX_Config/Inc/main.h | 117 + .../CubeMX_Config/Inc/stm32f4xx_hal_conf.h | 451 +++ .../board/CubeMX_Config/Inc/stm32f4xx_it.h | 84 + .../board/CubeMX_Config/Src/main.c | 303 ++ .../CubeMX_Config/Src/stm32f4xx_hal_msp.c | 254 ++ .../board/CubeMX_Config/Src/stm32f4xx_it.c | 217 ++ .../CubeMX_Config/Src/system_stm32f4xx.c | 761 +++++ .../stm32f407-st-discovery/board/Kconfig | 60 + .../stm32f407-st-discovery/board/SConscript | 30 + .../stm32f407-st-discovery/board/board.c | 51 + .../stm32f407-st-discovery/board/board.h | 37 + .../board/linker_scripts/link.icf | 30 + .../board/linker_scripts/link.lds | 145 + .../board/linker_scripts/link.sct | 15 + .../stm32f407-st-discovery/figures/board.png | Bin 0 -> 389424 bytes bsp/stm32/stm32f407-st-discovery/project.ewd | 2834 +++++++++++++++++ bsp/stm32/stm32f407-st-discovery/project.ewp | 2263 +++++++++++++ bsp/stm32/stm32f407-st-discovery/project.eww | 10 + .../stm32f407-st-discovery/project.uvopt | 1200 +++++++ .../stm32f407-st-discovery/project.uvoptx | 959 ++++++ .../stm32f407-st-discovery/project.uvproj | 744 +++++ .../stm32f407-st-discovery/project.uvprojx | 725 +++++ bsp/stm32/stm32f407-st-discovery/rtconfig.h | 171 + bsp/stm32/stm32f407-st-discovery/rtconfig.py | 134 + bsp/stm32/stm32f407-st-discovery/template.ewp | 2031 ++++++++++++ bsp/stm32/stm32f407-st-discovery/template.eww | 10 + .../stm32f407-st-discovery/template.uvopt | 184 ++ .../stm32f407-st-discovery/template.uvoptx | 183 ++ .../stm32f407-st-discovery/template.uvproj | 407 +++ .../stm32f407-st-discovery/template.uvprojx | 387 +++ 40 files changed, 15619 insertions(+) create mode 100644 bsp/stm32/stm32f407-st-discovery/.config create mode 100644 bsp/stm32/stm32f407-st-discovery/.gitignore create mode 100644 bsp/stm32/stm32f407-st-discovery/Kconfig create mode 100644 bsp/stm32/stm32f407-st-discovery/README.md create mode 100644 bsp/stm32/stm32f407-st-discovery/SConscript create mode 100644 bsp/stm32/stm32f407-st-discovery/SConstruct create mode 100644 bsp/stm32/stm32f407-st-discovery/applications/SConscript create mode 100644 bsp/stm32/stm32f407-st-discovery/applications/main.c create mode 100644 bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/.mxproject create mode 100644 bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/CubeMX_Config.ioc create mode 100644 bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Inc/main.h create mode 100644 bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h create mode 100644 bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Inc/stm32f4xx_it.h create mode 100644 bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Src/main.c create mode 100644 bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c create mode 100644 bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Src/stm32f4xx_it.c create mode 100644 bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Src/system_stm32f4xx.c create mode 100644 bsp/stm32/stm32f407-st-discovery/board/Kconfig create mode 100644 bsp/stm32/stm32f407-st-discovery/board/SConscript create mode 100644 bsp/stm32/stm32f407-st-discovery/board/board.c create mode 100644 bsp/stm32/stm32f407-st-discovery/board/board.h create mode 100644 bsp/stm32/stm32f407-st-discovery/board/linker_scripts/link.icf create mode 100644 bsp/stm32/stm32f407-st-discovery/board/linker_scripts/link.lds create mode 100644 bsp/stm32/stm32f407-st-discovery/board/linker_scripts/link.sct create mode 100644 bsp/stm32/stm32f407-st-discovery/figures/board.png create mode 100644 bsp/stm32/stm32f407-st-discovery/project.ewd create mode 100644 bsp/stm32/stm32f407-st-discovery/project.ewp create mode 100644 bsp/stm32/stm32f407-st-discovery/project.eww create mode 100644 bsp/stm32/stm32f407-st-discovery/project.uvopt create mode 100644 bsp/stm32/stm32f407-st-discovery/project.uvoptx create mode 100644 bsp/stm32/stm32f407-st-discovery/project.uvproj create mode 100644 bsp/stm32/stm32f407-st-discovery/project.uvprojx create mode 100644 bsp/stm32/stm32f407-st-discovery/rtconfig.h create mode 100644 bsp/stm32/stm32f407-st-discovery/rtconfig.py create mode 100644 bsp/stm32/stm32f407-st-discovery/template.ewp create mode 100644 bsp/stm32/stm32f407-st-discovery/template.eww create mode 100644 bsp/stm32/stm32f407-st-discovery/template.uvopt create mode 100644 bsp/stm32/stm32f407-st-discovery/template.uvoptx create mode 100644 bsp/stm32/stm32f407-st-discovery/template.uvproj create mode 100644 bsp/stm32/stm32f407-st-discovery/template.uvprojx diff --git a/bsp/stm32/stm32f407-st-discovery/.config b/bsp/stm32/stm32f407-st-discovery/.config new file mode 100644 index 0000000000..0755a2d357 --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/.config @@ -0,0 +1,348 @@ +# +# Automatically generated file; DO NOT EDIT. +# RT-Thread Configuration +# + +# +# RT-Thread Kernel +# +CONFIG_RT_NAME_MAX=8 +# CONFIG_RT_USING_SMP is not set +CONFIG_RT_ALIGN_SIZE=4 +# CONFIG_RT_THREAD_PRIORITY_8 is not set +CONFIG_RT_THREAD_PRIORITY_32=y +# CONFIG_RT_THREAD_PRIORITY_256 is not set +CONFIG_RT_THREAD_PRIORITY_MAX=32 +CONFIG_RT_TICK_PER_SECOND=1000 +CONFIG_RT_USING_OVERFLOW_CHECK=y +CONFIG_RT_USING_HOOK=y +CONFIG_RT_USING_IDLE_HOOK=y +CONFIG_RT_IDEL_HOOK_LIST_SIZE=4 +CONFIG_IDLE_THREAD_STACK_SIZE=256 +# CONFIG_RT_USING_TIMER_SOFT is not set +CONFIG_RT_DEBUG=y +# CONFIG_RT_DEBUG_INIT_CONFIG is not set +# CONFIG_RT_DEBUG_THREAD_CONFIG is not set +# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set +# CONFIG_RT_DEBUG_IPC_CONFIG is not set +# CONFIG_RT_DEBUG_TIMER_CONFIG is not set +# CONFIG_RT_DEBUG_IRQ_CONFIG is not set +# CONFIG_RT_DEBUG_MEM_CONFIG is not set +# CONFIG_RT_DEBUG_SLAB_CONFIG is not set +# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set +# CONFIG_RT_DEBUG_MODULE_CONFIG is not set + +# +# Inter-Thread communication +# +CONFIG_RT_USING_SEMAPHORE=y +CONFIG_RT_USING_MUTEX=y +CONFIG_RT_USING_EVENT=y +CONFIG_RT_USING_MAILBOX=y +CONFIG_RT_USING_MESSAGEQUEUE=y +# CONFIG_RT_USING_SIGNALS is not set + +# +# Memory Management +# +CONFIG_RT_USING_MEMPOOL=y +# CONFIG_RT_USING_MEMHEAP is not set +# CONFIG_RT_USING_NOHEAP is not set +CONFIG_RT_USING_SMALL_MEM=y +# CONFIG_RT_USING_SLAB is not set +# CONFIG_RT_USING_MEMTRACE is not set +CONFIG_RT_USING_HEAP=y + +# +# Kernel Device Object +# +CONFIG_RT_USING_DEVICE=y +# CONFIG_RT_USING_DEVICE_OPS is not set +# CONFIG_RT_USING_INTERRUPT_INFO is not set +CONFIG_RT_USING_CONSOLE=y +CONFIG_RT_CONSOLEBUF_SIZE=128 +CONFIG_RT_CONSOLE_DEVICE_NAME="uart1" +CONFIG_RT_VER_NUM=0x40000 +CONFIG_ARCH_ARM=y +CONFIG_ARCH_ARM_CORTEX_M=y +CONFIG_ARCH_ARM_CORTEX_M4=y +# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set + +# +# RT-Thread Components +# +CONFIG_RT_USING_COMPONENTS_INIT=y +CONFIG_RT_USING_USER_MAIN=y +CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048 +CONFIG_RT_MAIN_THREAD_PRIORITY=10 + +# +# C++ features +# +# CONFIG_RT_USING_CPLUSPLUS is not set + +# +# Command shell +# +CONFIG_RT_USING_FINSH=y +CONFIG_FINSH_THREAD_NAME="tshell" +CONFIG_FINSH_USING_HISTORY=y +CONFIG_FINSH_HISTORY_LINES=5 +CONFIG_FINSH_USING_SYMTAB=y +CONFIG_FINSH_USING_DESCRIPTION=y +# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set +CONFIG_FINSH_THREAD_PRIORITY=20 +CONFIG_FINSH_THREAD_STACK_SIZE=2048 +CONFIG_FINSH_CMD_SIZE=80 +# CONFIG_FINSH_USING_AUTH is not set +CONFIG_FINSH_USING_MSH=y +CONFIG_FINSH_USING_MSH_DEFAULT=y +CONFIG_FINSH_USING_MSH_ONLY=y +CONFIG_FINSH_ARG_MAX=10 + +# +# Device virtual file system +# +# CONFIG_RT_USING_DFS is not set + +# +# Device Drivers +# +CONFIG_RT_USING_DEVICE_IPC=y +CONFIG_RT_PIPE_BUFSZ=512 +CONFIG_RT_USING_SERIAL=y +CONFIG_RT_SERIAL_USING_DMA=y +# CONFIG_RT_USING_CAN is not set +# CONFIG_RT_USING_HWTIMER is not set +# CONFIG_RT_USING_CPUTIME is not set +# CONFIG_RT_USING_I2C is not set +CONFIG_RT_USING_PIN=y +# CONFIG_RT_USING_ADC is not set +# CONFIG_RT_USING_PWM is not set +# CONFIG_RT_USING_MTD_NOR is not set +# CONFIG_RT_USING_MTD_NAND is not set +# CONFIG_RT_USING_MTD is not set +# CONFIG_RT_USING_PM is not set +# CONFIG_RT_USING_RTC is not set +# CONFIG_RT_USING_SDIO is not set +# CONFIG_RT_USING_SPI is not set +# CONFIG_RT_USING_WDT is not set +# CONFIG_RT_USING_AUDIO is not set + +# +# Using WiFi +# +# CONFIG_RT_USING_WIFI is not set + +# +# Using USB +# +# CONFIG_RT_USING_USB_HOST is not set +# CONFIG_RT_USING_USB_DEVICE is not set + +# +# POSIX layer and C standard library +# +# CONFIG_RT_USING_LIBC is not set +# CONFIG_RT_USING_PTHREADS is not set + +# +# Network +# + +# +# Socket abstraction layer +# +# CONFIG_RT_USING_SAL is not set + +# +# light weight TCP/IP stack +# +# CONFIG_RT_USING_LWIP is not set + +# +# Modbus master and slave stack +# +# CONFIG_RT_USING_MODBUS is not set + +# +# AT commands +# +# CONFIG_RT_USING_AT is not set + +# +# VBUS(Virtual Software BUS) +# +# CONFIG_RT_USING_VBUS is not set + +# +# Utilities +# +# CONFIG_RT_USING_LOGTRACE is not set +# CONFIG_RT_USING_RYM is not set +# CONFIG_RT_USING_ULOG is not set +# CONFIG_RT_USING_UTEST is not set + +# +# ARM CMSIS +# +# CONFIG_RT_USING_CMSIS_OS is not set +# CONFIG_RT_USING_RTT_CMSIS is not set +# CONFIG_RT_USING_LWP is not set + +# +# RT-Thread online packages +# + +# +# IoT - internet of things +# +# CONFIG_PKG_USING_PAHOMQTT is not set +# CONFIG_PKG_USING_WEBCLIENT is not set +# CONFIG_PKG_USING_WEBNET is not set +# CONFIG_PKG_USING_MONGOOSE is not set +# CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_CJSON is not set +# CONFIG_PKG_USING_JSMN is not set +# CONFIG_PKG_USING_LJSON is not set +# CONFIG_PKG_USING_EZXML is not set +# CONFIG_PKG_USING_NANOPB is not set + +# +# Wi-Fi +# + +# +# Marvell WiFi +# +# CONFIG_PKG_USING_WLANMARVELL is not set + +# +# Wiced WiFi +# +# CONFIG_PKG_USING_WLAN_WICED is not set +# CONFIG_PKG_USING_COAP is not set +# CONFIG_PKG_USING_NOPOLL is not set +# CONFIG_PKG_USING_NETUTILS is not set +# CONFIG_PKG_USING_AT_DEVICE is not set +# CONFIG_PKG_USING_WIZNET is not set + +# +# IoT Cloud +# +# CONFIG_PKG_USING_ONENET is not set +# CONFIG_PKG_USING_GAGENT_CLOUD is not set +# CONFIG_PKG_USING_ALI_IOTKIT is not set +# CONFIG_PKG_USING_AZURE is not set +# CONFIG_PKG_USING_TENCENT_IOTKIT is not set + +# +# security packages +# +# CONFIG_PKG_USING_MBEDTLS is not set +# CONFIG_PKG_USING_libsodium is not set +# CONFIG_PKG_USING_TINYCRYPT is not set + +# +# language packages +# +# CONFIG_PKG_USING_LUA is not set +# CONFIG_PKG_USING_JERRYSCRIPT is not set +# CONFIG_PKG_USING_MICROPYTHON is not set + +# +# multimedia packages +# +# CONFIG_PKG_USING_OPENMV is not set +# CONFIG_PKG_USING_MUPDF is not set + +# +# tools packages +# +# CONFIG_PKG_USING_CMBACKTRACE is not set +# CONFIG_PKG_USING_EASYFLASH is not set +# CONFIG_PKG_USING_EASYLOGGER is not set +# CONFIG_PKG_USING_SYSTEMVIEW is not set +# CONFIG_PKG_USING_RDB is not set +# CONFIG_PKG_USING_QRCODE is not set +# CONFIG_PKG_USING_ULOG_EASYFLASH is not set + +# +# system packages +# +# CONFIG_PKG_USING_GUIENGINE is not set +# CONFIG_PKG_USING_PERSIMMON is not set +# CONFIG_PKG_USING_CAIRO is not set +# CONFIG_PKG_USING_PIXMAN is not set +# CONFIG_PKG_USING_LWEXT4 is not set +# CONFIG_PKG_USING_PARTITION is not set +# CONFIG_PKG_USING_FAL is not set +# CONFIG_PKG_USING_SQLITE is not set +# CONFIG_PKG_USING_RTI is not set +# CONFIG_PKG_USING_LITTLEVGL2RTT is not set +# CONFIG_PKG_USING_CMSIS is not set +# CONFIG_PKG_USING_DFS_YAFFS is not set +# CONFIG_PKG_USING_LITTLEFS is not set + +# +# peripheral libraries and drivers +# +# CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_SHT2X is not set +# CONFIG_PKG_USING_AHT10 is not set +# CONFIG_PKG_USING_AP3216C is not set +# CONFIG_PKG_USING_STM32_SDIO is not set +# CONFIG_PKG_USING_ICM20608 is not set +# CONFIG_PKG_USING_U8G2 is not set +# CONFIG_PKG_USING_BUTTON is not set +# CONFIG_PKG_USING_MPU6XXX is not set +# CONFIG_PKG_USING_PCF8574 is not set +# CONFIG_PKG_USING_KENDRYTE_SDK is not set + +# +# miscellaneous packages +# +# CONFIG_PKG_USING_LIBCSV is not set +# CONFIG_PKG_USING_OPTPARSE is not set +# CONFIG_PKG_USING_FASTLZ is not set +# CONFIG_PKG_USING_MINILZO is not set +# CONFIG_PKG_USING_QUICKLZ is not set +# CONFIG_PKG_USING_MULTIBUTTON is not set +# CONFIG_PKG_USING_CANFESTIVAL is not set +# CONFIG_PKG_USING_ZLIB is not set +# CONFIG_PKG_USING_DSTR is not set +# CONFIG_PKG_USING_TINYFRAME is not set + +# +# samples: kernel and components samples +# +# CONFIG_PKG_USING_KERNEL_SAMPLES is not set +# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set +# CONFIG_PKG_USING_NETWORK_SAMPLES is not set +# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set +# CONFIG_PKG_USING_HELLO is not set +CONFIG_SOC_FAMILY_STM32=y +CONFIG_SOC_SERIES_STM32F4=y + +# +# Hardware Drivers Config +# +CONFIG_SOC_STM32F407VG=y + +# +# Onboard Peripheral Drivers +# + +# +# On-chip Peripheral Drivers +# +CONFIG_BSP_USING_GPIO=y +CONFIG_BSP_USING_UART1=y +# CONFIG_BSP_UART_USING_DMA_RX is not set +# CONFIG_BSP_USING_SPI1 is not set +# CONFIG_BSP_SPI_USING_DMA is not set +# CONFIG_BSP_USING_I2C1 is not set + +# +# Board extended module Drivers +# diff --git a/bsp/stm32/stm32f407-st-discovery/.gitignore b/bsp/stm32/stm32f407-st-discovery/.gitignore new file mode 100644 index 0000000000..7221bde019 --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/.gitignore @@ -0,0 +1,42 @@ +*.pyc +*.map +*.dblite +*.elf +*.bin +*.hex +*.axf +*.exe +*.pdb +*.idb +*.ilk +*.old +build +Debug +documentation/html +packages/ +*~ +*.o +*.obj +*.out +*.bak +*.dep +*.lib +*.i +*.d +.DS_Stor* +.config 3 +.config 4 +.config 5 +Midea-X1 +*.uimg +GPATH +GRTAGS +GTAGS +.vscode +JLinkLog.txt +JLinkSettings.ini +DebugConfig/ +RTE/ +settings/ +*.uvguix* +cconfig.h diff --git a/bsp/stm32/stm32f407-st-discovery/Kconfig b/bsp/stm32/stm32f407-st-discovery/Kconfig new file mode 100644 index 0000000000..d174bcc585 --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/Kconfig @@ -0,0 +1,21 @@ +mainmenu "RT-Thread Configuration" + +config $BSP_DIR + string + option env="BSP_ROOT" + default "." + +config $RTT_DIR + string + option env="RTT_ROOT" + default "../../.." + +config $PKGS_DIR + string + option env="PKGS_ROOT" + default "packages" + +source "$RTT_DIR/Kconfig" +source "$PKGS_DIR/Kconfig" +source "../libraries/Kconfig" +source "board/Kconfig" diff --git a/bsp/stm32/stm32f407-st-discovery/README.md b/bsp/stm32/stm32f407-st-discovery/README.md new file mode 100644 index 0000000000..bf9e86a2aa --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/README.md @@ -0,0 +1,106 @@ +# STM32F4DISCOVERY 开发板 BSP 说明 + +## 简介 + +本文档为 RT-Thread 开发团队为 STM32F4DISCOVERY 开发板提供的 BSP (板级支持包) 说明。 + +主要内容如下: + +- 开发板资源介绍 +- BSP 快速上手 +- 进阶使用方法 + +通过阅读快速上手章节开发者可以快速地上手该 BSP,将 RT-Thread 运行在开发板上。在进阶使用指南章节,将会介绍更多高级功能,帮助开发者利用 RT-Thread 驱动更多板载资源。 + +## 开发板介绍 + +STM32F4DISCOVERY 是 ST 推出的一款基于 ARM Cortex-M4 内核的开发板,最高主频为 168Mhz,该开发板具有丰富的板载资源,可以充分发挥 STM32F407 的芯片性能。 + +开发板外观如下图所示: + +![board](figures/board.png) + +该开发板常用 **板载资源** 如下: + +- MCU:STM32F407VGT6,主频 168MHz,1024KB FLASH ,192KB RAM +- 常用外设 + - LED:4个用户 LEDs, LD3(orange,PD13),LD4(green,PD12),LD5 (red,PD14) and LD6 (blue,PD15)。 + - 按键,2个,Reset 和 User。 +- 调试接口,板载 ST-LINK/V2调试器,使用SWD调试模式。 + +开发板更多详细信息请参考 ST 官方 [STM32F4DISCOVERY开发板介绍](https://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-eval-tools/stm32-mcu-eval-tools/stm32-mcu-discovery-kits/stm32f4discovery.html)。 + +## 外设支持 + +本 BSP 目前对外设的支持情况如下: + +| **片上外设** | **支持情况** | **备注** | +| :------------ | :----------: | :-----------------------------------: | +| GPIO | 支持 | PA0, PA1... PH1 ---> PIN: 0, 1...144 | +| UART | 支持 | UART1 | +| SPI | 支持 | SPI1 | +| I2C | 支持 | 软件 I2C | + +## 使用说明 + +使用说明分为如下两个章节: + +- 快速上手 + + 本章节是为刚接触 RT-Thread 的新手准备的使用说明,遵循简单的步骤即可将 RT-Thread 操作系统运行在该开发板上,看到实验效果 。 + +- 进阶使用 + + 本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。 + + +### 快速上手 + +本 BSP 为开发者提供 MDK4、MDK5 和 IAR 工程,并且支持 GCC 开发环境。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。 + +#### 硬件连接 + +使用数据线连接开发板到 PC,打开电源开关。 + +#### 编译下载 + +双击 project.uvprojx 文件,打开 MDK5 工程,编译并下载程序到开发板。 + +> 工程默认配置使用 ST-LINK 下载程序,在通过ST-LINK 连接开发板的基础上,点击下载按钮即可下载程序到开发板 + +#### 运行结果 + +下载程序成功之后,系统会自动运行,观察开发板上 LED 的运行效果,红色 LD1 和 LD2 常亮,红色 LD5 会周期性闪烁。 + +连接开发板对应串口到 PC , 在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以看到 RT-Thread 的输出信息: + +```c + \ | / +- RT - Thread Operating System + / | \ 3.1.1 build Nov 19 2018 + 2006 - 2018 Copyright by rt-thread team +msh > +``` +### 进阶使用 + +此 BSP 默认只开启了 GPIO 和 串口1 的功能,更多高级功能,需要利用 ENV 工具对 BSP 进行配置,步骤如下: + +1. 在 bsp 下打开 env 工具。 + +2. 输入`menuconfig`命令配置工程,配置好之后保存退出。 + +3. 输入`pkgs --update`命令更新软件包。 + +4. 输入`scons --target=mdk4/mdk5/iar` 命令重新生成工程。 + +本章节更多详细的介绍请参考 [BSP 进阶使用指南](../docs/BSP进阶使用指南.md)。 + +## 注意事项 + +暂无 + +## 联系人信息 + +维护人: + +- [misonyo](https://github.com/misonyo) \ No newline at end of file diff --git a/bsp/stm32/stm32f407-st-discovery/SConscript b/bsp/stm32/stm32f407-st-discovery/SConscript new file mode 100644 index 0000000000..fe0ae941ae --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/SConscript @@ -0,0 +1,14 @@ +# for module compiling +import os +Import('RTT_ROOT') + +cwd = str(Dir('#')) +objs = [] +list = os.listdir(cwd) + +for d in list: + path = os.path.join(cwd, d) + if os.path.isfile(os.path.join(path, 'SConscript')): + objs = objs + SConscript(os.path.join(d, 'SConscript')) + +Return('objs') diff --git a/bsp/stm32/stm32f407-st-discovery/SConstruct b/bsp/stm32/stm32f407-st-discovery/SConstruct new file mode 100644 index 0000000000..8ecf112e9c --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/SConstruct @@ -0,0 +1,58 @@ +import os +import sys +import rtconfig + +if os.getenv('RTT_ROOT'): + RTT_ROOT = os.getenv('RTT_ROOT') +else: + RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..') + +sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')] +try: + from building import * +except: + print('Cannot found RT-Thread root directory, please check RTT_ROOT') + print(RTT_ROOT) + exit(-1) + +TARGET = 'rtthread.' + rtconfig.TARGET_EXT + +env = Environment(tools = ['mingw'], + AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS, + CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS, + AR = rtconfig.AR, ARFLAGS = '-rc', + LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS) +env.PrependENVPath('PATH', rtconfig.EXEC_PATH) + +if rtconfig.PLATFORM == 'iar': + env.Replace(CCCOM = ['$CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES']) + env.Replace(ARFLAGS = ['']) + env.Replace(LINKCOM = ['$LINK $SOURCES $LINKFLAGS -o $TARGET --map rtthread.map']) + +Export('RTT_ROOT') +Export('rtconfig') + +SDK_ROOT = os.path.abspath('./') + +if os.path.exists(SDK_ROOT + '/libraries'): + libraries_path_prefix = SDK_ROOT + '/libraries' +else: + libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries' + +SDK_LIB = libraries_path_prefix +Export('SDK_LIB') + +# prepare building environment +objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False) + +stm32_library = 'STM32F4xx_HAL' +rtconfig.BSP_LIBRARY_TYPE = stm32_library + +# include libraries +objs.extend(SConscript(os.path.join(libraries_path_prefix, stm32_library, 'SConscript'))) + +# include drivers +objs.extend(SConscript(os.path.join(libraries_path_prefix, 'HAL_Drivers', 'SConscript'))) + +# make a building +DoBuilding(TARGET, objs) diff --git a/bsp/stm32/stm32f407-st-discovery/applications/SConscript b/bsp/stm32/stm32f407-st-discovery/applications/SConscript new file mode 100644 index 0000000000..6f66f7ab73 --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/applications/SConscript @@ -0,0 +1,12 @@ +import rtconfig +from building import * + +cwd = GetCurrentDir() +CPPPATH = [cwd, str(Dir('#'))] +src = Split(""" +main.c +""") + +group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH) + +Return('group') diff --git a/bsp/stm32/stm32f407-st-discovery/applications/main.c b/bsp/stm32/stm32f407-st-discovery/applications/main.c new file mode 100644 index 0000000000..26a0e4ab1a --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/applications/main.c @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-11-06 misonyo first version + */ + +#include +#include +#include +#include "drv_gpio.h" + +/* defined the LED0 pin: PD14 */ +#define LED0_PIN GET_PIN(D, 14) + +int main(void) +{ + int count = 1; + /* set LED0 pin mode to output */ + rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT); + + while (count++) + { + rt_pin_write(LED0_PIN, PIN_HIGH); + rt_thread_mdelay(500); + rt_pin_write(LED0_PIN, PIN_LOW); + rt_thread_mdelay(500); + } + + return RT_EOK; +} diff --git a/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/.mxproject b/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/.mxproject new file mode 100644 index 0000000000..1948bffd33 --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/.mxproject @@ -0,0 +1,13 @@ +[PreviousGenFiles] +HeaderPath=D:/repository/BspFramework/rt-thread/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Inc +HeaderFiles=usb_host.h;usbh_conf.h;usbh_platform.h;stm32f4xx_it.h;stm32f4xx_hal_conf.h;main.h; +SourcePath=D:/repository/BspFramework/rt-thread/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Src +SourceFiles=usb_host.c;usbh_conf.c;usbh_platform.c;stm32f4xx_it.c;stm32f4xx_hal_msp.c;main.c; + +[PreviousLibFiles] +LibFiles=Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;Drivers/CMSIS/Include/arm_common_tables.h;Drivers/CMSIS/Include/arm_const_structs.h;Drivers/CMSIS/Include/arm_math.h;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/cmsis_armcc_V6.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/core_cmFunc.h;Drivers/CMSIS/Include/core_cmInstr.h;Drivers/CMSIS/Include/core_cmSimd.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_sc300.h; + +[PreviousUsedKeilFiles] +SourceFiles=..\Src\main.c;..\Src\stm32f4xx_it.c;..\Src\stm32f4xx_hal_msp.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;../\Src/system_stm32f4xx.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;../\Src/system_stm32f4xx.c;../Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;null; +HeaderPath=..\Drivers\STM32F4xx_HAL_Driver\Inc;..\Drivers\STM32F4xx_HAL_Driver\Inc\Legacy;..\Drivers\CMSIS\Device\ST\STM32F4xx\Include;..\Drivers\CMSIS\Include;..\Inc; + diff --git a/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/CubeMX_Config.ioc b/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/CubeMX_Config.ioc new file mode 100644 index 0000000000..195ad7beb1 --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/CubeMX_Config.ioc @@ -0,0 +1,174 @@ +#MicroXplorer Configuration settings - do not modify +File.Version=6 +KeepUserPlacement=true +Mcu.Family=STM32F4 +Mcu.IP0=NVIC +Mcu.IP1=RCC +Mcu.IP2=SPI1 +Mcu.IP3=SYS +Mcu.IP4=USART1 +Mcu.IPNb=5 +Mcu.Name=STM32F407V(E-G)Tx +Mcu.Package=LQFP100 +Mcu.Pin0=PH0-OSC_IN +Mcu.Pin1=PH1-OSC_OUT +Mcu.Pin10=VP_SYS_VS_Systick +Mcu.Pin2=PA5 +Mcu.Pin3=PA6 +Mcu.Pin4=PA7 +Mcu.Pin5=PA13 +Mcu.Pin6=PA14 +Mcu.Pin7=PB3 +Mcu.Pin8=PB6 +Mcu.Pin9=PB7 +Mcu.PinsNb=11 +Mcu.ThirdPartyNb=0 +Mcu.UserConstants= +Mcu.UserName=STM32F407VGTx +MxCube.Version=5.0.0 +MxDb.Version=DB.5.0.0 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:true +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:true +NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:true +NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:true +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:true +NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:true +NVIC.PriorityGroup=NVIC_PRIORITYGROUP_0 +NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:true +NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:true +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:true +PA13.GPIOParameters=GPIO_Label +PA13.GPIO_Label=SWDIO +PA13.Locked=true +PA13.Mode=Serial_Wire +PA13.Signal=SYS_JTMS-SWDIO +PA14.GPIOParameters=GPIO_Label +PA14.GPIO_Label=SWCLK +PA14.Locked=true +PA14.Mode=Serial_Wire +PA14.Signal=SYS_JTCK-SWCLK +PA5.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode +PA5.GPIO_Label=SPI1_SCK [LIS302DL_SCL/SPC] +PA5.GPIO_Mode=GPIO_MODE_AF_PP +PA5.GPIO_PuPd=GPIO_NOPULL +PA5.GPIO_Speed=GPIO_SPEED_FREQ_LOW +PA5.Locked=true +PA5.Mode=Full_Duplex_Master +PA5.Signal=SPI1_SCK +PA6.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode +PA6.GPIO_Label=SPI1_MISO [LIS302DL_SDO] +PA6.GPIO_Mode=GPIO_MODE_AF_PP +PA6.GPIO_PuPd=GPIO_NOPULL +PA6.GPIO_Speed=GPIO_SPEED_FREQ_LOW +PA6.Locked=true +PA6.Mode=Full_Duplex_Master +PA6.Signal=SPI1_MISO +PA7.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode +PA7.GPIO_Label=SPI1_MOSI [LIS302DL_SDA/SDI/SDO] +PA7.GPIO_Mode=GPIO_MODE_AF_PP +PA7.GPIO_PuPd=GPIO_NOPULL +PA7.GPIO_Speed=GPIO_SPEED_FREQ_LOW +PA7.Locked=true +PA7.Mode=Full_Duplex_Master +PA7.Signal=SPI1_MOSI +PB3.GPIOParameters=GPIO_Label +PB3.GPIO_Label=SWO +PB3.Locked=true +PB3.Signal=SYS_JTDO-SWO +PB6.Mode=Asynchronous +PB6.Signal=USART1_TX +PB7.Mode=Asynchronous +PB7.Signal=USART1_RX +PCC.Checker=false +PCC.Line=STM32F407/417 +PCC.MCU=STM32F407V(E-G)Tx +PCC.PartNumber=STM32F407VGTx +PCC.Seq0=0 +PCC.Series=STM32F4 +PCC.Temperature=25 +PCC.Vdd=3.3 +PH0-OSC_IN.GPIOParameters=GPIO_Label +PH0-OSC_IN.GPIO_Label=PH0-OSC_IN +PH0-OSC_IN.Locked=true +PH0-OSC_IN.Mode=HSE-External-Oscillator +PH0-OSC_IN.Signal=RCC_OSC_IN +PH1-OSC_OUT.GPIOParameters=GPIO_Label +PH1-OSC_OUT.GPIO_Label=PH1-OSC_OUT +PH1-OSC_OUT.Locked=true +PH1-OSC_OUT.Mode=HSE-External-Oscillator +PH1-OSC_OUT.Signal=RCC_OSC_OUT +PinOutPanel.RotationAngle=0 +ProjectManager.AskForMigrate=true +ProjectManager.BackupPrevious=false +ProjectManager.CompilerOptimize=6 +ProjectManager.ComputerToolchain=false +ProjectManager.CoupleFile=false +ProjectManager.CustomerFirmwarePackage=..\\..\\..\\..\\..\\..\\..\\..\\board\\stm32cubefx-repo\\STM32Cube_FW_F4_V1.11.0 +ProjectManager.DefaultFWLocation=false +ProjectManager.DeletePrevious=true +ProjectManager.DeviceId=STM32F407VGTx +ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.22.0 +ProjectManager.FreePins=false +ProjectManager.HalAssertFull=false +ProjectManager.HeapSize=0x200 +ProjectManager.KeepUserCode=true +ProjectManager.LastFirmware=false +ProjectManager.LibraryCopy=0 +ProjectManager.MainLocation=Src +ProjectManager.NoMain=false +ProjectManager.PreviousToolchain= +ProjectManager.ProjectBuild=false +ProjectManager.ProjectFileName=CubeMX_Config.ioc +ProjectManager.ProjectName=CubeMX_Config +ProjectManager.StackSize=0x400 +ProjectManager.TargetToolchain=MDK-ARM V5 +ProjectManager.ToolChainLocation= +ProjectManager.UnderRoot=false +ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_SPI1_Init-SPI1-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true +RCC.48MHZClocksFreq_Value=48000000 +RCC.AHBFreq_Value=168000000 +RCC.APB1CLKDivider=RCC_HCLK_DIV4 +RCC.APB1Freq_Value=42000000 +RCC.APB1TimFreq_Value=84000000 +RCC.APB2CLKDivider=RCC_HCLK_DIV2 +RCC.APB2Freq_Value=84000000 +RCC.APB2TimFreq_Value=168000000 +RCC.CortexFreq_Value=168000000 +RCC.EthernetFreq_Value=168000000 +RCC.FCLKCortexFreq_Value=168000000 +RCC.FamilyName=M +RCC.HCLKFreq_Value=168000000 +RCC.HSE_VALUE=8000000 +RCC.HSI_VALUE=16000000 +RCC.I2SClocksFreq_Value=96000000 +RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSE_VALUE,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLM,PLLN,PLLQ,PLLQCLKFreq_Value,PLLSourceVirtual,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VcooutputI2S +RCC.LSE_VALUE=32768 +RCC.LSI_VALUE=32000 +RCC.MCO2PinFreq_Value=168000000 +RCC.PLLCLKFreq_Value=168000000 +RCC.PLLM=8 +RCC.PLLN=336 +RCC.PLLQ=7 +RCC.PLLQCLKFreq_Value=48000000 +RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE +RCC.RTCFreq_Value=32000 +RCC.RTCHSEDivFreq_Value=4000000 +RCC.SYSCLKFreq_VALUE=168000000 +RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK +RCC.VCOI2SOutputFreq_Value=192000000 +RCC.VCOInputFreq_Value=1000000 +RCC.VCOOutputFreq_Value=336000000 +RCC.VcooutputI2S=96000000 +SPI1.BaudRatePrescaler-Full_Duplex_Master=SPI_BAUDRATEPRESCALER_2 +SPI1.CalculateBaudRate-Full_Duplex_Master=42.0 MBits/s +SPI1.Direction=SPI_DIRECTION_2LINES +SPI1.IPParameters=CalculateBaudRate-Full_Duplex_Master,BaudRatePrescaler-Full_Duplex_Master,Mode-Full_Duplex_Master,Mode,VirtualType,Direction +SPI1.Mode=SPI_MODE_MASTER +SPI1.Mode-Full_Duplex_Master=SPI_MODE_MASTER +SPI1.VirtualType=VM_MASTER +USART1.IPParameters=VirtualMode +USART1.VirtualMode=VM_ASYNC +VP_SYS_VS_Systick.Mode=SysTick +VP_SYS_VS_Systick.Signal=SYS_VS_Systick +board=STM32F4DISCOVERY +boardIOC=true diff --git a/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Inc/main.h b/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Inc/main.h new file mode 100644 index 0000000000..5ad838980c --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Inc/main.h @@ -0,0 +1,117 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.h + * @brief : Header for main.c file. + * This file contains the common defines of the application. + ****************************************************************************** + * This notice applies to any and all portions of this file + * that are not between comment pairs USER CODE BEGIN and + * USER CODE END. Other portions of this file, whether + * inserted by the user or by software development tools + * are owned by their respective copyright owners. + * + * Copyright (c) 2018 STMicroelectronics International N.V. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted, provided that the following conditions are met: + * + * 1. Redistribution of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of STMicroelectronics nor the names of other + * contributors to this software may be used to endorse or promote products + * derived from this software without specific written permission. + * 4. This software, including modifications and/or derivative works of this + * software, must execute solely and exclusively on microcontroller or + * microprocessor devices manufactured by or for STMicroelectronics. + * 5. Redistribution and use of this software other than as permitted under + * this license is void and will automatically terminate your rights under + * this license. + * + * THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY + * RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT + * SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, + * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __MAIN_H +#define __MAIN_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f4xx_hal.h" + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Exported types ------------------------------------------------------------*/ +/* USER CODE BEGIN ET */ + +/* USER CODE END ET */ + +/* Exported constants --------------------------------------------------------*/ +/* USER CODE BEGIN EC */ + +/* USER CODE END EC */ + +/* Exported macro ------------------------------------------------------------*/ +/* USER CODE BEGIN EM */ + +/* USER CODE END EM */ + +/* Exported functions prototypes ---------------------------------------------*/ +void Error_Handler(void); + +/* USER CODE BEGIN EFP */ + +/* USER CODE END EFP */ + +/* Private defines -----------------------------------------------------------*/ +#define PH0_OSC_IN_Pin GPIO_PIN_0 +#define PH0_OSC_IN_GPIO_Port GPIOH +#define PH1_OSC_OUT_Pin GPIO_PIN_1 +#define PH1_OSC_OUT_GPIO_Port GPIOH +#define SPI1_SCK_Pin GPIO_PIN_5 +#define SPI1_SCK_GPIO_Port GPIOA +#define SPI1_MISO_Pin GPIO_PIN_6 +#define SPI1_MISO_GPIO_Port GPIOA +#define SPI1_MOSI_Pin GPIO_PIN_7 +#define SPI1_MOSI_GPIO_Port GPIOA +#define SWDIO_Pin GPIO_PIN_13 +#define SWDIO_GPIO_Port GPIOA +#define SWCLK_Pin GPIO_PIN_14 +#define SWCLK_GPIO_Port GPIOA +#define SWO_Pin GPIO_PIN_3 +#define SWO_GPIO_Port GPIOB +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +#ifdef __cplusplus +} +#endif + +#endif /* __MAIN_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h b/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h new file mode 100644 index 0000000000..dd1d73c186 --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h @@ -0,0 +1,451 @@ +/** + ****************************************************************************** + * @file stm32f4xx_hal_conf.h + * @brief HAL configuration file. + ****************************************************************************** + * @attention + * + *

© COPYRIGHT(c) 2018 STMicroelectronics

+ * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of STMicroelectronics nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F4xx_HAL_CONF_H +#define __STM32F4xx_HAL_CONF_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ + +/* ########################## Module Selection ############################## */ +/** + * @brief This is the list of modules to be used in the HAL driver + */ +#define HAL_MODULE_ENABLED + +/* #define HAL_ADC_MODULE_ENABLED */ +/* #define HAL_CRYP_MODULE_ENABLED */ +/* #define HAL_CAN_MODULE_ENABLED */ +/* #define HAL_CRC_MODULE_ENABLED */ +/* #define HAL_CRYP_MODULE_ENABLED */ +/* #define HAL_DAC_MODULE_ENABLED */ +/* #define HAL_DCMI_MODULE_ENABLED */ +/* #define HAL_DMA2D_MODULE_ENABLED */ +/* #define HAL_ETH_MODULE_ENABLED */ +/* #define HAL_NAND_MODULE_ENABLED */ +/* #define HAL_NOR_MODULE_ENABLED */ +/* #define HAL_PCCARD_MODULE_ENABLED */ +/* #define HAL_SRAM_MODULE_ENABLED */ +/* #define HAL_SDRAM_MODULE_ENABLED */ +/* #define HAL_HASH_MODULE_ENABLED */ +/* #define HAL_I2C_MODULE_ENABLED */ +/* #define HAL_I2S_MODULE_ENABLED */ +/* #define HAL_IWDG_MODULE_ENABLED */ +/* #define HAL_LTDC_MODULE_ENABLED */ +/* #define HAL_RNG_MODULE_ENABLED */ +/* #define HAL_RTC_MODULE_ENABLED */ +/* #define HAL_SAI_MODULE_ENABLED */ +/* #define HAL_SD_MODULE_ENABLED */ +/* #define HAL_MMC_MODULE_ENABLED */ +#define HAL_SPI_MODULE_ENABLED +/* #define HAL_TIM_MODULE_ENABLED */ +#define HAL_UART_MODULE_ENABLED +/* #define HAL_USART_MODULE_ENABLED */ +/* #define HAL_IRDA_MODULE_ENABLED */ +/* #define HAL_SMARTCARD_MODULE_ENABLED */ +/* #define HAL_WWDG_MODULE_ENABLED */ +/* #define HAL_PCD_MODULE_ENABLED */ +/* #define HAL_HCD_MODULE_ENABLED */ +/* #define HAL_DSI_MODULE_ENABLED */ +/* #define HAL_QSPI_MODULE_ENABLED */ +/* #define HAL_QSPI_MODULE_ENABLED */ +/* #define HAL_CEC_MODULE_ENABLED */ +/* #define HAL_FMPI2C_MODULE_ENABLED */ +/* #define HAL_SPDIFRX_MODULE_ENABLED */ +/* #define HAL_DFSDM_MODULE_ENABLED */ +/* #define HAL_LPTIM_MODULE_ENABLED */ +/* #define HAL_EXTI_MODULE_ENABLED */ +#define HAL_GPIO_MODULE_ENABLED +#define HAL_DMA_MODULE_ENABLED +#define HAL_RCC_MODULE_ENABLED +#define HAL_FLASH_MODULE_ENABLED +#define HAL_PWR_MODULE_ENABLED +#define HAL_CORTEX_MODULE_ENABLED + +/* ########################## HSE/HSI Values adaptation ##################### */ +/** + * @brief Adjust the value of External High Speed oscillator (HSE) used in your application. + * This value is used by the RCC HAL module to compute the system frequency + * (when HSE is used as system clock source, directly or through the PLL). + */ +#if !defined (HSE_VALUE) + #define HSE_VALUE ((uint32_t)8000000U) /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSE_STARTUP_TIMEOUT) + #define HSE_STARTUP_TIMEOUT ((uint32_t)100U) /*!< Time out for HSE start up, in ms */ +#endif /* HSE_STARTUP_TIMEOUT */ + +/** + * @brief Internal High Speed oscillator (HSI) value. + * This value is used by the RCC HAL module to compute the system frequency + * (when HSI is used as system clock source, directly or through the PLL). + */ +#if !defined (HSI_VALUE) + #define HSI_VALUE ((uint32_t)16000000U) /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +/** + * @brief Internal Low Speed oscillator (LSI) value. + */ +#if !defined (LSI_VALUE) + #define LSI_VALUE ((uint32_t)32000U) /*!< LSI Typical Value in Hz*/ +#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz + The real value may vary depending on the variations + in voltage and temperature.*/ +/** + * @brief External Low Speed oscillator (LSE) value. + */ +#if !defined (LSE_VALUE) + #define LSE_VALUE ((uint32_t)32768U) /*!< Value of the External Low Speed oscillator in Hz */ +#endif /* LSE_VALUE */ + +#if !defined (LSE_STARTUP_TIMEOUT) + #define LSE_STARTUP_TIMEOUT ((uint32_t)5000U) /*!< Time out for LSE start up, in ms */ +#endif /* LSE_STARTUP_TIMEOUT */ + +/** + * @brief External clock source for I2S peripheral + * This value is used by the I2S HAL module to compute the I2S clock source + * frequency, this source is inserted directly through I2S_CKIN pad. + */ +#if !defined (EXTERNAL_CLOCK_VALUE) + #define EXTERNAL_CLOCK_VALUE ((uint32_t)12288000U) /*!< Value of the External audio frequency in Hz*/ +#endif /* EXTERNAL_CLOCK_VALUE */ + +/* Tip: To avoid modifying this file each time you need to use different HSE, + === you can define the HSE value in your toolchain compiler preprocessor. */ + +/* ########################### System Configuration ######################### */ +/** + * @brief This is the HAL system configuration section + */ +#define VDD_VALUE ((uint32_t)3300U) /*!< Value of VDD in mv */ +#define TICK_INT_PRIORITY ((uint32_t)0U) /*!< tick interrupt priority */ +#define USE_RTOS 0U +#define PREFETCH_ENABLE 1U +#define INSTRUCTION_CACHE_ENABLE 1U +#define DATA_CACHE_ENABLE 1U + +/* ########################## Assert Selection ############################## */ +/** + * @brief Uncomment the line below to expanse the "assert_param" macro in the + * HAL drivers code + */ +/* #define USE_FULL_ASSERT 1U */ + +/* ################## Ethernet peripheral configuration ##################### */ + +/* Section 1 : Ethernet peripheral configuration */ + +/* MAC ADDRESS: MAC_ADDR0:MAC_ADDR1:MAC_ADDR2:MAC_ADDR3:MAC_ADDR4:MAC_ADDR5 */ +#define MAC_ADDR0 2U +#define MAC_ADDR1 0U +#define MAC_ADDR2 0U +#define MAC_ADDR3 0U +#define MAC_ADDR4 0U +#define MAC_ADDR5 0U + +/* Definition of the Ethernet driver buffers size and count */ +#define ETH_RX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for receive */ +#define ETH_TX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for transmit */ +#define ETH_RXBUFNB ((uint32_t)4U) /* 4 Rx buffers of size ETH_RX_BUF_SIZE */ +#define ETH_TXBUFNB ((uint32_t)4U) /* 4 Tx buffers of size ETH_TX_BUF_SIZE */ + +/* Section 2: PHY configuration section */ + +/* DP83848_PHY_ADDRESS Address*/ +#define DP83848_PHY_ADDRESS 0x01U +/* PHY Reset delay these values are based on a 1 ms Systick interrupt*/ +#define PHY_RESET_DELAY ((uint32_t)0x000000FFU) +/* PHY Configuration delay */ +#define PHY_CONFIG_DELAY ((uint32_t)0x00000FFFU) + +#define PHY_READ_TO ((uint32_t)0x0000FFFFU) +#define PHY_WRITE_TO ((uint32_t)0x0000FFFFU) + +/* Section 3: Common PHY Registers */ + +#define PHY_BCR ((uint16_t)0x0000U) /*!< Transceiver Basic Control Register */ +#define PHY_BSR ((uint16_t)0x0001U) /*!< Transceiver Basic Status Register */ + +#define PHY_RESET ((uint16_t)0x8000U) /*!< PHY Reset */ +#define PHY_LOOPBACK ((uint16_t)0x4000U) /*!< Select loop-back mode */ +#define PHY_FULLDUPLEX_100M ((uint16_t)0x2100U) /*!< Set the full-duplex mode at 100 Mb/s */ +#define PHY_HALFDUPLEX_100M ((uint16_t)0x2000U) /*!< Set the half-duplex mode at 100 Mb/s */ +#define PHY_FULLDUPLEX_10M ((uint16_t)0x0100U) /*!< Set the full-duplex mode at 10 Mb/s */ +#define PHY_HALFDUPLEX_10M ((uint16_t)0x0000U) /*!< Set the half-duplex mode at 10 Mb/s */ +#define PHY_AUTONEGOTIATION ((uint16_t)0x1000U) /*!< Enable auto-negotiation function */ +#define PHY_RESTART_AUTONEGOTIATION ((uint16_t)0x0200U) /*!< Restart auto-negotiation function */ +#define PHY_POWERDOWN ((uint16_t)0x0800U) /*!< Select the power down mode */ +#define PHY_ISOLATE ((uint16_t)0x0400U) /*!< Isolate PHY from MII */ + +#define PHY_AUTONEGO_COMPLETE ((uint16_t)0x0020U) /*!< Auto-Negotiation process completed */ +#define PHY_LINKED_STATUS ((uint16_t)0x0004U) /*!< Valid link established */ +#define PHY_JABBER_DETECTION ((uint16_t)0x0002U) /*!< Jabber condition detected */ + +/* Section 4: Extended PHY Registers */ +#define PHY_SR ((uint16_t)0x10U) /*!< PHY status register Offset */ + +#define PHY_SPEED_STATUS ((uint16_t)0x0002U) /*!< PHY Speed mask */ +#define PHY_DUPLEX_STATUS ((uint16_t)0x0004U) /*!< PHY Duplex mask */ + +/* ################## SPI peripheral configuration ########################## */ + +/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver +* Activated: CRC code is present inside driver +* Deactivated: CRC code cleaned from driver +*/ + +#define USE_SPI_CRC 0U + +/* Includes ------------------------------------------------------------------*/ +/** + * @brief Include module's header file + */ + +#ifdef HAL_RCC_MODULE_ENABLED + #include "stm32f4xx_hal_rcc.h" +#endif /* HAL_RCC_MODULE_ENABLED */ + +#ifdef HAL_EXTI_MODULE_ENABLED + #include "stm32f4xx_hal_exti.h" +#endif /* HAL_EXTI_MODULE_ENABLED */ + +#ifdef HAL_GPIO_MODULE_ENABLED + #include "stm32f4xx_hal_gpio.h" +#endif /* HAL_GPIO_MODULE_ENABLED */ + +#ifdef HAL_DMA_MODULE_ENABLED + #include "stm32f4xx_hal_dma.h" +#endif /* HAL_DMA_MODULE_ENABLED */ + +#ifdef HAL_CORTEX_MODULE_ENABLED + #include "stm32f4xx_hal_cortex.h" +#endif /* HAL_CORTEX_MODULE_ENABLED */ + +#ifdef HAL_ADC_MODULE_ENABLED + #include "stm32f4xx_hal_adc.h" +#endif /* HAL_ADC_MODULE_ENABLED */ + +#ifdef HAL_CAN_MODULE_ENABLED + #include "stm32f4xx_hal_can.h" +#endif /* HAL_CAN_MODULE_ENABLED */ + +#ifdef HAL_CRC_MODULE_ENABLED + #include "stm32f4xx_hal_crc.h" +#endif /* HAL_CRC_MODULE_ENABLED */ + +#ifdef HAL_CRYP_MODULE_ENABLED + #include "stm32f4xx_hal_cryp.h" +#endif /* HAL_CRYP_MODULE_ENABLED */ + +#ifdef HAL_DMA2D_MODULE_ENABLED + #include "stm32f4xx_hal_dma2d.h" +#endif /* HAL_DMA2D_MODULE_ENABLED */ + +#ifdef HAL_DAC_MODULE_ENABLED + #include "stm32f4xx_hal_dac.h" +#endif /* HAL_DAC_MODULE_ENABLED */ + +#ifdef HAL_DCMI_MODULE_ENABLED + #include "stm32f4xx_hal_dcmi.h" +#endif /* HAL_DCMI_MODULE_ENABLED */ + +#ifdef HAL_ETH_MODULE_ENABLED + #include "stm32f4xx_hal_eth.h" +#endif /* HAL_ETH_MODULE_ENABLED */ + +#ifdef HAL_FLASH_MODULE_ENABLED + #include "stm32f4xx_hal_flash.h" +#endif /* HAL_FLASH_MODULE_ENABLED */ + +#ifdef HAL_SRAM_MODULE_ENABLED + #include "stm32f4xx_hal_sram.h" +#endif /* HAL_SRAM_MODULE_ENABLED */ + +#ifdef HAL_NOR_MODULE_ENABLED + #include "stm32f4xx_hal_nor.h" +#endif /* HAL_NOR_MODULE_ENABLED */ + +#ifdef HAL_NAND_MODULE_ENABLED + #include "stm32f4xx_hal_nand.h" +#endif /* HAL_NAND_MODULE_ENABLED */ + +#ifdef HAL_PCCARD_MODULE_ENABLED + #include "stm32f4xx_hal_pccard.h" +#endif /* HAL_PCCARD_MODULE_ENABLED */ + +#ifdef HAL_SDRAM_MODULE_ENABLED + #include "stm32f4xx_hal_sdram.h" +#endif /* HAL_SDRAM_MODULE_ENABLED */ + +#ifdef HAL_HASH_MODULE_ENABLED + #include "stm32f4xx_hal_hash.h" +#endif /* HAL_HASH_MODULE_ENABLED */ + +#ifdef HAL_I2C_MODULE_ENABLED + #include "stm32f4xx_hal_i2c.h" +#endif /* HAL_I2C_MODULE_ENABLED */ + +#ifdef HAL_I2S_MODULE_ENABLED + #include "stm32f4xx_hal_i2s.h" +#endif /* HAL_I2S_MODULE_ENABLED */ + +#ifdef HAL_IWDG_MODULE_ENABLED + #include "stm32f4xx_hal_iwdg.h" +#endif /* HAL_IWDG_MODULE_ENABLED */ + +#ifdef HAL_LTDC_MODULE_ENABLED + #include "stm32f4xx_hal_ltdc.h" +#endif /* HAL_LTDC_MODULE_ENABLED */ + +#ifdef HAL_PWR_MODULE_ENABLED + #include "stm32f4xx_hal_pwr.h" +#endif /* HAL_PWR_MODULE_ENABLED */ + +#ifdef HAL_RNG_MODULE_ENABLED + #include "stm32f4xx_hal_rng.h" +#endif /* HAL_RNG_MODULE_ENABLED */ + +#ifdef HAL_RTC_MODULE_ENABLED + #include "stm32f4xx_hal_rtc.h" +#endif /* HAL_RTC_MODULE_ENABLED */ + +#ifdef HAL_SAI_MODULE_ENABLED + #include "stm32f4xx_hal_sai.h" +#endif /* HAL_SAI_MODULE_ENABLED */ + +#ifdef HAL_SD_MODULE_ENABLED + #include "stm32f4xx_hal_sd.h" +#endif /* HAL_SD_MODULE_ENABLED */ + +#ifdef HAL_MMC_MODULE_ENABLED + #include "stm32f4xx_hal_mmc.h" +#endif /* HAL_MMC_MODULE_ENABLED */ + +#ifdef HAL_SPI_MODULE_ENABLED + #include "stm32f4xx_hal_spi.h" +#endif /* HAL_SPI_MODULE_ENABLED */ + +#ifdef HAL_TIM_MODULE_ENABLED + #include "stm32f4xx_hal_tim.h" +#endif /* HAL_TIM_MODULE_ENABLED */ + +#ifdef HAL_UART_MODULE_ENABLED + #include "stm32f4xx_hal_uart.h" +#endif /* HAL_UART_MODULE_ENABLED */ + +#ifdef HAL_USART_MODULE_ENABLED + #include "stm32f4xx_hal_usart.h" +#endif /* HAL_USART_MODULE_ENABLED */ + +#ifdef HAL_IRDA_MODULE_ENABLED + #include "stm32f4xx_hal_irda.h" +#endif /* HAL_IRDA_MODULE_ENABLED */ + +#ifdef HAL_SMARTCARD_MODULE_ENABLED + #include "stm32f4xx_hal_smartcard.h" +#endif /* HAL_SMARTCARD_MODULE_ENABLED */ + +#ifdef HAL_WWDG_MODULE_ENABLED + #include "stm32f4xx_hal_wwdg.h" +#endif /* HAL_WWDG_MODULE_ENABLED */ + +#ifdef HAL_PCD_MODULE_ENABLED + #include "stm32f4xx_hal_pcd.h" +#endif /* HAL_PCD_MODULE_ENABLED */ + +#ifdef HAL_HCD_MODULE_ENABLED + #include "stm32f4xx_hal_hcd.h" +#endif /* HAL_HCD_MODULE_ENABLED */ + +#ifdef HAL_DSI_MODULE_ENABLED + #include "stm32f4xx_hal_dsi.h" +#endif /* HAL_DSI_MODULE_ENABLED */ + +#ifdef HAL_QSPI_MODULE_ENABLED + #include "stm32f4xx_hal_qspi.h" +#endif /* HAL_QSPI_MODULE_ENABLED */ + +#ifdef HAL_CEC_MODULE_ENABLED + #include "stm32f4xx_hal_cec.h" +#endif /* HAL_CEC_MODULE_ENABLED */ + +#ifdef HAL_FMPI2C_MODULE_ENABLED + #include "stm32f4xx_hal_fmpi2c.h" +#endif /* HAL_FMPI2C_MODULE_ENABLED */ + +#ifdef HAL_SPDIFRX_MODULE_ENABLED + #include "stm32f4xx_hal_spdifrx.h" +#endif /* HAL_SPDIFRX_MODULE_ENABLED */ + +#ifdef HAL_DFSDM_MODULE_ENABLED + #include "stm32f4xx_hal_dfsdm.h" +#endif /* HAL_DFSDM_MODULE_ENABLED */ + +#ifdef HAL_LPTIM_MODULE_ENABLED + #include "stm32f4xx_hal_lptim.h" +#endif /* HAL_LPTIM_MODULE_ENABLED */ + +/* Exported macro ------------------------------------------------------------*/ +#ifdef USE_FULL_ASSERT +/** + * @brief The assert_param macro is used for function's parameters check. + * @param expr: If expr is false, it calls assert_failed function + * which reports the name of the source file and the source + * line number of the call that failed. + * If expr is true, it returns no value. + * @retval None + */ + #define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__)) +/* Exported functions ------------------------------------------------------- */ + void assert_failed(uint8_t* file, uint32_t line); +#else + #define assert_param(expr) ((void)0U) +#endif /* USE_FULL_ASSERT */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F4xx_HAL_CONF_H */ + + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Inc/stm32f4xx_it.h b/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Inc/stm32f4xx_it.h new file mode 100644 index 0000000000..7a788c296b --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Inc/stm32f4xx_it.h @@ -0,0 +1,84 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32f4xx_it.h + * @brief This file contains the headers of the interrupt handlers. + ****************************************************************************** + * + * COPYRIGHT(c) 2018 STMicroelectronics + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of STMicroelectronics nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F4xx_IT_H +#define __STM32F4xx_IT_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Exported types ------------------------------------------------------------*/ +/* USER CODE BEGIN ET */ + +/* USER CODE END ET */ + +/* Exported constants --------------------------------------------------------*/ +/* USER CODE BEGIN EC */ + +/* USER CODE END EC */ + +/* Exported macro ------------------------------------------------------------*/ +/* USER CODE BEGIN EM */ + +/* USER CODE END EM */ + +/* Exported functions prototypes ---------------------------------------------*/ +void NMI_Handler(void); +void HardFault_Handler(void); +void MemManage_Handler(void); +void BusFault_Handler(void); +void UsageFault_Handler(void); +void SVC_Handler(void); +void DebugMon_Handler(void); +void PendSV_Handler(void); +void SysTick_Handler(void); +/* USER CODE BEGIN EFP */ + +/* USER CODE END EFP */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F4xx_IT_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Src/main.c b/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Src/main.c new file mode 100644 index 0000000000..c29df8e463 --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Src/main.c @@ -0,0 +1,303 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.c + * @brief : Main program body + ****************************************************************************** + * This notice applies to any and all portions of this file + * that are not between comment pairs USER CODE BEGIN and + * USER CODE END. Other portions of this file, whether + * inserted by the user or by software development tools + * are owned by their respective copyright owners. + * + * Copyright (c) 2018 STMicroelectronics International N.V. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted, provided that the following conditions are met: + * + * 1. Redistribution of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of STMicroelectronics nor the names of other + * contributors to this software may be used to endorse or promote products + * derived from this software without specific written permission. + * 4. This software, including modifications and/or derivative works of this + * software, must execute solely and exclusively on microcontroller or + * microprocessor devices manufactured by or for STMicroelectronics. + * 5. Redistribution and use of this software other than as permitted under + * this license is void and will automatically terminate your rights under + * this license. + * + * THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY + * RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT + * SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, + * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN PTD */ + +/* USER CODE END PTD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN PD */ + +/* USER CODE END PD */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN PM */ + +/* USER CODE END PM */ + +/* Private variables ---------------------------------------------------------*/ +SPI_HandleTypeDef hspi1; + +UART_HandleTypeDef huart1; + +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +void SystemClock_Config(void); +static void MX_GPIO_Init(void); +static void MX_SPI1_Init(void); +static void MX_USART1_UART_Init(void); +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/** + * @brief The application entry point. + * @retval int + */ +int main(void) +{ + /* USER CODE BEGIN 1 */ + + /* USER CODE END 1 */ + + /* MCU Configuration--------------------------------------------------------*/ + + /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ + HAL_Init(); + + /* USER CODE BEGIN Init */ + + /* USER CODE END Init */ + + /* Configure the system clock */ + SystemClock_Config(); + + /* USER CODE BEGIN SysInit */ + + /* USER CODE END SysInit */ + + /* Initialize all configured peripherals */ + MX_GPIO_Init(); + MX_SPI1_Init(); + MX_USART1_UART_Init(); + /* USER CODE BEGIN 2 */ + + /* USER CODE END 2 */ + + /* Infinite loop */ + /* USER CODE BEGIN WHILE */ + while (1) + { + /* USER CODE END WHILE */ + + /* USER CODE BEGIN 3 */ + } + /* USER CODE END 3 */ +} + +/** + * @brief System Clock Configuration + * @retval None + */ +void SystemClock_Config(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + + /**Configure the main internal regulator output voltage + */ + __HAL_RCC_PWR_CLK_ENABLE(); + __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); + /**Initializes the CPU, AHB and APB busses clocks + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; + RCC_OscInitStruct.HSEState = RCC_HSE_ON; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; + RCC_OscInitStruct.PLL.PLLM = 8; + RCC_OscInitStruct.PLL.PLLN = 336; + RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; + RCC_OscInitStruct.PLL.PLLQ = 7; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + { + Error_Handler(); + } + /**Initializes the CPU, AHB and APB busses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK) + { + Error_Handler(); + } +} + +/** + * @brief SPI1 Initialization Function + * @param None + * @retval None + */ +static void MX_SPI1_Init(void) +{ + + /* USER CODE BEGIN SPI1_Init 0 */ + + /* USER CODE END SPI1_Init 0 */ + + /* USER CODE BEGIN SPI1_Init 1 */ + + /* USER CODE END SPI1_Init 1 */ + /* SPI1 parameter configuration*/ + hspi1.Instance = SPI1; + hspi1.Init.Mode = SPI_MODE_MASTER; + hspi1.Init.Direction = SPI_DIRECTION_2LINES; + hspi1.Init.DataSize = SPI_DATASIZE_8BIT; + hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; + hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; + hspi1.Init.NSS = SPI_NSS_SOFT; + hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; + hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; + hspi1.Init.TIMode = SPI_TIMODE_DISABLE; + hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; + hspi1.Init.CRCPolynomial = 10; + if (HAL_SPI_Init(&hspi1) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN SPI1_Init 2 */ + + /* USER CODE END SPI1_Init 2 */ + +} + +/** + * @brief USART1 Initialization Function + * @param None + * @retval None + */ +static void MX_USART1_UART_Init(void) +{ + + /* USER CODE BEGIN USART1_Init 0 */ + + /* USER CODE END USART1_Init 0 */ + + /* USER CODE BEGIN USART1_Init 1 */ + + /* USER CODE END USART1_Init 1 */ + huart1.Instance = USART1; + huart1.Init.BaudRate = 115200; + huart1.Init.WordLength = UART_WORDLENGTH_8B; + huart1.Init.StopBits = UART_STOPBITS_1; + huart1.Init.Parity = UART_PARITY_NONE; + huart1.Init.Mode = UART_MODE_TX_RX; + huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; + huart1.Init.OverSampling = UART_OVERSAMPLING_16; + if (HAL_UART_Init(&huart1) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN USART1_Init 2 */ + + /* USER CODE END USART1_Init 2 */ + +} + +/** + * @brief GPIO Initialization Function + * @param None + * @retval None + */ +static void MX_GPIO_Init(void) +{ + + /* GPIO Ports Clock Enable */ + __HAL_RCC_GPIOH_CLK_ENABLE(); + __HAL_RCC_GPIOA_CLK_ENABLE(); + __HAL_RCC_GPIOB_CLK_ENABLE(); + +} + +/* USER CODE BEGIN 4 */ + +/* USER CODE END 4 */ + +/** + * @brief This function is executed in case of error occurrence. + * @retval None + */ +void Error_Handler(void) +{ + /* USER CODE BEGIN Error_Handler_Debug */ + /* User can add his own implementation to report the HAL error return state */ + + /* USER CODE END Error_Handler_Debug */ +} + +#ifdef USE_FULL_ASSERT +/** + * @brief Reports the name of the source file and the source line number + * where the assert_param error has occurred. + * @param file: pointer to the source file name + * @param line: assert_param error line source number + * @retval None + */ +void assert_failed(uint8_t *file, uint32_t line) +{ + /* USER CODE BEGIN 6 */ + /* User can add his own implementation to report the file name and line number, + tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ + /* USER CODE END 6 */ +} +#endif /* USE_FULL_ASSERT */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c b/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c new file mode 100644 index 0000000000..2bac295eeb --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c @@ -0,0 +1,254 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * File Name : stm32f4xx_hal_msp.c + * Description : This file provides code for the MSP Initialization + * and de-Initialization codes. + ****************************************************************************** + * This notice applies to any and all portions of this file + * that are not between comment pairs USER CODE BEGIN and + * USER CODE END. Other portions of this file, whether + * inserted by the user or by software development tools + * are owned by their respective copyright owners. + * + * Copyright (c) 2018 STMicroelectronics International N.V. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted, provided that the following conditions are met: + * + * 1. Redistribution of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of STMicroelectronics nor the names of other + * contributors to this software may be used to endorse or promote products + * derived from this software without specific written permission. + * 4. This software, including modifications and/or derivative works of this + * software, must execute solely and exclusively on microcontroller or + * microprocessor devices manufactured by or for STMicroelectronics. + * 5. Redistribution and use of this software other than as permitted under + * this license is void and will automatically terminate your rights under + * this license. + * + * THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY + * RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT + * SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, + * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN TD */ + +/* USER CODE END TD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN Define */ + +/* USER CODE END Define */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN Macro */ + +/* USER CODE END Macro */ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* External functions --------------------------------------------------------*/ +/* USER CODE BEGIN ExternalFunctions */ + +/* USER CODE END ExternalFunctions */ + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ +/** + * Initializes the Global MSP. + */ +void HAL_MspInit(void) +{ + /* USER CODE BEGIN MspInit 0 */ + + /* USER CODE END MspInit 0 */ + + __HAL_RCC_SYSCFG_CLK_ENABLE(); + __HAL_RCC_PWR_CLK_ENABLE(); + + HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_0); + + /* System interrupt init*/ + + /* USER CODE BEGIN MspInit 1 */ + + /* USER CODE END MspInit 1 */ +} + +/** +* @brief SPI MSP Initialization +* This function configures the hardware resources used in this example +* @param hspi: SPI handle pointer +* @retval None +*/ +void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi) +{ + + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(hspi->Instance==SPI1) + { + /* USER CODE BEGIN SPI1_MspInit 0 */ + + /* USER CODE END SPI1_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_SPI1_CLK_ENABLE(); + + __HAL_RCC_GPIOA_CLK_ENABLE(); + /**SPI1 GPIO Configuration + PA5 ------> SPI1_SCK + PA6 ------> SPI1_MISO + PA7 ------> SPI1_MOSI + */ + GPIO_InitStruct.Pin = SPI1_SCK_Pin|SPI1_MISO_Pin|SPI1_MOSI_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + GPIO_InitStruct.Alternate = GPIO_AF5_SPI1; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /* USER CODE BEGIN SPI1_MspInit 1 */ + + /* USER CODE END SPI1_MspInit 1 */ + } + +} + +/** +* @brief SPI MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param hspi: SPI handle pointer +* @retval None +*/ + +void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi) +{ + + if(hspi->Instance==SPI1) + { + /* USER CODE BEGIN SPI1_MspDeInit 0 */ + + /* USER CODE END SPI1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_SPI1_CLK_DISABLE(); + + /**SPI1 GPIO Configuration + PA5 ------> SPI1_SCK + PA6 ------> SPI1_MISO + PA7 ------> SPI1_MOSI + */ + HAL_GPIO_DeInit(GPIOA, SPI1_SCK_Pin|SPI1_MISO_Pin|SPI1_MOSI_Pin); + + /* USER CODE BEGIN SPI1_MspDeInit 1 */ + + /* USER CODE END SPI1_MspDeInit 1 */ + } + +} + +/** +* @brief UART MSP Initialization +* This function configures the hardware resources used in this example +* @param huart: UART handle pointer +* @retval None +*/ +void HAL_UART_MspInit(UART_HandleTypeDef* huart) +{ + + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(huart->Instance==USART1) + { + /* USER CODE BEGIN USART1_MspInit 0 */ + + /* USER CODE END USART1_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_USART1_CLK_ENABLE(); + + __HAL_RCC_GPIOB_CLK_ENABLE(); + /**USART1 GPIO Configuration + PB6 ------> USART1_TX + PB7 ------> USART1_RX + */ + GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_PULLUP; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF7_USART1; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + /* USER CODE BEGIN USART1_MspInit 1 */ + + /* USER CODE END USART1_MspInit 1 */ + } + +} + +/** +* @brief UART MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param huart: UART handle pointer +* @retval None +*/ + +void HAL_UART_MspDeInit(UART_HandleTypeDef* huart) +{ + + if(huart->Instance==USART1) + { + /* USER CODE BEGIN USART1_MspDeInit 0 */ + + /* USER CODE END USART1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_USART1_CLK_DISABLE(); + + /**USART1 GPIO Configuration + PB6 ------> USART1_TX + PB7 ------> USART1_RX + */ + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6|GPIO_PIN_7); + + /* USER CODE BEGIN USART1_MspDeInit 1 */ + + /* USER CODE END USART1_MspDeInit 1 */ + } + +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Src/stm32f4xx_it.c b/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Src/stm32f4xx_it.c new file mode 100644 index 0000000000..5973f7fddb --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Src/stm32f4xx_it.c @@ -0,0 +1,217 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32f4xx_it.c + * @brief Interrupt Service Routines. + ****************************************************************************** + * + * COPYRIGHT(c) 2018 STMicroelectronics + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of STMicroelectronics nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +#include "stm32f4xx_it.h" +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN TD */ + +/* USER CODE END TD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN PD */ + +/* USER CODE END PD */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN PM */ + +/* USER CODE END PM */ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/* External variables --------------------------------------------------------*/ +/* USER CODE BEGIN EV */ + +/* USER CODE END EV */ + +/******************************************************************************/ +/* Cortex-M4 Processor Interruption and Exception Handlers */ +/******************************************************************************/ +/** + * @brief This function handles Non maskable interrupt. + */ +void NMI_Handler(void) +{ + /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ + + /* USER CODE END NonMaskableInt_IRQn 0 */ + /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ + + /* USER CODE END NonMaskableInt_IRQn 1 */ +} + +/** + * @brief This function handles Hard fault interrupt. + */ +void HardFault_Handler(void) +{ + /* USER CODE BEGIN HardFault_IRQn 0 */ + + /* USER CODE END HardFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_HardFault_IRQn 0 */ + /* USER CODE END W1_HardFault_IRQn 0 */ + } +} + +/** + * @brief This function handles Memory management fault. + */ +void MemManage_Handler(void) +{ + /* USER CODE BEGIN MemoryManagement_IRQn 0 */ + + /* USER CODE END MemoryManagement_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */ + /* USER CODE END W1_MemoryManagement_IRQn 0 */ + } +} + +/** + * @brief This function handles Pre-fetch fault, memory access fault. + */ +void BusFault_Handler(void) +{ + /* USER CODE BEGIN BusFault_IRQn 0 */ + + /* USER CODE END BusFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_BusFault_IRQn 0 */ + /* USER CODE END W1_BusFault_IRQn 0 */ + } +} + +/** + * @brief This function handles Undefined instruction or illegal state. + */ +void UsageFault_Handler(void) +{ + /* USER CODE BEGIN UsageFault_IRQn 0 */ + + /* USER CODE END UsageFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_UsageFault_IRQn 0 */ + /* USER CODE END W1_UsageFault_IRQn 0 */ + } +} + +/** + * @brief This function handles System service call via SWI instruction. + */ +void SVC_Handler(void) +{ + /* USER CODE BEGIN SVCall_IRQn 0 */ + + /* USER CODE END SVCall_IRQn 0 */ + /* USER CODE BEGIN SVCall_IRQn 1 */ + + /* USER CODE END SVCall_IRQn 1 */ +} + +/** + * @brief This function handles Debug monitor. + */ +void DebugMon_Handler(void) +{ + /* USER CODE BEGIN DebugMonitor_IRQn 0 */ + + /* USER CODE END DebugMonitor_IRQn 0 */ + /* USER CODE BEGIN DebugMonitor_IRQn 1 */ + + /* USER CODE END DebugMonitor_IRQn 1 */ +} + +/** + * @brief This function handles Pendable request for system service. + */ +void PendSV_Handler(void) +{ + /* USER CODE BEGIN PendSV_IRQn 0 */ + + /* USER CODE END PendSV_IRQn 0 */ + /* USER CODE BEGIN PendSV_IRQn 1 */ + + /* USER CODE END PendSV_IRQn 1 */ +} + +/** + * @brief This function handles System tick timer. + */ +void SysTick_Handler(void) +{ + /* USER CODE BEGIN SysTick_IRQn 0 */ + + /* USER CODE END SysTick_IRQn 0 */ + HAL_IncTick(); + /* USER CODE BEGIN SysTick_IRQn 1 */ + + /* USER CODE END SysTick_IRQn 1 */ +} + +/******************************************************************************/ +/* STM32F4xx Peripheral Interrupt Handlers */ +/* Add here the Interrupt Handlers for the used peripherals. */ +/* For the available peripheral interrupt handler names, */ +/* please refer to the startup file (startup_stm32f4xx.s). */ +/******************************************************************************/ + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Src/system_stm32f4xx.c b/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Src/system_stm32f4xx.c new file mode 100644 index 0000000000..14204ed5e7 --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/board/CubeMX_Config/Src/system_stm32f4xx.c @@ -0,0 +1,761 @@ +/** + ****************************************************************************** + * @file system_stm32f4xx.c + * @author MCD Application Team + * @version V2.4.3 + * @date 22-January-2016 + * @brief CMSIS Cortex-M4 Device Peripheral Access Layer System Source File. + * + * This file provides two functions and one global variable to be called from + * user application: + * - SystemInit(): This function is called at startup just after reset and + * before branch to main program. This call is made inside + * the "startup_stm32f4xx.s" file. + * + * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used + * by the user application to setup the SysTick + * timer or configure other parameters. + * + * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must + * be called whenever the core clock is changed + * during program execution. + * + * + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2016 STMicroelectronics

+ * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of STMicroelectronics nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************** + */ + +/** @addtogroup CMSIS + * @{ + */ + +/** @addtogroup stm32f4xx_system + * @{ + */ + +/** @addtogroup STM32F4xx_System_Private_Includes + * @{ + */ + + +#include "stm32f4xx.h" + +#if !defined (HSE_VALUE) + #define HSE_VALUE ((uint32_t)25000000) /*!< Default value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSI_VALUE) + #define HSI_VALUE ((uint32_t)16000000) /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +/** + * @} + */ + +/** @addtogroup STM32F4xx_System_Private_TypesDefinitions + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F4xx_System_Private_Defines + * @{ + */ + +/************************* Miscellaneous Configuration ************************/ +/*!< Uncomment the following line if you need to use external SRAM or SDRAM as data memory */ +#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)\ + || defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ + || defined(STM32F469xx) || defined(STM32F479xx) +/* #define DATA_IN_ExtSRAM */ +#endif /* STM32F40xxx || STM32F41xxx || STM32F42xxx || STM32F43xxx || STM32F469xx || STM32F479xx */ + +#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ + || defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) +/* #define DATA_IN_ExtSDRAM */ +#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx ||\ + STM32F479xx */ + +/*!< Uncomment the following line if you need to relocate your vector Table in + Internal SRAM. */ +/* #define VECT_TAB_SRAM */ +#define VECT_TAB_OFFSET 0x00 /*!< Vector Table base offset field. + This value must be a multiple of 0x200. */ +/******************************************************************************/ + +/** + * @} + */ + +/** @addtogroup STM32F4xx_System_Private_Macros + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F4xx_System_Private_Variables + * @{ + */ + /* This variable is updated in three ways: + 1) by calling CMSIS function SystemCoreClockUpdate() + 2) by calling HAL API function HAL_RCC_GetHCLKFreq() + 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency + Note: If you use this function to configure the system clock; then there + is no need to call the 2 first functions listed above, since SystemCoreClock + variable is updated automatically. + */ + uint32_t SystemCoreClock = 16000000; +const uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; + +/** + * @} + */ + +/** @addtogroup STM32F4xx_System_Private_FunctionPrototypes + * @{ + */ + +#if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM) + static void SystemInit_ExtMemCtl(void); +#endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */ + +/** + * @} + */ + +/** @addtogroup STM32F4xx_System_Private_Functions + * @{ + */ + +/** + * @brief Setup the microcontroller system + * Initialize the FPU setting, vector table location and External memory + * configuration. + * @param None + * @retval None + */ +void SystemInit(void) +{ + /* FPU settings ------------------------------------------------------------*/ + #if (__FPU_PRESENT == 1) && (__FPU_USED == 1) + SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */ + #endif + /* Reset the RCC clock configuration to the default reset state ------------*/ + /* Set HSION bit */ + RCC->CR |= (uint32_t)0x00000001; + + /* Reset CFGR register */ + RCC->CFGR = 0x00000000; + + /* Reset HSEON, CSSON and PLLON bits */ + RCC->CR &= (uint32_t)0xFEF6FFFF; + + /* Reset PLLCFGR register */ + RCC->PLLCFGR = 0x24003010; + + /* Reset HSEBYP bit */ + RCC->CR &= (uint32_t)0xFFFBFFFF; + + /* Disable all interrupts */ + RCC->CIR = 0x00000000; + +#if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM) + SystemInit_ExtMemCtl(); +#endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */ + + /* Configure the Vector Table location add offset address ------------------*/ +#ifdef VECT_TAB_SRAM + SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ +#else + SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */ +#endif +} + +/** + * @brief Update SystemCoreClock variable according to Clock Register Values. + * The SystemCoreClock variable contains the core clock (HCLK), it can + * be used by the user application to setup the SysTick timer or configure + * other parameters. + * + * @note Each time the core clock (HCLK) changes, this function must be called + * to update SystemCoreClock variable value. Otherwise, any configuration + * based on this variable will be incorrect. + * + * @note - The system frequency computed by this function is not the real + * frequency in the chip. It is calculated based on the predefined + * constant and the selected clock source: + * + * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*) + * + * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**) + * + * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**) + * or HSI_VALUE(*) multiplied/divided by the PLL factors. + * + * (*) HSI_VALUE is a constant defined in stm32f4xx_hal_conf.h file (default value + * 16 MHz) but the real value may vary depending on the variations + * in voltage and temperature. + * + * (**) HSE_VALUE is a constant defined in stm32f4xx_hal_conf.h file (its value + * depends on the application requirements), user has to ensure that HSE_VALUE + * is same as the real frequency of the crystal used. Otherwise, this function + * may have wrong result. + * + * - The result of this function could be not correct when using fractional + * value for HSE crystal. + * + * @param None + * @retval None + */ +void SystemCoreClockUpdate(void) +{ + uint32_t tmp = 0, pllvco = 0, pllp = 2, pllsource = 0, pllm = 2; + + /* Get SYSCLK source -------------------------------------------------------*/ + tmp = RCC->CFGR & RCC_CFGR_SWS; + + switch (tmp) + { + case 0x00: /* HSI used as system clock source */ + SystemCoreClock = HSI_VALUE; + break; + case 0x04: /* HSE used as system clock source */ + SystemCoreClock = HSE_VALUE; + break; + case 0x08: /* PLL used as system clock source */ + + /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N + SYSCLK = PLL_VCO / PLL_P + */ + pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) >> 22; + pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM; + + if (pllsource != 0) + { + /* HSE used as PLL clock source */ + pllvco = (HSE_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6); + } + else + { + /* HSI used as PLL clock source */ + pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6); + } + + pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) + 1 ) *2; + SystemCoreClock = pllvco/pllp; + break; + default: + SystemCoreClock = HSI_VALUE; + break; + } + /* Compute HCLK frequency --------------------------------------------------*/ + /* Get HCLK prescaler */ + tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)]; + /* HCLK frequency */ + SystemCoreClock >>= tmp; +} + +#if defined (DATA_IN_ExtSRAM) && defined (DATA_IN_ExtSDRAM) +#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\ + defined(STM32F469xx) || defined(STM32F479xx) +/** + * @brief Setup the external memory controller. + * Called in startup_stm32f4xx.s before jump to main. + * This function configures the external memories (SRAM/SDRAM) + * This SRAM/SDRAM will be used as program data memory (including heap and stack). + * @param None + * @retval None + */ +void SystemInit_ExtMemCtl(void) +{ + __IO uint32_t tmp = 0x00; + + register uint32_t tmpreg = 0, timeout = 0xFFFF; + register uint32_t index; + + /* Enable GPIOC, GPIOD, GPIOE, GPIOF, GPIOG, GPIOH and GPIOI interface clock */ + RCC->AHB1ENR |= 0x000001F8; + + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOCEN); + + /* Connect PDx pins to FMC Alternate function */ + GPIOD->AFR[0] = 0x00CCC0CC; + GPIOD->AFR[1] = 0xCCCCCCCC; + /* Configure PDx pins in Alternate function mode */ + GPIOD->MODER = 0xAAAA0A8A; + /* Configure PDx pins speed to 100 MHz */ + GPIOD->OSPEEDR = 0xFFFF0FCF; + /* Configure PDx pins Output type to push-pull */ + GPIOD->OTYPER = 0x00000000; + /* No pull-up, pull-down for PDx pins */ + GPIOD->PUPDR = 0x00000000; + + /* Connect PEx pins to FMC Alternate function */ + GPIOE->AFR[0] = 0xC00CC0CC; + GPIOE->AFR[1] = 0xCCCCCCCC; + /* Configure PEx pins in Alternate function mode */ + GPIOE->MODER = 0xAAAA828A; + /* Configure PEx pins speed to 100 MHz */ + GPIOE->OSPEEDR = 0xFFFFC3CF; + /* Configure PEx pins Output type to push-pull */ + GPIOE->OTYPER = 0x00000000; + /* No pull-up, pull-down for PEx pins */ + GPIOE->PUPDR = 0x00000000; + + /* Connect PFx pins to FMC Alternate function */ + GPIOF->AFR[0] = 0xCCCCCCCC; + GPIOF->AFR[1] = 0xCCCCCCCC; + /* Configure PFx pins in Alternate function mode */ + GPIOF->MODER = 0xAA800AAA; + /* Configure PFx pins speed to 50 MHz */ + GPIOF->OSPEEDR = 0xAA800AAA; + /* Configure PFx pins Output type to push-pull */ + GPIOF->OTYPER = 0x00000000; + /* No pull-up, pull-down for PFx pins */ + GPIOF->PUPDR = 0x00000000; + + /* Connect PGx pins to FMC Alternate function */ + GPIOG->AFR[0] = 0xCCCCCCCC; + GPIOG->AFR[1] = 0xCCCCCCCC; + /* Configure PGx pins in Alternate function mode */ + GPIOG->MODER = 0xAAAAAAAA; + /* Configure PGx pins speed to 50 MHz */ + GPIOG->OSPEEDR = 0xAAAAAAAA; + /* Configure PGx pins Output type to push-pull */ + GPIOG->OTYPER = 0x00000000; + /* No pull-up, pull-down for PGx pins */ + GPIOG->PUPDR = 0x00000000; + + /* Connect PHx pins to FMC Alternate function */ + GPIOH->AFR[0] = 0x00C0CC00; + GPIOH->AFR[1] = 0xCCCCCCCC; + /* Configure PHx pins in Alternate function mode */ + GPIOH->MODER = 0xAAAA08A0; + /* Configure PHx pins speed to 50 MHz */ + GPIOH->OSPEEDR = 0xAAAA08A0; + /* Configure PHx pins Output type to push-pull */ + GPIOH->OTYPER = 0x00000000; + /* No pull-up, pull-down for PHx pins */ + GPIOH->PUPDR = 0x00000000; + + /* Connect PIx pins to FMC Alternate function */ + GPIOI->AFR[0] = 0xCCCCCCCC; + GPIOI->AFR[1] = 0x00000CC0; + /* Configure PIx pins in Alternate function mode */ + GPIOI->MODER = 0x0028AAAA; + /* Configure PIx pins speed to 50 MHz */ + GPIOI->OSPEEDR = 0x0028AAAA; + /* Configure PIx pins Output type to push-pull */ + GPIOI->OTYPER = 0x00000000; + /* No pull-up, pull-down for PIx pins */ + GPIOI->PUPDR = 0x00000000; + +/*-- FMC Configuration -------------------------------------------------------*/ + /* Enable the FMC interface clock */ + RCC->AHB3ENR |= 0x00000001; + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN); + + FMC_Bank5_6->SDCR[0] = 0x000019E4; + FMC_Bank5_6->SDTR[0] = 0x01115351; + + /* SDRAM initialization sequence */ + /* Clock enable command */ + FMC_Bank5_6->SDCMR = 0x00000011; + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* Delay */ + for (index = 0; index<1000; index++); + + /* PALL command */ + FMC_Bank5_6->SDCMR = 0x00000012; + timeout = 0xFFFF; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* Auto refresh command */ + FMC_Bank5_6->SDCMR = 0x00000073; + timeout = 0xFFFF; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* MRD register program */ + FMC_Bank5_6->SDCMR = 0x00046014; + timeout = 0xFFFF; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* Set refresh count */ + tmpreg = FMC_Bank5_6->SDRTR; + FMC_Bank5_6->SDRTR = (tmpreg | (0x0000027C<<1)); + + /* Disable write protection */ + tmpreg = FMC_Bank5_6->SDCR[0]; + FMC_Bank5_6->SDCR[0] = (tmpreg & 0xFFFFFDFF); + +#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) + /* Configure and enable Bank1_SRAM2 */ + FMC_Bank1->BTCR[2] = 0x00001011; + FMC_Bank1->BTCR[3] = 0x00000201; + FMC_Bank1E->BWTR[2] = 0x0fffffff; +#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx */ +#if defined(STM32F469xx) || defined(STM32F479xx) + /* Configure and enable Bank1_SRAM2 */ + FMC_Bank1->BTCR[2] = 0x00001091; + FMC_Bank1->BTCR[3] = 0x00110212; + FMC_Bank1E->BWTR[2] = 0x0fffffff; +#endif /* STM32F469xx || STM32F479xx */ + + (void)(tmp); +} +#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */ +#elif defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM) +/** + * @brief Setup the external memory controller. + * Called in startup_stm32f4xx.s before jump to main. + * This function configures the external memories (SRAM/SDRAM) + * This SRAM/SDRAM will be used as program data memory (including heap and stack). + * @param None + * @retval None + */ +void SystemInit_ExtMemCtl(void) +{ + __IO uint32_t tmp = 0x00; +#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ + || defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) +#if defined (DATA_IN_ExtSDRAM) + register uint32_t tmpreg = 0, timeout = 0xFFFF; + register uint32_t index; + +#if defined(STM32F446xx) + /* Enable GPIOA, GPIOC, GPIOD, GPIOE, GPIOF, GPIOG interface + clock */ + RCC->AHB1ENR |= 0x0000007D; +#else + /* Enable GPIOC, GPIOD, GPIOE, GPIOF, GPIOG, GPIOH and GPIOI interface + clock */ + RCC->AHB1ENR |= 0x000001F8; +#endif /* STM32F446xx */ + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOCEN); + +#if defined(STM32F446xx) + /* Connect PAx pins to FMC Alternate function */ + GPIOA->AFR[0] |= 0xC0000000; + GPIOA->AFR[1] |= 0x00000000; + /* Configure PDx pins in Alternate function mode */ + GPIOA->MODER |= 0x00008000; + /* Configure PDx pins speed to 50 MHz */ + GPIOA->OSPEEDR |= 0x00008000; + /* Configure PDx pins Output type to push-pull */ + GPIOA->OTYPER |= 0x00000000; + /* No pull-up, pull-down for PDx pins */ + GPIOA->PUPDR |= 0x00000000; + + /* Connect PCx pins to FMC Alternate function */ + GPIOC->AFR[0] |= 0x00CC0000; + GPIOC->AFR[1] |= 0x00000000; + /* Configure PDx pins in Alternate function mode */ + GPIOC->MODER |= 0x00000A00; + /* Configure PDx pins speed to 50 MHz */ + GPIOC->OSPEEDR |= 0x00000A00; + /* Configure PDx pins Output type to push-pull */ + GPIOC->OTYPER |= 0x00000000; + /* No pull-up, pull-down for PDx pins */ + GPIOC->PUPDR |= 0x00000000; +#endif /* STM32F446xx */ + + /* Connect PDx pins to FMC Alternate function */ + GPIOD->AFR[0] = 0x000000CC; + GPIOD->AFR[1] = 0xCC000CCC; + /* Configure PDx pins in Alternate function mode */ + GPIOD->MODER = 0xA02A000A; + /* Configure PDx pins speed to 50 MHz */ + GPIOD->OSPEEDR = 0xA02A000A; + /* Configure PDx pins Output type to push-pull */ + GPIOD->OTYPER = 0x00000000; + /* No pull-up, pull-down for PDx pins */ + GPIOD->PUPDR = 0x00000000; + + /* Connect PEx pins to FMC Alternate function */ + GPIOE->AFR[0] = 0xC00000CC; + GPIOE->AFR[1] = 0xCCCCCCCC; + /* Configure PEx pins in Alternate function mode */ + GPIOE->MODER = 0xAAAA800A; + /* Configure PEx pins speed to 50 MHz */ + GPIOE->OSPEEDR = 0xAAAA800A; + /* Configure PEx pins Output type to push-pull */ + GPIOE->OTYPER = 0x00000000; + /* No pull-up, pull-down for PEx pins */ + GPIOE->PUPDR = 0x00000000; + + /* Connect PFx pins to FMC Alternate function */ + GPIOF->AFR[0] = 0xCCCCCCCC; + GPIOF->AFR[1] = 0xCCCCCCCC; + /* Configure PFx pins in Alternate function mode */ + GPIOF->MODER = 0xAA800AAA; + /* Configure PFx pins speed to 50 MHz */ + GPIOF->OSPEEDR = 0xAA800AAA; + /* Configure PFx pins Output type to push-pull */ + GPIOF->OTYPER = 0x00000000; + /* No pull-up, pull-down for PFx pins */ + GPIOF->PUPDR = 0x00000000; + + /* Connect PGx pins to FMC Alternate function */ + GPIOG->AFR[0] = 0xCCCCCCCC; + GPIOG->AFR[1] = 0xCCCCCCCC; + /* Configure PGx pins in Alternate function mode */ + GPIOG->MODER = 0xAAAAAAAA; + /* Configure PGx pins speed to 50 MHz */ + GPIOG->OSPEEDR = 0xAAAAAAAA; + /* Configure PGx pins Output type to push-pull */ + GPIOG->OTYPER = 0x00000000; + /* No pull-up, pull-down for PGx pins */ + GPIOG->PUPDR = 0x00000000; + +#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ + || defined(STM32F469xx) || defined(STM32F479xx) + /* Connect PHx pins to FMC Alternate function */ + GPIOH->AFR[0] = 0x00C0CC00; + GPIOH->AFR[1] = 0xCCCCCCCC; + /* Configure PHx pins in Alternate function mode */ + GPIOH->MODER = 0xAAAA08A0; + /* Configure PHx pins speed to 50 MHz */ + GPIOH->OSPEEDR = 0xAAAA08A0; + /* Configure PHx pins Output type to push-pull */ + GPIOH->OTYPER = 0x00000000; + /* No pull-up, pull-down for PHx pins */ + GPIOH->PUPDR = 0x00000000; + + /* Connect PIx pins to FMC Alternate function */ + GPIOI->AFR[0] = 0xCCCCCCCC; + GPIOI->AFR[1] = 0x00000CC0; + /* Configure PIx pins in Alternate function mode */ + GPIOI->MODER = 0x0028AAAA; + /* Configure PIx pins speed to 50 MHz */ + GPIOI->OSPEEDR = 0x0028AAAA; + /* Configure PIx pins Output type to push-pull */ + GPIOI->OTYPER = 0x00000000; + /* No pull-up, pull-down for PIx pins */ + GPIOI->PUPDR = 0x00000000; +#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */ + +/*-- FMC Configuration -------------------------------------------------------*/ + /* Enable the FMC interface clock */ + RCC->AHB3ENR |= 0x00000001; + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN); + + /* Configure and enable SDRAM bank1 */ +#if defined(STM32F446xx) + FMC_Bank5_6->SDCR[0] = 0x00001954; +#else + FMC_Bank5_6->SDCR[0] = 0x000019E4; +#endif /* STM32F446xx */ + FMC_Bank5_6->SDTR[0] = 0x01115351; + + /* SDRAM initialization sequence */ + /* Clock enable command */ + FMC_Bank5_6->SDCMR = 0x00000011; + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* Delay */ + for (index = 0; index<1000; index++); + + /* PALL command */ + FMC_Bank5_6->SDCMR = 0x00000012; + timeout = 0xFFFF; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* Auto refresh command */ +#if defined(STM32F446xx) + FMC_Bank5_6->SDCMR = 0x000000F3; +#else + FMC_Bank5_6->SDCMR = 0x00000073; +#endif /* STM32F446xx */ + timeout = 0xFFFF; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* MRD register program */ +#if defined(STM32F446xx) + FMC_Bank5_6->SDCMR = 0x00044014; +#else + FMC_Bank5_6->SDCMR = 0x00046014; +#endif /* STM32F446xx */ + timeout = 0xFFFF; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* Set refresh count */ + tmpreg = FMC_Bank5_6->SDRTR; +#if defined(STM32F446xx) + FMC_Bank5_6->SDRTR = (tmpreg | (0x0000050C<<1)); +#else + FMC_Bank5_6->SDRTR = (tmpreg | (0x0000027C<<1)); +#endif /* STM32F446xx */ + + /* Disable write protection */ + tmpreg = FMC_Bank5_6->SDCR[0]; + FMC_Bank5_6->SDCR[0] = (tmpreg & 0xFFFFFDFF); +#endif /* DATA_IN_ExtSDRAM */ +#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx */ + +#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)\ + || defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ + || defined(STM32F469xx) || defined(STM32F479xx) + +#if defined(DATA_IN_ExtSRAM) +/*-- GPIOs Configuration -----------------------------------------------------*/ + /* Enable GPIOD, GPIOE, GPIOF and GPIOG interface clock */ + RCC->AHB1ENR |= 0x00000078; + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIODEN); + + /* Connect PDx pins to FMC Alternate function */ + GPIOD->AFR[0] = 0x00CCC0CC; + GPIOD->AFR[1] = 0xCCCCCCCC; + /* Configure PDx pins in Alternate function mode */ + GPIOD->MODER = 0xAAAA0A8A; + /* Configure PDx pins speed to 100 MHz */ + GPIOD->OSPEEDR = 0xFFFF0FCF; + /* Configure PDx pins Output type to push-pull */ + GPIOD->OTYPER = 0x00000000; + /* No pull-up, pull-down for PDx pins */ + GPIOD->PUPDR = 0x00000000; + + /* Connect PEx pins to FMC Alternate function */ + GPIOE->AFR[0] = 0xC00CC0CC; + GPIOE->AFR[1] = 0xCCCCCCCC; + /* Configure PEx pins in Alternate function mode */ + GPIOE->MODER = 0xAAAA828A; + /* Configure PEx pins speed to 100 MHz */ + GPIOE->OSPEEDR = 0xFFFFC3CF; + /* Configure PEx pins Output type to push-pull */ + GPIOE->OTYPER = 0x00000000; + /* No pull-up, pull-down for PEx pins */ + GPIOE->PUPDR = 0x00000000; + + /* Connect PFx pins to FMC Alternate function */ + GPIOF->AFR[0] = 0x00CCCCCC; + GPIOF->AFR[1] = 0xCCCC0000; + /* Configure PFx pins in Alternate function mode */ + GPIOF->MODER = 0xAA000AAA; + /* Configure PFx pins speed to 100 MHz */ + GPIOF->OSPEEDR = 0xFF000FFF; + /* Configure PFx pins Output type to push-pull */ + GPIOF->OTYPER = 0x00000000; + /* No pull-up, pull-down for PFx pins */ + GPIOF->PUPDR = 0x00000000; + + /* Connect PGx pins to FMC Alternate function */ + GPIOG->AFR[0] = 0x00CCCCCC; + GPIOG->AFR[1] = 0x000000C0; + /* Configure PGx pins in Alternate function mode */ + GPIOG->MODER = 0x00085AAA; + /* Configure PGx pins speed to 100 MHz */ + GPIOG->OSPEEDR = 0x000CAFFF; + /* Configure PGx pins Output type to push-pull */ + GPIOG->OTYPER = 0x00000000; + /* No pull-up, pull-down for PGx pins */ + GPIOG->PUPDR = 0x00000000; + +/*-- FMC/FSMC Configuration --------------------------------------------------*/ + /* Enable the FMC/FSMC interface clock */ + RCC->AHB3ENR |= 0x00000001; + +#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN); + /* Configure and enable Bank1_SRAM2 */ + FMC_Bank1->BTCR[2] = 0x00001011; + FMC_Bank1->BTCR[3] = 0x00000201; + FMC_Bank1E->BWTR[2] = 0x0fffffff; +#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx */ +#if defined(STM32F469xx) || defined(STM32F479xx) + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN); + /* Configure and enable Bank1_SRAM2 */ + FMC_Bank1->BTCR[2] = 0x00001091; + FMC_Bank1->BTCR[3] = 0x00110212; + FMC_Bank1E->BWTR[2] = 0x0fffffff; +#endif /* STM32F469xx || STM32F479xx */ +#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx)|| defined(STM32F417xx) + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FSMCEN); + /* Configure and enable Bank1_SRAM2 */ + FSMC_Bank1->BTCR[2] = 0x00001011; + FSMC_Bank1->BTCR[3] = 0x00000201; + FSMC_Bank1E->BWTR[2] = 0x0FFFFFFF; +#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx */ + +#endif /* DATA_IN_ExtSRAM */ +#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F427xx || STM32F437xx ||\ + STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */ + (void)(tmp); +} +#endif /* DATA_IN_ExtSRAM && DATA_IN_ExtSDRAM */ +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f407-st-discovery/board/Kconfig b/bsp/stm32/stm32f407-st-discovery/board/Kconfig new file mode 100644 index 0000000000..7c0a91960b --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/board/Kconfig @@ -0,0 +1,60 @@ +menu "Hardware Drivers Config" + +config SOC_STM32F407VG + bool + select SOC_SERIES_STM32F4 + default y + +menu "Onboard Peripheral Drivers" + +endmenu + +menu "On-chip Peripheral Drivers" + + config BSP_USING_GPIO + bool "Enable GPIO" + select RT_USING_PIN + default y + + config BSP_USING_UART1 + bool "Enable UART1" + select RT_USING_SERIAL + default y + + config BSP_UART_USING_DMA_RX + bool "Enable UART RX DMA support" + default n + + config BSP_USING_SPI1 + bool "Enable SPI1 BUS" + select RT_USING_SPI + default n + + config BSP_SPI_USING_DMA + bool "Enable SPI DMA support" + default n + + menuconfig BSP_USING_I2C1 + bool "Enable I2C1 BUS (software simulation)" + default n + select RT_USING_I2C + select RT_USING_I2C_BITOPS + select RT_USING_PIN + if BSP_USING_I2C1 + config BSP_I2C1_SCL_PIN + int "i2c1 scl pin number" + range 1 216 + default 24 + config BSP_I2C1_SDA_PIN + int "I2C1 sda pin number" + range 1 216 + default 25 + endif + +endmenu + +menu "Board extended module Drivers" + +endmenu + +endmenu diff --git a/bsp/stm32/stm32f407-st-discovery/board/SConscript b/bsp/stm32/stm32f407-st-discovery/board/SConscript new file mode 100644 index 0000000000..1f5ee71ba4 --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/board/SConscript @@ -0,0 +1,30 @@ +import os +import rtconfig +from building import * + +Import('SDK_LIB') + +cwd = GetCurrentDir() + +# add general drivers +src = Split(''' +board.c +CubeMX_Config/Src/stm32f4xx_hal_msp.c +''') + +path = [cwd] +path += [cwd + '/CubeMX_Config/Inc'] + +startup_path_prefix = SDK_LIB + +if rtconfig.CROSS_TOOL == 'gcc': + src += [startup_path_prefix + '/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f407xx.s'] +elif rtconfig.CROSS_TOOL == 'keil': + src += [startup_path_prefix + '/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/arm/startup_stm32f407xx.s'] +elif rtconfig.CROSS_TOOL == 'iar': + src += [startup_path_prefix + '/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/iar/startup_stm32f407xx.s'] + +CPPDEFINES = ['STM32F407xx'] +group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES) + +Return('group') diff --git a/bsp/stm32/stm32f407-st-discovery/board/board.c b/bsp/stm32/stm32f407-st-discovery/board/board.c new file mode 100644 index 0000000000..c7df1bfa3b --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/board/board.c @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-11-06 SummerGift change to new framework + */ + +#include "board.h" + +void SystemClock_Config(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + + /**Configure the main internal regulator output voltage + */ + __HAL_RCC_PWR_CLK_ENABLE(); + __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); + /**Initializes the CPU, AHB and APB busses clocks + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; + RCC_OscInitStruct.HSEState = RCC_HSE_ON; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; + RCC_OscInitStruct.PLL.PLLM = 8; + RCC_OscInitStruct.PLL.PLLN = 336; + RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; + RCC_OscInitStruct.PLL.PLLQ = 7; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + { + Error_Handler(); + } + /**Initializes the CPU, AHB and APB busses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK) + { + Error_Handler(); + } +} + + diff --git a/bsp/stm32/stm32f407-st-discovery/board/board.h b/bsp/stm32/stm32f407-st-discovery/board/board.h new file mode 100644 index 0000000000..7e58e37051 --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/board/board.h @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-11-5 misonyo change to new framework + */ + +#ifndef __BOARD_H__ +#define __BOARD_H__ + +#include +#include +#include "drv_common.h" + +#define STM32_SRAM_SIZE (128) +#define STM32_SRAM_END (0x20000000 + STM32_SRAM_SIZE * 1024) + +#if defined(__CC_ARM) || defined(__CLANG_ARM) +extern int Image$$RW_IRAM1$$ZI$$Limit; +#define HEAP_BEGIN (&Image$$RW_IRAM1$$ZI$$Limit) +#elif __ICCARM__ +#pragma section="CSTACK" +#define HEAP_BEGIN (__segment_end("CSTACK")) +#else +extern int __bss_end; +#define HEAP_BEGIN (&__bss_end) +#endif + +#define HEAP_END STM32_SRAM_END + +void SystemClock_Config(void); + +#endif + diff --git a/bsp/stm32/stm32f407-st-discovery/board/linker_scripts/link.icf b/bsp/stm32/stm32f407-st-discovery/board/linker_scripts/link.icf new file mode 100644 index 0000000000..66c522a006 --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/board/linker_scripts/link.icf @@ -0,0 +1,30 @@ +/*###ICF### Section handled by ICF editor, don't touch! ****/ +/*-Editor annotation file-*/ +/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ +/*-Specials-*/ +define symbol __ICFEDIT_intvec_start__ = 0x08000000; +/*-Memory Regions-*/ +define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; +define symbol __ICFEDIT_region_ROM_end__ = 0x080FFFFF; +define symbol __ICFEDIT_region_RAM1_start__ = 0x20000000; +define symbol __ICFEDIT_region_RAM1_end__ = 0x2001FFFF; +define symbol __ICFEDIT_region_RAM2_start__ = 0x10000000; +define symbol __ICFEDIT_region_RAM2_end__ = 0x1000FFFF; +/*-Sizes-*/ +define symbol __ICFEDIT_size_cstack__ = 0x0400; +define symbol __ICFEDIT_size_heap__ = 0x0000; +/**** End of ICF editor section. ###ICF###*/ + +define memory mem with size = 4G; +define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; +define region RAM1_region = mem:[from __ICFEDIT_region_RAM1_start__ to __ICFEDIT_region_RAM1_end__]; + +define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; + +initialize by copy { readwrite }; +do not initialize { section .noinit }; + +place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; + +place in ROM_region { readonly }; +place in RAM1_region { readwrite, last block CSTACK }; diff --git a/bsp/stm32/stm32f407-st-discovery/board/linker_scripts/link.lds b/bsp/stm32/stm32f407-st-discovery/board/linker_scripts/link.lds new file mode 100644 index 0000000000..02bebed7a6 --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/board/linker_scripts/link.lds @@ -0,0 +1,145 @@ +/* + * linker script for STM32F4xx with GNU ld + * bernard.xiong 2009-10-14 + */ + +/* Program Entry, set to mark it as "used" and avoid gc */ +MEMORY +{ + CODE (rx) : ORIGIN = 0x08000000, LENGTH = 1024k /* 1024KB flash */ + RAM1 (rw) : ORIGIN = 0x20000000, LENGTH = 128k /* 128K sram */ + RAM2 (rw) : ORIGIN = 0x10000000, LENGTH = 64k /* 64K sram */ +} +ENTRY(Reset_Handler) +_system_stack_size = 0x200; + +SECTIONS +{ + .text : + { + . = ALIGN(4); + _stext = .; + KEEP(*(.isr_vector)) /* Startup code */ + + . = ALIGN(4); + *(.text) /* remaining code */ + *(.text.*) /* remaining code */ + *(.rodata) /* read-only data (constants) */ + *(.rodata*) + *(.glue_7) + *(.glue_7t) + *(.gnu.linkonce.t*) + + /* section information for finsh shell */ + . = ALIGN(4); + __fsymtab_start = .; + KEEP(*(FSymTab)) + __fsymtab_end = .; + + . = ALIGN(4); + __vsymtab_start = .; + KEEP(*(VSymTab)) + __vsymtab_end = .; + + /* section information for initial. */ + . = ALIGN(4); + __rt_init_start = .; + KEEP(*(SORT(.rti_fn*))) + __rt_init_end = .; + + . = ALIGN(4); + _etext = .; + } > CODE = 0 + + /* .ARM.exidx is sorted, so has to go in its own output section. */ + __exidx_start = .; + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + + /* This is used by the startup in order to initialize the .data secion */ + _sidata = .; + } > CODE + __exidx_end = .; + + /* .data section which is used for initialized data */ + + .data : AT (_sidata) + { + . = ALIGN(4); + /* This is used by the startup in order to initialize the .data secion */ + _sdata = . ; + + *(.data) + *(.data.*) + *(.gnu.linkonce.d*) + + . = ALIGN(4); + /* This is used by the startup in order to initialize the .data secion */ + _edata = . ; + } >RAM1 + + .stack : + { + . = ALIGN(4); + _sstack = .; + . = . + _system_stack_size; + . = ALIGN(4); + _estack = .; + } >RAM1 + + __bss_start = .; + .bss : + { + . = ALIGN(4); + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; + + *(.bss) + *(.bss.*) + *(COMMON) + + . = ALIGN(4); + /* This is used by the startup in order to initialize the .bss secion */ + _ebss = . ; + + *(.bss.init) + } > RAM1 + __bss_end = .; + + _end = .; + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + * Symbols in the DWARF debugging sections are relative to the beginning + * of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } +} diff --git a/bsp/stm32/stm32f407-st-discovery/board/linker_scripts/link.sct b/bsp/stm32/stm32f407-st-discovery/board/linker_scripts/link.sct new file mode 100644 index 0000000000..0d7c47992d --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/board/linker_scripts/link.sct @@ -0,0 +1,15 @@ +; ************************************************************* +; *** Scatter-Loading Description File generated by uVision *** +; ************************************************************* + +LR_IROM1 0x08000000 0x00100000 { ; load region size_region + ER_IROM1 0x08000000 0x00100000 { ; load address = execution address + *.o (RESET, +First) + *(InRoot$$Sections) + .ANY (+RO) + } + RW_IRAM1 0x20000000 0x00020000 { ; RW data + .ANY (+RW +ZI) + } +} + diff --git a/bsp/stm32/stm32f407-st-discovery/figures/board.png b/bsp/stm32/stm32f407-st-discovery/figures/board.png new file mode 100644 index 0000000000000000000000000000000000000000..83ba29baa1fca97b5aca7edc4049135392734187 GIT binary patch literal 389424 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
aTI{$(<-+ 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

TNVnJ-3WKm2GEfv~L_=X*iL)g* zFhW$L03(oqat0|3AhE9c01N98Hnnu}KK*n=I~=1|kWsfiVS<2=N6Jr6!Ud zk@6@_hHxdmR2ad3=8{+kQtl{dYCQbVDV8=zl#~=j!XQtO^@!D?#J3(tPJV_mN%-8e zd)fc+aqi#Rf})@i_zZeC_+V>^kBO1ap;}}J5Z}nc`W~sufO*OYj7wk_=>a@IVYD@ z1VmcL_R=a*qed|4VN8znB|;cNA@HmRrfP#}tMOflXDv=>w2*ixl!H(>Lgi?+o7Bgf zq=PQnRwA<8Gw7ls(|+}u!|(y0Ie}WKom=suirsul3Fl^Eo4>Q z6%L`QrIt-gLgUk<&h*R#)2#_MH`ZC{Z{j-#RO1PuDny;{OGF?kN`rM0sU&5QB7|e2 z(c&(O?nW1B49`6F1iKgZ5jH014O9O0@BbgHt}bJvHnMPJ8v`Dg+t0pTyJ?Qs$cmCB z=kssA_pdoTxsMYkPBADY!ba8a--(}f-K}S_B19-ft5zrW0@8Fuzc9RY_NUxi+2A|B z{%f57n{(`)-NV8C2l@IpzDZeBx5~UM$@7vRtlngbEF%gd0b-?vZ(5to*z);IqMr6+*?{@d~OdS@Yo)9 zsg2cm>KC5o|N6uKlclvgOw86vO2J^T&BVk(nq%WU_Uuy(I|=X-2yZIdQBSW7+}5=sxPGr}-rtkvfB?Q1B{$2f4M zAx;&d)L;$1r%-qp#nq*deykqqv>+7&}9X zA|Fw!`Bk>pb9kP>6M{4~1VMnoVw|WhT%yF51zr$gbR}05)>NoY0f8qG!qOe~FqA+^ zQKW>;7FGyKp&*EuXf@Cx<@()AEZw<*l0G#Q&Sdm^Ly}w&#ZCOM!nGKqQ5xjP;c~}z zZ@|cEyrhQ=98MTakx&{#VL>@T;HgTqDoo`ML*V(6jOuqHltiOJfh?*$%csl!f0P@n zL*Rs8AqmY60~Ub^CAP?j;)t<*(>PP*J(Xx+rNxK@sU?w}B%>k)DOtfdoT}V7zB2?; zRBa$MeOGdCbBT}7y~(h%f^`)XI1WOx!qLl0O5ZWDr%pVf808tZl*CrzR)^@#K0y)S zj6zY8nFKYZs7=-hYE4or=%*!llHjaCYDFnE+7$>

*t^Cz@=nt%EI@9vj0qn!abz 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

VKr8A)ae@*tViHN#PbQHFlEPp6eL8IMp1d}A5c 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

&2BVV&Y*J)>twq8RU;FOs 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 Hu0mjf8%K2O literal 0 HcmV?d00001 diff --git a/bsp/stm32/stm32f407-st-discovery/project.ewd b/bsp/stm32/stm32f407-st-discovery/project.ewd new file mode 100644 index 0000000000..f209af04a4 --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/project.ewd @@ -0,0 +1,2834 @@ + + + 3 + + rtthread + + ARM + + 1 + + C-SPY + 2 + + 29 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 1 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IJET_ID + 2 + + 8 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 1 + + + + + + + + STLINK_ID + 2 + + 4 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 6 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + + Release + + ARM + + 0 + + C-SPY + 2 + + 29 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 0 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 0 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 0 + + + + + + + + + + + IJET_ID + 2 + + 8 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 2 + 1 + 0 + + + + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 0 + + + + + + + + STLINK_ID + 2 + + 4 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 0 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 6 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + diff --git a/bsp/stm32/stm32f407-st-discovery/project.ewp b/bsp/stm32/stm32f407-st-discovery/project.ewp new file mode 100644 index 0000000000..702a5f252a --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/project.ewp @@ -0,0 +1,2263 @@ + + 3 + + rtthread + + ARM + + 1 + + General + 3 + + 29 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 34 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 20 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Release + + ARM + + 0 + + General + 3 + + 29 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 34 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 20 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + + Applications + + $PROJ_DIR$\applications\main.c + + + + Drivers + + $PROJ_DIR$\board\board.c + + + $PROJ_DIR$\board\CubeMX_Config\Src\stm32f4xx_hal_msp.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\iar\startup_stm32f407xx.s + + + $PROJ_DIR$\..\libraries\HAL_Drivers\drv_gpio.c + + + $PROJ_DIR$\..\libraries\HAL_Drivers\drv_usart.c + + + $PROJ_DIR$\..\libraries\HAL_Drivers\drv_common.c + + + + Kernel + + $PROJ_DIR$\..\..\..\src\clock.c + + + $PROJ_DIR$\..\..\..\src\components.c + + + $PROJ_DIR$\..\..\..\src\cpu.c + + + $PROJ_DIR$\..\..\..\src\device.c + + + $PROJ_DIR$\..\..\..\src\idle.c + + + $PROJ_DIR$\..\..\..\src\ipc.c + + + $PROJ_DIR$\..\..\..\src\irq.c + + + $PROJ_DIR$\..\..\..\src\kservice.c + + + $PROJ_DIR$\..\..\..\src\mem.c + + + $PROJ_DIR$\..\..\..\src\mempool.c + + + $PROJ_DIR$\..\..\..\src\object.c + + + $PROJ_DIR$\..\..\..\src\scheduler.c + + + $PROJ_DIR$\..\..\..\src\signal.c + + + $PROJ_DIR$\..\..\..\src\thread.c + + + $PROJ_DIR$\..\..\..\src\timer.c + + + + CORTEX-M4 + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4\cpuport.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4\context_iar.S + + + $PROJ_DIR$\..\..\..\libcpu\arm\common\backtrace.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\common\div0.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\common\showmem.c + + + + DeviceDrivers + + $PROJ_DIR$\..\..\..\components\drivers\misc\pin.c + + + $PROJ_DIR$\..\..\..\components\drivers\serial\serial.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\completion.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\dataqueue.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\pipe.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\ringblk_buf.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\ringbuffer.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\waitqueue.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\workqueue.c + + + + finsh + + $PROJ_DIR$\..\..\..\components\finsh\shell.c + + + $PROJ_DIR$\..\..\..\components\finsh\symbol.c + + + $PROJ_DIR$\..\..\..\components\finsh\cmd.c + + + $PROJ_DIR$\..\..\..\components\finsh\msh.c + + + $PROJ_DIR$\..\..\..\components\finsh\msh_cmd.c + + + $PROJ_DIR$\..\..\..\components\finsh\msh_file.c + + + + STM32_HAL + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cec.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_crc.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp_ex.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rng.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sram.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_usart.c + + + diff --git a/bsp/stm32/stm32f407-st-discovery/project.eww b/bsp/stm32/stm32f407-st-discovery/project.eww new file mode 100644 index 0000000000..c2cb02eb1e --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/project.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\project.ewp + + + + + diff --git a/bsp/stm32/stm32f407-st-discovery/project.uvopt b/bsp/stm32/stm32f407-st-discovery/project.uvopt new file mode 100644 index 0000000000..5c0b25d7f6 --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/project.uvopt @@ -0,0 +1,1200 @@ + + + + 1.0 + +
    ### uVision Project, (C) Keil Software
    + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + rtthread + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Datasheet + DATASHTS\ST\STM32F4xx\DM00037051.pdf + + + 1 + Reference Manual + DATASHTS\ST\STM32F4xx\DM00031020.pdf + + + 2 + Technical Reference Manual + datashts\arm\cortex_m4\r0p1\DDI0439C_CORTEX_M4_R0P1_TRM.PDF + + + 3 + Generic User Guide + datashts\arm\cortex_m4\r0p1\DUI0553A_CORTEX_M4_DGUG.PDF + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 11 + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + 0 + ST-LINKIII-KEIL_SWO + -U -O207 -S0 -C0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 + + + 0 + UL2CM3 + -O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Applications + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 20 + 0 + 1 + 24 + 0 + applications\main.c + main.c + 0 + 0 + + + + + Drivers + 0 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + board\board.c + board.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + board\CubeMX_Config\Src\stm32f4xx_hal_msp.c + stm32f4xx_hal_msp.c + 0 + 0 + + + 2 + 4 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f407xx.s + startup_stm32f407xx.s + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_gpio.c + drv_gpio.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_usart.c + drv_usart.c + 0 + 0 + + + 2 + 7 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_common.c + drv_common.c + 0 + 0 + + + + + Kernel + 0 + 0 + 0 + 0 + + 3 + 8 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\src\clock.c + clock.c + 0 + 0 + + + 3 + 9 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\src\components.c + components.c + 0 + 0 + + + 3 + 10 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\src\cpu.c + cpu.c + 0 + 0 + + + 3 + 11 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\src\device.c + device.c + 0 + 0 + + + 3 + 12 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\src\idle.c + idle.c + 0 + 0 + + + 3 + 13 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\src\ipc.c + ipc.c + 0 + 0 + + + 3 + 14 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\src\irq.c + irq.c + 0 + 0 + + + 3 + 15 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\src\kservice.c + kservice.c + 0 + 0 + + + 3 + 16 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\src\mem.c + mem.c + 0 + 0 + + + 3 + 17 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\src\mempool.c + mempool.c + 0 + 0 + + + 3 + 18 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\src\object.c + object.c + 0 + 0 + + + 3 + 19 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\src\scheduler.c + scheduler.c + 0 + 0 + + + 3 + 20 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\src\signal.c + signal.c + 0 + 0 + + + 3 + 21 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\src\thread.c + thread.c + 0 + 0 + + + 3 + 22 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\src\timer.c + timer.c + 0 + 0 + + + + + CORTEX-M4 + 0 + 0 + 0 + 0 + + 4 + 23 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\libcpu\arm\cortex-m4\cpuport.c + cpuport.c + 0 + 0 + + + 4 + 24 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\libcpu\arm\cortex-m4\context_rvds.S + context_rvds.S + 0 + 0 + + + 4 + 25 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\libcpu\arm\common\backtrace.c + backtrace.c + 0 + 0 + + + 4 + 26 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\libcpu\arm\common\div0.c + div0.c + 0 + 0 + + + 4 + 27 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\libcpu\arm\common\showmem.c + showmem.c + 0 + 0 + + + + + DeviceDrivers + 0 + 0 + 0 + 0 + + 5 + 28 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\misc\pin.c + pin.c + 0 + 0 + + + 5 + 29 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\serial\serial.c + serial.c + 0 + 0 + + + 5 + 30 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\src\completion.c + completion.c + 0 + 0 + + + 5 + 31 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\src\dataqueue.c + dataqueue.c + 0 + 0 + + + 5 + 32 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\src\pipe.c + pipe.c + 0 + 0 + + + 5 + 33 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\src\ringblk_buf.c + ringblk_buf.c + 0 + 0 + + + 5 + 34 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\src\ringbuffer.c + ringbuffer.c + 0 + 0 + + + 5 + 35 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\src\waitqueue.c + waitqueue.c + 0 + 0 + + + 5 + 36 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\src\workqueue.c + workqueue.c + 0 + 0 + + + + + finsh + 0 + 0 + 0 + 0 + + 6 + 37 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\components\finsh\shell.c + shell.c + 0 + 0 + + + 6 + 38 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\components\finsh\symbol.c + symbol.c + 0 + 0 + + + 6 + 39 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\components\finsh\cmd.c + cmd.c + 0 + 0 + + + 6 + 40 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\components\finsh\msh.c + msh.c + 0 + 0 + + + 6 + 41 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\components\finsh\msh_cmd.c + msh_cmd.c + 0 + 0 + + + 6 + 42 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\components\finsh\msh_file.c + msh_file.c + 0 + 0 + + + + + STM32_HAL + 0 + 0 + 0 + 0 + + 7 + 43 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c + system_stm32f4xx.c + 0 + 0 + + + 7 + 44 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c + stm32f4xx_hal.c + 0 + 0 + + + 7 + 45 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cec.c + stm32f4xx_hal_cec.c + 0 + 0 + + + 7 + 46 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c + stm32f4xx_hal_cortex.c + 0 + 0 + + + 7 + 47 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_crc.c + stm32f4xx_hal_crc.c + 0 + 0 + + + 7 + 48 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp.c + stm32f4xx_hal_cryp.c + 0 + 0 + + + 7 + 49 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp_ex.c + stm32f4xx_hal_cryp_ex.c + 0 + 0 + + + 7 + 50 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c + stm32f4xx_hal_dma.c + 0 + 0 + + + 7 + 51 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c + stm32f4xx_hal_dma_ex.c + 0 + 0 + + + 7 + 52 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c + stm32f4xx_hal_pwr.c + 0 + 0 + + + 7 + 53 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c + stm32f4xx_hal_pwr_ex.c + 0 + 0 + + + 7 + 54 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c + stm32f4xx_hal_rcc.c + 0 + 0 + + + 7 + 55 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c + stm32f4xx_hal_rcc_ex.c + 0 + 0 + + + 7 + 56 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rng.c + stm32f4xx_hal_rng.c + 0 + 0 + + + 7 + 57 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sram.c + stm32f4xx_hal_sram.c + 0 + 0 + + + 7 + 58 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c + stm32f4xx_hal_gpio.c + 0 + 0 + + + 7 + 59 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c + stm32f4xx_hal_uart.c + 0 + 0 + + + 7 + 60 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_usart.c + stm32f4xx_hal_usart.c + 0 + 0 + + + +
    diff --git a/bsp/stm32/stm32f407-st-discovery/project.uvoptx b/bsp/stm32/stm32f407-st-discovery/project.uvoptx new file mode 100644 index 0000000000..0daa73a527 --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/project.uvoptx @@ -0,0 +1,959 @@ + + + + 1.0 + +
    ### uVision Project, (C) Keil Software
    + + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + rtthread + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 18 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 6 + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + 0 + ST-LINKIII-KEIL_SWO + -U-O206 -O206 -SF4000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P2 -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM) + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM)) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 0 + 2 + 10000000 + + + + + + Applications + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + applications\main.c + main.c + 0 + 0 + + + + + Drivers + 0 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + board\board.c + board.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + board\CubeMX_Config\Src\stm32f4xx_hal_msp.c + stm32f4xx_hal_msp.c + 0 + 0 + + + 2 + 4 + 2 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f407xx.s + startup_stm32f407xx.s + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_gpio.c + drv_gpio.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_usart.c + drv_usart.c + 0 + 0 + + + 2 + 7 + 1 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_common.c + drv_common.c + 0 + 0 + + + + + Kernel + 0 + 0 + 0 + 0 + + 3 + 8 + 1 + 0 + 0 + 0 + ..\..\..\src\clock.c + clock.c + 0 + 0 + + + 3 + 9 + 1 + 0 + 0 + 0 + ..\..\..\src\components.c + components.c + 0 + 0 + + + 3 + 10 + 1 + 0 + 0 + 0 + ..\..\..\src\cpu.c + cpu.c + 0 + 0 + + + 3 + 11 + 1 + 0 + 0 + 0 + ..\..\..\src\device.c + device.c + 0 + 0 + + + 3 + 12 + 1 + 0 + 0 + 0 + ..\..\..\src\idle.c + idle.c + 0 + 0 + + + 3 + 13 + 1 + 0 + 0 + 0 + ..\..\..\src\ipc.c + ipc.c + 0 + 0 + + + 3 + 14 + 1 + 0 + 0 + 0 + ..\..\..\src\irq.c + irq.c + 0 + 0 + + + 3 + 15 + 1 + 0 + 0 + 0 + ..\..\..\src\kservice.c + kservice.c + 0 + 0 + + + 3 + 16 + 1 + 0 + 0 + 0 + ..\..\..\src\mem.c + mem.c + 0 + 0 + + + 3 + 17 + 1 + 0 + 0 + 0 + ..\..\..\src\mempool.c + mempool.c + 0 + 0 + + + 3 + 18 + 1 + 0 + 0 + 0 + ..\..\..\src\object.c + object.c + 0 + 0 + + + 3 + 19 + 1 + 0 + 0 + 0 + ..\..\..\src\scheduler.c + scheduler.c + 0 + 0 + + + 3 + 20 + 1 + 0 + 0 + 0 + ..\..\..\src\signal.c + signal.c + 0 + 0 + + + 3 + 21 + 1 + 0 + 0 + 0 + ..\..\..\src\thread.c + thread.c + 0 + 0 + + + 3 + 22 + 1 + 0 + 0 + 0 + ..\..\..\src\timer.c + timer.c + 0 + 0 + + + + + CORTEX-M4 + 0 + 0 + 0 + 0 + + 4 + 23 + 1 + 0 + 0 + 0 + ..\..\..\libcpu\arm\cortex-m4\cpuport.c + cpuport.c + 0 + 0 + + + 4 + 24 + 2 + 0 + 0 + 0 + ..\..\..\libcpu\arm\cortex-m4\context_rvds.S + context_rvds.S + 0 + 0 + + + 4 + 25 + 1 + 0 + 0 + 0 + ..\..\..\libcpu\arm\common\backtrace.c + backtrace.c + 0 + 0 + + + 4 + 26 + 1 + 0 + 0 + 0 + ..\..\..\libcpu\arm\common\div0.c + div0.c + 0 + 0 + + + 4 + 27 + 1 + 0 + 0 + 0 + ..\..\..\libcpu\arm\common\showmem.c + showmem.c + 0 + 0 + + + + + DeviceDrivers + 0 + 0 + 0 + 0 + + 5 + 28 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\misc\pin.c + pin.c + 0 + 0 + + + 5 + 29 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\serial\serial.c + serial.c + 0 + 0 + + + 5 + 30 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\completion.c + completion.c + 0 + 0 + + + 5 + 31 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\dataqueue.c + dataqueue.c + 0 + 0 + + + 5 + 32 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\pipe.c + pipe.c + 0 + 0 + + + 5 + 33 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\ringblk_buf.c + ringblk_buf.c + 0 + 0 + + + 5 + 34 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\ringbuffer.c + ringbuffer.c + 0 + 0 + + + 5 + 35 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\waitqueue.c + waitqueue.c + 0 + 0 + + + 5 + 36 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\workqueue.c + workqueue.c + 0 + 0 + + + + + finsh + 0 + 0 + 0 + 0 + + 6 + 37 + 1 + 0 + 0 + 0 + ..\..\..\components\finsh\shell.c + shell.c + 0 + 0 + + + 6 + 38 + 1 + 0 + 0 + 0 + ..\..\..\components\finsh\symbol.c + symbol.c + 0 + 0 + + + 6 + 39 + 1 + 0 + 0 + 0 + ..\..\..\components\finsh\cmd.c + cmd.c + 0 + 0 + + + 6 + 40 + 1 + 0 + 0 + 0 + ..\..\..\components\finsh\msh.c + msh.c + 0 + 0 + + + 6 + 41 + 1 + 0 + 0 + 0 + ..\..\..\components\finsh\msh_cmd.c + msh_cmd.c + 0 + 0 + + + 6 + 42 + 1 + 0 + 0 + 0 + ..\..\..\components\finsh\msh_file.c + msh_file.c + 0 + 0 + + + + + STM32_HAL + 0 + 0 + 0 + 0 + + 7 + 43 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c + system_stm32f4xx.c + 0 + 0 + + + 7 + 44 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c + stm32f4xx_hal.c + 0 + 0 + + + 7 + 45 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cec.c + stm32f4xx_hal_cec.c + 0 + 0 + + + 7 + 46 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c + stm32f4xx_hal_cortex.c + 0 + 0 + + + 7 + 47 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_crc.c + stm32f4xx_hal_crc.c + 0 + 0 + + + 7 + 48 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp.c + stm32f4xx_hal_cryp.c + 0 + 0 + + + 7 + 49 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp_ex.c + stm32f4xx_hal_cryp_ex.c + 0 + 0 + + + 7 + 50 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c + stm32f4xx_hal_dma.c + 0 + 0 + + + 7 + 51 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c + stm32f4xx_hal_dma_ex.c + 0 + 0 + + + 7 + 52 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c + stm32f4xx_hal_pwr.c + 0 + 0 + + + 7 + 53 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c + stm32f4xx_hal_pwr_ex.c + 0 + 0 + + + 7 + 54 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c + stm32f4xx_hal_rcc.c + 0 + 0 + + + 7 + 55 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c + stm32f4xx_hal_rcc_ex.c + 0 + 0 + + + 7 + 56 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rng.c + stm32f4xx_hal_rng.c + 0 + 0 + + + 7 + 57 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sram.c + stm32f4xx_hal_sram.c + 0 + 0 + + + 7 + 58 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c + stm32f4xx_hal_gpio.c + 0 + 0 + + + 7 + 59 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c + stm32f4xx_hal_uart.c + 0 + 0 + + + 7 + 60 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_usart.c + stm32f4xx_hal_usart.c + 0 + 0 + + + +
    diff --git a/bsp/stm32/stm32f407-st-discovery/project.uvproj b/bsp/stm32/stm32f407-st-discovery/project.uvproj new file mode 100644 index 0000000000..97f1ad48a7 --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/project.uvproj @@ -0,0 +1,744 @@ + + + + 1.1 + +
    ### uVision Project, (C) Keil Software
    + + + + rtthread + 0x4 + ARM-ADS + + + STM32F407VG + STMicroelectronics + IRAM(0x20000000-0x2001FFFF) IRAM2(0x10000000-0x1000FFFF) IROM(0x8000000-0x80FFFFF) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2 + + "Startup\ST\STM32F4xx\startup_stm32f40_41xxx.s" ("STM32F40/41xxx Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000) + 6103 + stm32f4xx.h + + + + + + + -DSTM32F40_41xxx + + + SFD\ST\STM32F4xx\STM32F40x.sfr + 0 + 0 + + + + ST\STM32F4xx\ + ST\STM32F4xx\ + + 0 + 0 + 0 + 0 + 1 + + .\build\keil\Obj\ + rtthread + 1 + 0 + 0 + 1 + 0 + .\build\keil\List\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin !L --output rtthread.bin + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -MPU -REMAP + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 0 + + 0 + 11 + + + + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + "" () + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 1 + 0 + 8 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 1 + 0x8000000 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 0 + 0x10000000 + 0x10000 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + + + USE_HAL_DRIVER, STM32F407xx + + 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 + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + .\board\linker_scripts\link.sct + + + --keep *.o(.rti_fn.*) --keep *.o(FSymTab) + + + + + + + + Applications + + + main.c + 1 + applications\main.c + + + + + Drivers + + + board.c + 1 + board\board.c + + + stm32f4xx_hal_msp.c + 1 + board\CubeMX_Config\Src\stm32f4xx_hal_msp.c + + + startup_stm32f407xx.s + 2 + ..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f407xx.s + + + drv_gpio.c + 1 + ..\libraries\HAL_Drivers\drv_gpio.c + + + drv_usart.c + 1 + ..\libraries\HAL_Drivers\drv_usart.c + + + drv_common.c + 1 + ..\libraries\HAL_Drivers\drv_common.c + + + + + Kernel + + + clock.c + 1 + ..\..\..\src\clock.c + + + components.c + 1 + ..\..\..\src\components.c + + + cpu.c + 1 + ..\..\..\src\cpu.c + + + device.c + 1 + ..\..\..\src\device.c + + + idle.c + 1 + ..\..\..\src\idle.c + + + ipc.c + 1 + ..\..\..\src\ipc.c + + + irq.c + 1 + ..\..\..\src\irq.c + + + kservice.c + 1 + ..\..\..\src\kservice.c + + + mem.c + 1 + ..\..\..\src\mem.c + + + mempool.c + 1 + ..\..\..\src\mempool.c + + + object.c + 1 + ..\..\..\src\object.c + + + scheduler.c + 1 + ..\..\..\src\scheduler.c + + + signal.c + 1 + ..\..\..\src\signal.c + + + thread.c + 1 + ..\..\..\src\thread.c + + + timer.c + 1 + ..\..\..\src\timer.c + + + + + CORTEX-M4 + + + cpuport.c + 1 + ..\..\..\libcpu\arm\cortex-m4\cpuport.c + + + context_rvds.S + 2 + ..\..\..\libcpu\arm\cortex-m4\context_rvds.S + + + backtrace.c + 1 + ..\..\..\libcpu\arm\common\backtrace.c + + + div0.c + 1 + ..\..\..\libcpu\arm\common\div0.c + + + showmem.c + 1 + ..\..\..\libcpu\arm\common\showmem.c + + + + + DeviceDrivers + + + pin.c + 1 + ..\..\..\components\drivers\misc\pin.c + + + serial.c + 1 + ..\..\..\components\drivers\serial\serial.c + + + completion.c + 1 + ..\..\..\components\drivers\src\completion.c + + + dataqueue.c + 1 + ..\..\..\components\drivers\src\dataqueue.c + + + pipe.c + 1 + ..\..\..\components\drivers\src\pipe.c + + + ringblk_buf.c + 1 + ..\..\..\components\drivers\src\ringblk_buf.c + + + ringbuffer.c + 1 + ..\..\..\components\drivers\src\ringbuffer.c + + + waitqueue.c + 1 + ..\..\..\components\drivers\src\waitqueue.c + + + workqueue.c + 1 + ..\..\..\components\drivers\src\workqueue.c + + + + + finsh + + + shell.c + 1 + ..\..\..\components\finsh\shell.c + + + symbol.c + 1 + ..\..\..\components\finsh\symbol.c + + + cmd.c + 1 + ..\..\..\components\finsh\cmd.c + + + msh.c + 1 + ..\..\..\components\finsh\msh.c + + + msh_cmd.c + 1 + ..\..\..\components\finsh\msh_cmd.c + + + msh_file.c + 1 + ..\..\..\components\finsh\msh_file.c + + + + + STM32_HAL + + + system_stm32f4xx.c + 1 + ..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c + + + stm32f4xx_hal.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c + + + stm32f4xx_hal_cec.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cec.c + + + stm32f4xx_hal_cortex.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c + + + stm32f4xx_hal_crc.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_crc.c + + + stm32f4xx_hal_cryp.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp.c + + + stm32f4xx_hal_cryp_ex.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp_ex.c + + + stm32f4xx_hal_dma.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c + + + stm32f4xx_hal_dma_ex.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c + + + stm32f4xx_hal_pwr.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c + + + stm32f4xx_hal_pwr_ex.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c + + + stm32f4xx_hal_rcc.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c + + + stm32f4xx_hal_rcc_ex.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c + + + stm32f4xx_hal_rng.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rng.c + + + stm32f4xx_hal_sram.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sram.c + + + stm32f4xx_hal_gpio.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c + + + stm32f4xx_hal_uart.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c + + + stm32f4xx_hal_usart.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_usart.c + + + + + + + +
    diff --git a/bsp/stm32/stm32f407-st-discovery/project.uvprojx b/bsp/stm32/stm32f407-st-discovery/project.uvprojx new file mode 100644 index 0000000000..69e28557c0 --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/project.uvprojx @@ -0,0 +1,725 @@ + + + + 2.1 + +
    ### uVision Project, (C) Keil Software
    + + + + rtthread + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + STM32F407VGTx + STMicroelectronics + Keil.STM32F4xx_DFP.2.12.0 + http://www.keil.com/pack + IRAM(0x20000000,0x00020000) IRAM2(0x10000000,0x00010000) IROM(0x08000000,0x00100000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM)) + 0 + $$Device:STM32F407VGTx$Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h + + + + + + + + + + $$Device:STM32F407VGTx$CMSIS\SVD\STM32F40x.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\build\keil\Obj\ + rtthread + 1 + 0 + 0 + 1 + 0 + .\build\keil\List\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + fromelf --bin !L --output rtthread.bin + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -MPU -REMAP + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + "" () + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 1 + 0 + 8 + 0 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 1 + 0x8000000 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 0 + 0x10000000 + 0x10000 + + + + + + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + + USE_HAL_DRIVER, STM32F407xx + + 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 + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + .\board\linker_scripts\link.sct + + + --keep *.o(.rti_fn.*) --keep *.o(FSymTab) + + + + + + + + Applications + + + main.c + 1 + applications\main.c + + + + + Drivers + + + board.c + 1 + board\board.c + + + stm32f4xx_hal_msp.c + 1 + board\CubeMX_Config\Src\stm32f4xx_hal_msp.c + + + startup_stm32f407xx.s + 2 + ..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f407xx.s + + + drv_gpio.c + 1 + ..\libraries\HAL_Drivers\drv_gpio.c + + + drv_usart.c + 1 + ..\libraries\HAL_Drivers\drv_usart.c + + + drv_common.c + 1 + ..\libraries\HAL_Drivers\drv_common.c + + + + + Kernel + + + clock.c + 1 + ..\..\..\src\clock.c + + + components.c + 1 + ..\..\..\src\components.c + + + cpu.c + 1 + ..\..\..\src\cpu.c + + + device.c + 1 + ..\..\..\src\device.c + + + idle.c + 1 + ..\..\..\src\idle.c + + + ipc.c + 1 + ..\..\..\src\ipc.c + + + irq.c + 1 + ..\..\..\src\irq.c + + + kservice.c + 1 + ..\..\..\src\kservice.c + + + mem.c + 1 + ..\..\..\src\mem.c + + + mempool.c + 1 + ..\..\..\src\mempool.c + + + object.c + 1 + ..\..\..\src\object.c + + + scheduler.c + 1 + ..\..\..\src\scheduler.c + + + signal.c + 1 + ..\..\..\src\signal.c + + + thread.c + 1 + ..\..\..\src\thread.c + + + timer.c + 1 + ..\..\..\src\timer.c + + + + + CORTEX-M4 + + + cpuport.c + 1 + ..\..\..\libcpu\arm\cortex-m4\cpuport.c + + + context_rvds.S + 2 + ..\..\..\libcpu\arm\cortex-m4\context_rvds.S + + + backtrace.c + 1 + ..\..\..\libcpu\arm\common\backtrace.c + + + div0.c + 1 + ..\..\..\libcpu\arm\common\div0.c + + + showmem.c + 1 + ..\..\..\libcpu\arm\common\showmem.c + + + + + DeviceDrivers + + + pin.c + 1 + ..\..\..\components\drivers\misc\pin.c + + + serial.c + 1 + ..\..\..\components\drivers\serial\serial.c + + + completion.c + 1 + ..\..\..\components\drivers\src\completion.c + + + dataqueue.c + 1 + ..\..\..\components\drivers\src\dataqueue.c + + + pipe.c + 1 + ..\..\..\components\drivers\src\pipe.c + + + ringblk_buf.c + 1 + ..\..\..\components\drivers\src\ringblk_buf.c + + + ringbuffer.c + 1 + ..\..\..\components\drivers\src\ringbuffer.c + + + waitqueue.c + 1 + ..\..\..\components\drivers\src\waitqueue.c + + + workqueue.c + 1 + ..\..\..\components\drivers\src\workqueue.c + + + + + finsh + + + shell.c + 1 + ..\..\..\components\finsh\shell.c + + + symbol.c + 1 + ..\..\..\components\finsh\symbol.c + + + cmd.c + 1 + ..\..\..\components\finsh\cmd.c + + + msh.c + 1 + ..\..\..\components\finsh\msh.c + + + msh_cmd.c + 1 + ..\..\..\components\finsh\msh_cmd.c + + + msh_file.c + 1 + ..\..\..\components\finsh\msh_file.c + + + + + STM32_HAL + + + system_stm32f4xx.c + 1 + ..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c + + + stm32f4xx_hal.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c + + + stm32f4xx_hal_cec.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cec.c + + + stm32f4xx_hal_cortex.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c + + + stm32f4xx_hal_crc.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_crc.c + + + stm32f4xx_hal_cryp.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp.c + + + stm32f4xx_hal_cryp_ex.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp_ex.c + + + stm32f4xx_hal_dma.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c + + + stm32f4xx_hal_dma_ex.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c + + + stm32f4xx_hal_pwr.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c + + + stm32f4xx_hal_pwr_ex.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c + + + stm32f4xx_hal_rcc.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c + + + stm32f4xx_hal_rcc_ex.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c + + + stm32f4xx_hal_rng.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rng.c + + + stm32f4xx_hal_sram.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sram.c + + + stm32f4xx_hal_gpio.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c + + + stm32f4xx_hal_uart.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c + + + stm32f4xx_hal_usart.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_usart.c + + + + + + + + + + + + + +
    diff --git a/bsp/stm32/stm32f407-st-discovery/rtconfig.h b/bsp/stm32/stm32f407-st-discovery/rtconfig.h new file mode 100644 index 0000000000..a7d941bd2b --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/rtconfig.h @@ -0,0 +1,171 @@ +#ifndef RT_CONFIG_H__ +#define RT_CONFIG_H__ + +/* Automatically generated file; DO NOT EDIT. */ +/* RT-Thread Configuration */ + +/* RT-Thread Kernel */ + +#define RT_NAME_MAX 8 +#define RT_ALIGN_SIZE 4 +#define RT_THREAD_PRIORITY_32 +#define RT_THREAD_PRIORITY_MAX 32 +#define RT_TICK_PER_SECOND 1000 +#define RT_USING_OVERFLOW_CHECK +#define RT_USING_HOOK +#define RT_USING_IDLE_HOOK +#define RT_IDEL_HOOK_LIST_SIZE 4 +#define IDLE_THREAD_STACK_SIZE 256 +#define RT_DEBUG + +/* Inter-Thread communication */ + +#define RT_USING_SEMAPHORE +#define RT_USING_MUTEX +#define RT_USING_EVENT +#define RT_USING_MAILBOX +#define RT_USING_MESSAGEQUEUE + +/* Memory Management */ + +#define RT_USING_MEMPOOL +#define RT_USING_SMALL_MEM +#define RT_USING_HEAP + +/* Kernel Device Object */ + +#define RT_USING_DEVICE +#define RT_USING_CONSOLE +#define RT_CONSOLEBUF_SIZE 128 +#define RT_CONSOLE_DEVICE_NAME "uart1" +#define RT_VER_NUM 0x40000 +#define ARCH_ARM +#define ARCH_ARM_CORTEX_M +#define ARCH_ARM_CORTEX_M4 + +/* RT-Thread Components */ + +#define RT_USING_COMPONENTS_INIT +#define RT_USING_USER_MAIN +#define RT_MAIN_THREAD_STACK_SIZE 2048 +#define RT_MAIN_THREAD_PRIORITY 10 + +/* C++ features */ + + +/* Command shell */ + +#define RT_USING_FINSH +#define FINSH_THREAD_NAME "tshell" +#define FINSH_USING_HISTORY +#define FINSH_HISTORY_LINES 5 +#define FINSH_USING_SYMTAB +#define FINSH_USING_DESCRIPTION +#define FINSH_THREAD_PRIORITY 20 +#define FINSH_THREAD_STACK_SIZE 2048 +#define FINSH_CMD_SIZE 80 +#define FINSH_USING_MSH +#define FINSH_USING_MSH_DEFAULT +#define FINSH_USING_MSH_ONLY +#define FINSH_ARG_MAX 10 + +/* Device virtual file system */ + + +/* Device Drivers */ + +#define RT_USING_DEVICE_IPC +#define RT_PIPE_BUFSZ 512 +#define RT_USING_SERIAL +#define RT_SERIAL_USING_DMA +#define RT_USING_PIN + +/* Using WiFi */ + + +/* Using USB */ + + +/* POSIX layer and C standard library */ + + +/* Network */ + +/* Socket abstraction layer */ + + +/* light weight TCP/IP stack */ + + +/* Modbus master and slave stack */ + + +/* AT commands */ + + +/* VBUS(Virtual Software BUS) */ + + +/* Utilities */ + + +/* ARM CMSIS */ + + +/* RT-Thread online packages */ + +/* IoT - internet of things */ + + +/* Wi-Fi */ + +/* Marvell WiFi */ + + +/* Wiced WiFi */ + + +/* IoT Cloud */ + + +/* security packages */ + + +/* language packages */ + + +/* multimedia packages */ + + +/* tools packages */ + + +/* system packages */ + + +/* peripheral libraries and drivers */ + + +/* miscellaneous packages */ + + +/* samples: kernel and components samples */ + +#define SOC_FAMILY_STM32 +#define SOC_SERIES_STM32F4 + +/* Hardware Drivers Config */ + +#define SOC_STM32F407VG + +/* Onboard Peripheral Drivers */ + +/* On-chip Peripheral Drivers */ + +#define BSP_USING_GPIO +#define BSP_USING_UART1 + +/* Board extended module Drivers */ + + +#endif diff --git a/bsp/stm32/stm32f407-st-discovery/rtconfig.py b/bsp/stm32/stm32f407-st-discovery/rtconfig.py new file mode 100644 index 0000000000..4d9d4450aa --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/rtconfig.py @@ -0,0 +1,134 @@ +import os + +# toolchains options +ARCH='arm' +CPU='cortex-m4' +CROSS_TOOL='gcc' + +# bsp lib config +BSP_LIBRARY_TYPE = None + +if os.getenv('RTT_CC'): + CROSS_TOOL = os.getenv('RTT_CC') +if os.getenv('RTT_ROOT'): + RTT_ROOT = os.getenv('RTT_ROOT') + +# cross_tool provides the cross compiler +# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR +if CROSS_TOOL == 'gcc': + PLATFORM = 'gcc' + EXEC_PATH = r'C:\Users\XXYYZZ' +elif CROSS_TOOL == 'keil': + PLATFORM = 'armcc' + EXEC_PATH = r'C:/Keil_v5' +elif CROSS_TOOL == 'iar': + PLATFORM = 'iar' + EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.0' + +if os.getenv('RTT_EXEC_PATH'): + EXEC_PATH = os.getenv('RTT_EXEC_PATH') + +BUILD = 'debug' + +if PLATFORM == 'gcc': + # toolchains + PREFIX = 'arm-none-eabi-' + CC = PREFIX + 'gcc' + AS = PREFIX + 'gcc' + AR = PREFIX + 'ar' + CXX = PREFIX + 'g++' + LINK = PREFIX + 'gcc' + TARGET_EXT = 'elf' + SIZE = PREFIX + 'size' + OBJDUMP = PREFIX + 'objdump' + OBJCPY = PREFIX + 'objcopy' + + DEVICE = ' -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections' + CFLAGS = DEVICE + ' -std=c99 -Dgcc' + AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -Wa,-mimplicit-it=thumb ' + LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,Reset_Handler -T board/linker_scripts/link.lds' + + CPATH = '' + LPATH = '' + + if BUILD == 'debug': + CFLAGS += ' -O0 -gdwarf-2 -g' + AFLAGS += ' -gdwarf-2' + else: + CFLAGS += ' -O2' + + POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n' + +elif PLATFORM == 'armcc': + # toolchains + CC = 'armcc' + AS = 'armasm' + AR = 'armar' + LINK = 'armlink' + TARGET_EXT = 'axf' + + DEVICE = ' --cpu Cortex-M4.fp ' + CFLAGS = '-c ' + DEVICE + ' --apcs=interwork --c99' + AFLAGS = DEVICE + ' --apcs=interwork ' + LFLAGS = DEVICE + ' --scatter "board\linker_scripts\link.sct" --info sizes --info totals --info unused --info veneers --list rtthread.map --strict' + CFLAGS += ' -I' + EXEC_PATH + '/ARM/ARMCC/include' + LFLAGS += ' --libpath=' + EXEC_PATH + '/ARM/ARMCC/lib' + + CFLAGS += ' -D__MICROLIB ' + AFLAGS += ' --pd "__MICROLIB SETA 1" ' + LFLAGS += ' --library_type=microlib ' + EXEC_PATH += '/ARM/ARMCC/bin/' + + if BUILD == 'debug': + CFLAGS += ' -g -O0' + AFLAGS += ' -g' + else: + CFLAGS += ' -O2' + + POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET' + +elif PLATFORM == 'iar': + # toolchains + CC = 'iccarm' + AS = 'iasmarm' + AR = 'iarchive' + LINK = 'ilinkarm' + TARGET_EXT = 'out' + + DEVICE = '-Dewarm' + + CFLAGS = DEVICE + CFLAGS += ' --diag_suppress Pa050' + CFLAGS += ' --no_cse' + CFLAGS += ' --no_unroll' + CFLAGS += ' --no_inline' + CFLAGS += ' --no_code_motion' + CFLAGS += ' --no_tbaa' + CFLAGS += ' --no_clustering' + CFLAGS += ' --no_scheduling' + CFLAGS += ' --endian=little' + CFLAGS += ' --cpu=Cortex-M4' + CFLAGS += ' -e' + CFLAGS += ' --fpu=VFPv4_sp' + CFLAGS += ' --dlib_config "' + EXEC_PATH + '/arm/INC/c/DLib_Config_Normal.h"' + CFLAGS += ' --silent' + + AFLAGS = DEVICE + AFLAGS += ' -s+' + AFLAGS += ' -w+' + AFLAGS += ' -r' + AFLAGS += ' --cpu Cortex-M4' + AFLAGS += ' --fpu VFPv4_sp' + AFLAGS += ' -S' + + if BUILD == 'debug': + CFLAGS += ' --debug' + CFLAGS += ' -On' + else: + CFLAGS += ' -Oh' + + LFLAGS = ' --config "board/linker_scripts/link.icf"' + LFLAGS += ' --entry __iar_program_start' + + EXEC_PATH = EXEC_PATH + '/arm/bin/' + POST_ACTION = 'ielftool --bin $TARGET rtthread.bin' diff --git a/bsp/stm32/stm32f407-st-discovery/template.ewp b/bsp/stm32/stm32f407-st-discovery/template.ewp new file mode 100644 index 0000000000..f30fe08da5 --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/template.ewp @@ -0,0 +1,2031 @@ + + + 3 + + rtthread + + ARM + + 1 + + General + 3 + + 29 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 34 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 20 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Release + + ARM + + 0 + + General + 3 + + 29 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 34 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 20 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + diff --git a/bsp/stm32/stm32f407-st-discovery/template.eww b/bsp/stm32/stm32f407-st-discovery/template.eww new file mode 100644 index 0000000000..bd036bb4c9 --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/template.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\template.ewp + + + + + diff --git a/bsp/stm32/stm32f407-st-discovery/template.uvopt b/bsp/stm32/stm32f407-st-discovery/template.uvopt new file mode 100644 index 0000000000..42ee0721ab --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/template.uvopt @@ -0,0 +1,184 @@ + + + + 1.0 + +
    ### uVision Project, (C) Keil Software
    + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + rtthread + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 0 + 0 + 1 + + 255 + + + 0 + Datasheet + DATASHTS\ST\STM32F4xx\DM00037051.pdf + + + 1 + Reference Manual + DATASHTS\ST\STM32F4xx\DM00031020.pdf + + + 2 + Technical Reference Manual + datashts\arm\cortex_m4\r0p1\DDI0439C_CORTEX_M4_R0P1_TRM.PDF + + + 3 + Generic User Guide + datashts\arm\cortex_m4\r0p1\DUI0553A_CORTEX_M4_DGUG.PDF + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 11 + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + 0 + ST-LINKIII-KEIL_SWO + -U -O207 -S0 -C0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 + + + 0 + UL2CM3 + -O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + +
    diff --git a/bsp/stm32/stm32f407-st-discovery/template.uvoptx b/bsp/stm32/stm32f407-st-discovery/template.uvoptx new file mode 100644 index 0000000000..17a63c9616 --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/template.uvoptx @@ -0,0 +1,183 @@ + + + + 1.0 + +
    ### uVision Project, (C) Keil Software
    + + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + rtthread + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 0 + 0 + 1 + + 18 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 6 + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + 0 + ST-LINKIII-KEIL_SWO + -U-O206 -O206 -SF4000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P2 -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM) + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM)) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 0 + 2 + 10000000 + + + + +
    diff --git a/bsp/stm32/stm32f407-st-discovery/template.uvproj b/bsp/stm32/stm32f407-st-discovery/template.uvproj new file mode 100644 index 0000000000..c07f4e4fd7 --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/template.uvproj @@ -0,0 +1,407 @@ + + + + 1.1 + +
    ### uVision Project, (C) Keil Software
    + + + + rtthread + 0x4 + ARM-ADS + + + STM32F407VG + STMicroelectronics + IRAM(0x20000000-0x2001FFFF) IRAM2(0x10000000-0x1000FFFF) IROM(0x8000000-0x80FFFFF) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2 + + "Startup\ST\STM32F4xx\startup_stm32f40_41xxx.s" ("STM32F40/41xxx Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000) + 6103 + stm32f4xx.h + + + + + + + -DSTM32F40_41xxx + + + SFD\ST\STM32F4xx\STM32F40x.sfr + 0 + 0 + + + + ST\STM32F4xx\ + ST\STM32F4xx\ + + 0 + 0 + 0 + 0 + 1 + + .\build\keil\Obj\ + rtthread + 1 + 0 + 0 + 1 + 0 + .\build\keil\List\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin !L --output rtthread.bin + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -MPU -REMAP + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 0 + + 0 + 11 + + + + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + "" () + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 1 + 0 + 8 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 1 + 0x8000000 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 0 + 0x10000000 + 0x10000 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + .\board\linker_scripts\link.sct + + + + + + + + + + + +
    diff --git a/bsp/stm32/stm32f407-st-discovery/template.uvprojx b/bsp/stm32/stm32f407-st-discovery/template.uvprojx new file mode 100644 index 0000000000..f6ed55d8d0 --- /dev/null +++ b/bsp/stm32/stm32f407-st-discovery/template.uvprojx @@ -0,0 +1,387 @@ + + + + 2.1 + +
    ### uVision Project, (C) Keil Software
    + + + + rtthread + 0x4 + ARM-ADS + 0 + + + STM32F407VGTx + STMicroelectronics + Keil.STM32F4xx_DFP.2.12.0 + http://www.keil.com/pack + IRAM(0x20000000,0x00020000) IRAM2(0x10000000,0x00010000) IROM(0x08000000,0x00100000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM)) + 0 + $$Device:STM32F407VGTx$Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h + + + + + + + + + + $$Device:STM32F407VGTx$CMSIS\SVD\STM32F40x.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\build\keil\Obj\ + rtthread + 1 + 0 + 0 + 1 + 0 + .\build\keil\List\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + fromelf --bin !L --output rtthread.bin + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -MPU -REMAP + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + "" () + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 1 + 0 + 8 + 0 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 1 + 0x8000000 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 0 + 0x10000000 + 0x10000 + + + + + + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + .\board\linker_scripts\link.sct + + + + + + + + + + + + + + + + + +