From d7741b55066e435cd5f6778e8f4818373360407c Mon Sep 17 00:00:00 2001 From: jinsheng Date: Thu, 10 Jan 2019 22:39:34 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0stm32f746-disco=20bsp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/stm32/stm32f746-st-disco/.config | 341 ++ bsp/stm32/stm32f746-st-disco/.gitignore | 42 + bsp/stm32/stm32f746-st-disco/Kconfig | 21 + bsp/stm32/stm32f746-st-disco/README.md | 107 + bsp/stm32/stm32f746-st-disco/SConscript | 14 + bsp/stm32/stm32f746-st-disco/SConstruct | 47 + .../applications/SConscript | 12 + .../stm32f746-st-disco/applications/main.c | 33 + .../board/CubeMX_Config/.mxproject | 13 + .../board/CubeMX_Config/CubeMX_Config.ioc | 155 + .../board/CubeMX_Config/Inc/main.h | 91 + .../CubeMX_Config/Inc/stm32f7xx_hal_conf.h | 455 +++ .../board/CubeMX_Config/Inc/stm32f7xx_it.h | 84 + .../board/CubeMX_Config/Src/main.c | 271 ++ .../CubeMX_Config/Src/stm32f7xx_hal_msp.c | 182 + .../board/CubeMX_Config/Src/stm32f7xx_it.c | 217 ++ .../CubeMX_Config/Src/system_stm32f7xx.c | 278 ++ bsp/stm32/stm32f746-st-disco/board/Kconfig | 45 + bsp/stm32/stm32f746-st-disco/board/SConscript | 27 + bsp/stm32/stm32f746-st-disco/board/board.c | 66 + bsp/stm32/stm32f746-st-disco/board/board.h | 41 + .../board/linker_scripts/link.icf | 28 + .../board/linker_scripts/link.lds | 144 + .../board/linker_scripts/link.sct | 15 + .../stm32f746-st-disco/figures/board.jpg | Bin 0 -> 380301 bytes bsp/stm32/stm32f746-st-disco/project.ewd | 2966 +++++++++++++++++ bsp/stm32/stm32f746-st-disco/project.ewp | 2263 +++++++++++++ bsp/stm32/stm32f746-st-disco/project.eww | 10 + bsp/stm32/stm32f746-st-disco/project.uvoptx | 1029 ++++++ bsp/stm32/stm32f746-st-disco/project.uvprojx | 718 ++++ bsp/stm32/stm32f746-st-disco/rtconfig.h | 179 + bsp/stm32/stm32f746-st-disco/rtconfig.py | 144 + bsp/stm32/stm32f746-st-disco/template.ewd | 2966 +++++++++++++++++ bsp/stm32/stm32f746-st-disco/template.ewp | 2031 +++++++++++ bsp/stm32/stm32f746-st-disco/template.eww | 10 + bsp/stm32/stm32f746-st-disco/template.uvoptx | 256 ++ bsp/stm32/stm32f746-st-disco/template.uvprojx | 386 +++ 37 files changed, 15687 insertions(+) create mode 100644 bsp/stm32/stm32f746-st-disco/.config create mode 100644 bsp/stm32/stm32f746-st-disco/.gitignore create mode 100644 bsp/stm32/stm32f746-st-disco/Kconfig create mode 100644 bsp/stm32/stm32f746-st-disco/README.md create mode 100644 bsp/stm32/stm32f746-st-disco/SConscript create mode 100644 bsp/stm32/stm32f746-st-disco/SConstruct create mode 100644 bsp/stm32/stm32f746-st-disco/applications/SConscript create mode 100644 bsp/stm32/stm32f746-st-disco/applications/main.c create mode 100644 bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/.mxproject create mode 100644 bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/CubeMX_Config.ioc create mode 100644 bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Inc/main.h create mode 100644 bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Inc/stm32f7xx_hal_conf.h create mode 100644 bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Inc/stm32f7xx_it.h create mode 100644 bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Src/main.c create mode 100644 bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Src/stm32f7xx_hal_msp.c create mode 100644 bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Src/stm32f7xx_it.c create mode 100644 bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Src/system_stm32f7xx.c create mode 100644 bsp/stm32/stm32f746-st-disco/board/Kconfig create mode 100644 bsp/stm32/stm32f746-st-disco/board/SConscript create mode 100644 bsp/stm32/stm32f746-st-disco/board/board.c create mode 100644 bsp/stm32/stm32f746-st-disco/board/board.h create mode 100644 bsp/stm32/stm32f746-st-disco/board/linker_scripts/link.icf create mode 100644 bsp/stm32/stm32f746-st-disco/board/linker_scripts/link.lds create mode 100644 bsp/stm32/stm32f746-st-disco/board/linker_scripts/link.sct create mode 100644 bsp/stm32/stm32f746-st-disco/figures/board.jpg create mode 100644 bsp/stm32/stm32f746-st-disco/project.ewd create mode 100644 bsp/stm32/stm32f746-st-disco/project.ewp create mode 100644 bsp/stm32/stm32f746-st-disco/project.eww create mode 100644 bsp/stm32/stm32f746-st-disco/project.uvoptx create mode 100644 bsp/stm32/stm32f746-st-disco/project.uvprojx create mode 100644 bsp/stm32/stm32f746-st-disco/rtconfig.h create mode 100644 bsp/stm32/stm32f746-st-disco/rtconfig.py create mode 100644 bsp/stm32/stm32f746-st-disco/template.ewd create mode 100644 bsp/stm32/stm32f746-st-disco/template.ewp create mode 100644 bsp/stm32/stm32f746-st-disco/template.eww create mode 100644 bsp/stm32/stm32f746-st-disco/template.uvoptx create mode 100644 bsp/stm32/stm32f746-st-disco/template.uvprojx diff --git a/bsp/stm32/stm32f746-st-disco/.config b/bsp/stm32/stm32f746-st-disco/.config new file mode 100644 index 0000000000..cc9a707882 --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/.config @@ -0,0 +1,341 @@ +# +# 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_M7=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=4096 +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_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 + +# +# 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 + +# +# 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 + +# +# 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 + +# +# peripheral libraries and drivers +# +# CONFIG_PKG_USING_STM32F4_HAL is not set +# CONFIG_PKG_USING_STM32F4_DRIVERS is not set +# 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 + +# +# 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 + +# +# sample package +# + +# +# 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 + +# +# example package: hello +# +# CONFIG_PKG_USING_HELLO is not set +CONFIG_SOC_FAMILY_STM32=y +CONFIG_SOC_SERIES_STM32F7=y + +# +# Hardware Drivers Config +# +CONFIG_SOC_STM32F746NG=y + +# +# Onboard Peripheral Drivers +# +CONFIG_BSP_USING_USB_TO_USART=y + +# +# On-chip Peripheral Drivers +# +CONFIG_BSP_USING_GPIO=y +CONFIG_BSP_USING_UART=y +CONFIG_BSP_USING_UART1=y +# CONFIG_BSP_UART1_RX_USING_DMA is not set + +# +# Board extended module Drivers +# diff --git a/bsp/stm32/stm32f746-st-disco/.gitignore b/bsp/stm32/stm32f746-st-disco/.gitignore new file mode 100644 index 0000000000..7221bde019 --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/.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/stm32f746-st-disco/Kconfig b/bsp/stm32/stm32f746-st-disco/Kconfig new file mode 100644 index 0000000000..d174bcc585 --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/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/stm32f746-st-disco/README.md b/bsp/stm32/stm32f746-st-disco/README.md new file mode 100644 index 0000000000..1d9ad2f316 --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/README.md @@ -0,0 +1,107 @@ +# STM32F746-st-disco 开发板 BSP 说明 + +## 简介 + +本文档为 jinsheng 为 STM32F746-disco 开发板提供的 BSP (板级支持包) 说明。 + +主要内容如下: + +- 开发板资源介绍 +- BSP 快速上手 +- 进阶使用方法 + +通过阅读快速上手章节开发者可以快速地上手该 BSP,将 RT-Thread 运行在开发板上。在进阶使用指南章节,将会介绍更多高级功能,帮助开发者利用 RT-Thread 驱动更多板载资源。 + +## 开发板介绍 + +STM32F746-disco 是 ST 推出的一款基于 ARM Cortex-M7 内核的开发板,最高主频为 216Mhz,该开发板具有丰富的板载资源,可以充分发挥 STM32F746 的芯片性能。 + +开发板外观如下图所示: + +![board](figures/board.jpg) + +该开发板常用 **板载资源** 如下: + +- MCU:STM32f746,主频 216MHz,1MB FLASH ,340KB RAM +- 常用外设 + - LED:1个,LED1(绿色,PI1) + - 按键:2个,Reset 和 User。 +- 调试接口,ST-LINK/V2-1 + +开发板更多详细信息请参考官网 [stm32f746-disco 开发板介绍](https://www.st.com/en/evaluation-tools/32f746gdiscovery.html)。 + +主芯片更多详细信息请参考官网 [stm32f746 芯片资料](https://www.st.com/en/microcontrollers/stm32f746ng.html)。 + +## 外设支持 + +本 BSP 目前对外设的支持情况如下: + +| **片上外设** | **支持情况** | **备注** | +| :------------ | :----------: | :-----------------------------------: | +| GPIO | 支持 | PI1 | +| UART | 支持 | UART1 | +| SD卡 | 暂不支持 | 即将支持 | +| 以太网 | 暂不支持 | 即将支持 | + +## 使用说明 + +使用说明分为如下两个章节: + +- 快速上手 + + 本章节是为刚接触 RT-Thread 的新手准备的使用说明,遵循简单的步骤即可将 RT-Thread 操作系统运行在该开发板上,看到实验效果 。 + +- 进阶使用 + + 本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。 + + +### 快速上手 + +本 BSP 为开发者提供 MDK4、MDK5 和 IAR 工程,并且支持 GCC 开发环境。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。 + +#### 硬件连接 + +使用数据线连接开发板到 PC,打开电源开关。 + +#### 编译下载 + +双击 project.uvprojx 文件,打开 MDK5 工程,编译并下载程序到开发板。 + +> 工程默认配置使用 st-link 仿真器下载程序,在通过 st-link 连接开发板的基础上,点击下载按钮即可下载程序到开发板 + +#### 运行结果 + +下载程序成功之后,LED 闪烁。 + +连接开发板对应串口到 PC ,在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以看到 RT-Thread 的输出信息: + +```bash + \ | / +- RT - Thread Operating System + / | \ 4.0.0 build Dec 10 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` 命令重新生成工程。 + +本章节更多详细的介绍请参考 [STM32 系列 BSP 外设驱动使用教程](../docs/STM32系列BSP外设驱动使用教程.md)。 + +## 注意事项 + +暂无 + +## 联系人信息 + +维护人: +- [jinsheng](https://github.com/jinsheng20) diff --git a/bsp/stm32/stm32f746-st-disco/SConscript b/bsp/stm32/stm32f746-st-disco/SConscript new file mode 100644 index 0000000000..fe0ae941ae --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/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/stm32f746-st-disco/SConstruct b/bsp/stm32/stm32f746-st-disco/SConstruct new file mode 100644 index 0000000000..51333e0a9c --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/SConstruct @@ -0,0 +1,47 @@ +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 = 'rt-thread.' + 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 rt-thread.map']) + +Export('RTT_ROOT') +Export('rtconfig') + +# prepare building environment +objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False) + +SDK_ROOT = os.path.abspath('./') + +# include drivers +objs.extend(SConscript(os.path.dirname(SDK_ROOT) + '/libraries/STM32F7xx_HAL/SConscript')) + +# include libraries +objs.extend(SConscript(os.path.dirname(SDK_ROOT) + '/libraries/HAL_Drivers/SConscript')) + +# make a building +DoBuilding(TARGET, objs) diff --git a/bsp/stm32/stm32f746-st-disco/applications/SConscript b/bsp/stm32/stm32f746-st-disco/applications/SConscript new file mode 100644 index 0000000000..6f66f7ab73 --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/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/stm32f746-st-disco/applications/main.c b/bsp/stm32/stm32f746-st-disco/applications/main.c new file mode 100644 index 0000000000..ac6b12ff9e --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/applications/main.c @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-01-06 jinsheng first version + */ + +#include +#include +#include +#include "drv_gpio.h" +/* defined the LED1 pin: PI1 */ +#define LED1_PIN GET_PIN(I, 1) + +int main(void) +{ + int count = 1; + /* set LED1 pin mode to output */ + rt_pin_mode(LED1_PIN, PIN_MODE_OUTPUT); + + while (count++) + { + rt_pin_write(LED1_PIN, PIN_HIGH); + rt_thread_mdelay(500); + rt_pin_write(LED1_PIN, PIN_LOW); + rt_thread_mdelay(500); + } + + return RT_EOK; +} diff --git a/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/.mxproject b/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/.mxproject new file mode 100644 index 0000000000..4c4aaefcec --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/.mxproject @@ -0,0 +1,13 @@ +[PreviousGenFiles] +HeaderPath=E:/rt-thread/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Inc +HeaderFiles=stm32f7xx_it.h;stm32f7xx_hal_conf.h;main.h; +SourcePath=E:/rt-thread/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Src +SourceFiles=stm32f7xx_it.c;stm32f7xx_hal_msp.c;main.c; + +[PreviousLibFiles] +LibFiles=Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_cortex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_tim.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_tim_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_uart.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_uart_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_rcc.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_rcc_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_flash.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_flash_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_gpio.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_gpio_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dma.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dma_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_pwr.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_pwr_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_def.h;Drivers/STM32F7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_i2c.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_i2c_ex.h;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_cortex.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim_ex.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc_ex.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash_ex.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_gpio.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma_ex.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr_ex.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c_ex.c;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_cortex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_tim.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_tim_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_uart.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_uart_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_rcc.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_rcc_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_flash.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_flash_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_gpio.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_gpio_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dma.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dma_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_pwr.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_pwr_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_def.h;Drivers/STM32F7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_i2c.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_i2c_ex.h;Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f746xx.h;Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f7xx.h;Drivers/CMSIS/Device/ST/STM32F7xx/Include/system_stm32f7xx.h;Drivers/CMSIS/Device/ST/STM32F7xx/Source/Templates/system_stm32f7xx.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\stm32f7xx_it.c;..\Src\stm32f7xx_hal_msp.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_cortex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim_ex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc_ex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash_ex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_gpio.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma_ex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr_ex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c_ex.c;../\Src/system_stm32f7xx.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_cortex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim_ex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc_ex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash_ex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_gpio.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma_ex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr_ex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c_ex.c;../\Src/system_stm32f7xx.c;../Drivers/CMSIS/Device/ST/STM32F7xx/Source/Templates/system_stm32f7xx.c;null; +HeaderPath=..\Drivers\STM32F7xx_HAL_Driver\Inc;..\Drivers\STM32F7xx_HAL_Driver\Inc\Legacy;..\Drivers\CMSIS\Device\ST\STM32F7xx\Include;..\Drivers\CMSIS\Include;..\Inc; + diff --git a/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/CubeMX_Config.ioc b/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/CubeMX_Config.ioc new file mode 100644 index 0000000000..26a4acd161 --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/CubeMX_Config.ioc @@ -0,0 +1,155 @@ +#MicroXplorer Configuration settings - do not modify +File.Version=6 +KeepUserPlacement=false +Mcu.Family=STM32F7 +Mcu.IP0=CORTEX_M7 +Mcu.IP1=NVIC +Mcu.IP2=RCC +Mcu.IP3=SYS +Mcu.IP4=USART1 +Mcu.IPNb=5 +Mcu.Name=STM32F746NGHx +Mcu.Package=TFBGA216 +Mcu.Pin0=PA14 +Mcu.Pin1=PA13 +Mcu.Pin2=PB7 +Mcu.Pin3=PC14/OSC32_IN +Mcu.Pin4=PA9 +Mcu.Pin5=PC15/OSC32_OUT +Mcu.Pin6=PH0/OSC_IN +Mcu.Pin7=PH1/OSC_OUT +Mcu.Pin8=VP_SYS_VS_Systick +Mcu.PinsNb=9 +Mcu.ThirdPartyNb=0 +Mcu.UserConstants= +Mcu.UserName=STM32F746NGHx +MxCube.Version=5.0.1 +MxDb.Version=DB.5.0.1 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false +NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false +NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false +NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false +NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 +NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false +NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false +PA13.Mode=Serial_Wire +PA13.Signal=SYS_JTMS-SWDIO +PA14.Mode=Serial_Wire +PA14.Signal=SYS_JTCK-SWCLK +PA9.Locked=true +PA9.Mode=Asynchronous +PA9.Signal=USART1_TX +PB7.Mode=Asynchronous +PB7.Signal=USART1_RX +PC14/OSC32_IN.Mode=LSE-External-Oscillator +PC14/OSC32_IN.Signal=RCC_OSC32_IN +PC15/OSC32_OUT.Mode=LSE-External-Oscillator +PC15/OSC32_OUT.Signal=RCC_OSC32_OUT +PCC.Checker=false +PCC.Line=STM32F7x6 +PCC.MCU=STM32F746NGHx +PCC.PartNumber=STM32F746NGHx +PCC.Seq0=0 +PCC.Series=STM32F7 +PCC.Temperature=25 +PCC.Vdd=3.3 +PH0/OSC_IN.Mode=HSE-External-Oscillator +PH0/OSC_IN.Signal=RCC_OSC_IN +PH1/OSC_OUT.Mode=HSE-External-Oscillator +PH1/OSC_OUT.Signal=RCC_OSC_OUT +PinOutPanel.CurrentBGAView=Top +PinOutPanel.RotationAngle=0 +ProjectManager.AskForMigrate=true +ProjectManager.BackupPrevious=false +ProjectManager.CompilerOptimize=6 +ProjectManager.ComputerToolchain=false +ProjectManager.CoupleFile=false +ProjectManager.CustomerFirmwarePackage= +ProjectManager.DefaultFWLocation=true +ProjectManager.DeletePrevious=true +ProjectManager.DeviceId=STM32F746NGHx +ProjectManager.FirmwarePackage=STM32Cube FW_F7 V1.14.0 +ProjectManager.FreePins=false +ProjectManager.HalAssertFull=false +ProjectManager.HeapSize=0x200 +ProjectManager.KeepUserCode=true +ProjectManager.LastFirmware=true +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_CORTEX_M7_Init-CORTEX_M7-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true +RCC.AHBFreq_Value=216000000 +RCC.APB1CLKDivider=RCC_HCLK_DIV4 +RCC.APB1Freq_Value=54000000 +RCC.APB1TimFreq_Value=108000000 +RCC.APB2CLKDivider=RCC_HCLK_DIV2 +RCC.APB2Freq_Value=108000000 +RCC.APB2TimFreq_Value=216000000 +RCC.CECFreq_Value=32786.88524590164 +RCC.CortexFreq_Value=216000000 +RCC.EthernetFreq_Value=216000000 +RCC.FCLKCortexFreq_Value=216000000 +RCC.FamilyName=M +RCC.HCLKFreq_Value=216000000 +RCC.HSE_VALUE=25000000 +RCC.HSI_VALUE=16000000 +RCC.I2C1Freq_Value=54000000 +RCC.I2C2Freq_Value=54000000 +RCC.I2C3Freq_Value=54000000 +RCC.I2C4Freq_Value=54000000 +RCC.I2SFreq_Value=96000000 +RCC.IPParameters=AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,CECFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,I2C4Freq_Value,I2SFreq_Value,LCDTFToutputFreq_Value,LPTIM1Freq_Value,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLI2SPCLKFreq_Value,PLLI2SQCLKFreq_Value,PLLI2SRCLKFreq_Value,PLLI2SRoutputFreq_Value,PLLM,PLLN,PLLQCLKFreq_Value,PLLQoutputFreq_Value,PLLSAIPCLKFreq_Value,PLLSAIQCLKFreq_Value,PLLSAIRCLKFreq_Value,PLLSAIoutputFreq_Value,PLLSourceVirtual,RNGFreq_Value,SAI1Freq_Value,SAI2Freq_Value,SDMMCFreq_Value,SPDIFRXFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,UART4Freq_Value,UART5Freq_Value,UART7Freq_Value,UART8Freq_Value,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,USART6Freq_Value,USBFreq_Value,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAIOutputFreq_Value +RCC.LCDTFToutputFreq_Value=48000000 +RCC.LPTIM1Freq_Value=54000000 +RCC.LSI_VALUE=32000 +RCC.MCO2PinFreq_Value=216000000 +RCC.PLLCLKFreq_Value=216000000 +RCC.PLLI2SPCLKFreq_Value=96000000 +RCC.PLLI2SQCLKFreq_Value=96000000 +RCC.PLLI2SRCLKFreq_Value=96000000 +RCC.PLLI2SRoutputFreq_Value=96000000 +RCC.PLLM=25 +RCC.PLLN=432 +RCC.PLLQCLKFreq_Value=216000000 +RCC.PLLQoutputFreq_Value=216000000 +RCC.PLLSAIPCLKFreq_Value=96000000 +RCC.PLLSAIQCLKFreq_Value=96000000 +RCC.PLLSAIRCLKFreq_Value=96000000 +RCC.PLLSAIoutputFreq_Value=96000000 +RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE +RCC.RNGFreq_Value=216000000 +RCC.SAI1Freq_Value=96000000 +RCC.SAI2Freq_Value=96000000 +RCC.SDMMCFreq_Value=216000000 +RCC.SPDIFRXFreq_Value=96000000 +RCC.SYSCLKFreq_VALUE=216000000 +RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK +RCC.UART4Freq_Value=54000000 +RCC.UART5Freq_Value=54000000 +RCC.UART7Freq_Value=54000000 +RCC.UART8Freq_Value=54000000 +RCC.USART1Freq_Value=108000000 +RCC.USART2Freq_Value=54000000 +RCC.USART3Freq_Value=54000000 +RCC.USART6Freq_Value=108000000 +RCC.USBFreq_Value=216000000 +RCC.VCOI2SOutputFreq_Value=192000000 +RCC.VCOInputFreq_Value=1000000 +RCC.VCOOutputFreq_Value=432000000 +RCC.VCOSAIOutputFreq_Value=192000000 +USART1.IPParameters=VirtualMode-Asynchronous +USART1.VirtualMode-Asynchronous=VM_ASYNC +VP_SYS_VS_Systick.Mode=SysTick +VP_SYS_VS_Systick.Signal=SYS_VS_Systick +board=custom diff --git a/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Inc/main.h b/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Inc/main.h new file mode 100644 index 0000000000..03c0f13fc7 --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Inc/main.h @@ -0,0 +1,91 @@ +/* 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 + * + * 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 __MAIN_H +#define __MAIN_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f7xx_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 -----------------------------------------------------------*/ +/* 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/stm32f746-st-disco/board/CubeMX_Config/Inc/stm32f7xx_hal_conf.h b/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Inc/stm32f7xx_hal_conf.h new file mode 100644 index 0000000000..c1594b10b1 --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Inc/stm32f7xx_hal_conf.h @@ -0,0 +1,455 @@ +/** + ****************************************************************************** + * @file stm32f7xx_hal_conf.h + * @brief HAL configuration file. + ****************************************************************************** + * @attention + * + *

© COPYRIGHT(c) 2019 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 __STM32F7xx_HAL_CONF_H +#define __STM32F7xx_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_CEC_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_SRAM_MODULE_ENABLED */ +/* #define HAL_SDRAM_MODULE_ENABLED */ +/* #define HAL_HASH_MODULE_ENABLED */ +/* #define HAL_I2S_MODULE_ENABLED */ +/* #define HAL_IWDG_MODULE_ENABLED */ +/* #define HAL_LPTIM_MODULE_ENABLED */ +/* #define HAL_LTDC_MODULE_ENABLED */ +/* #define HAL_QSPI_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_SPDIFRX_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_DFSDM_MODULE_ENABLED */ +/* #define HAL_DSI_MODULE_ENABLED */ +/* #define HAL_JPEG_MODULE_ENABLED */ +/* #define HAL_MDIOS_MODULE_ENABLED */ +/* #define HAL_SMBUS_MODULE_ENABLED */ +/* #define HAL_MMC_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_I2C_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)25000000U) /*!< 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 Internal oscillator 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 0U +#define ART_ACCLERATOR_ENABLE 0U /* To enable instruction cache and prefetch */ + +/* ########################## 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 "stm32f7xx_hal_rcc.h" +#endif /* HAL_RCC_MODULE_ENABLED */ + +#ifdef HAL_EXTI_MODULE_ENABLED + #include "stm32f7xx_hal_exti.h" +#endif /* HAL_EXTI_MODULE_ENABLED */ + +#ifdef HAL_GPIO_MODULE_ENABLED + #include "stm32f7xx_hal_gpio.h" +#endif /* HAL_GPIO_MODULE_ENABLED */ + +#ifdef HAL_DMA_MODULE_ENABLED + #include "stm32f7xx_hal_dma.h" +#endif /* HAL_DMA_MODULE_ENABLED */ + +#ifdef HAL_CORTEX_MODULE_ENABLED + #include "stm32f7xx_hal_cortex.h" +#endif /* HAL_CORTEX_MODULE_ENABLED */ + +#ifdef HAL_ADC_MODULE_ENABLED + #include "stm32f7xx_hal_adc.h" +#endif /* HAL_ADC_MODULE_ENABLED */ + +#ifdef HAL_CAN_MODULE_ENABLED + #include "stm32f7xx_hal_can.h" +#endif /* HAL_CAN_MODULE_ENABLED */ + +#ifdef HAL_CEC_MODULE_ENABLED + #include "stm32f7xx_hal_cec.h" +#endif /* HAL_CEC_MODULE_ENABLED */ + +#ifdef HAL_CRC_MODULE_ENABLED + #include "stm32f7xx_hal_crc.h" +#endif /* HAL_CRC_MODULE_ENABLED */ + +#ifdef HAL_CRYP_MODULE_ENABLED + #include "stm32f7xx_hal_cryp.h" +#endif /* HAL_CRYP_MODULE_ENABLED */ + +#ifdef HAL_DMA2D_MODULE_ENABLED + #include "stm32f7xx_hal_dma2d.h" +#endif /* HAL_DMA2D_MODULE_ENABLED */ + +#ifdef HAL_DAC_MODULE_ENABLED + #include "stm32f7xx_hal_dac.h" +#endif /* HAL_DAC_MODULE_ENABLED */ + +#ifdef HAL_DCMI_MODULE_ENABLED + #include "stm32f7xx_hal_dcmi.h" +#endif /* HAL_DCMI_MODULE_ENABLED */ + +#ifdef HAL_ETH_MODULE_ENABLED + #include "stm32f7xx_hal_eth.h" +#endif /* HAL_ETH_MODULE_ENABLED */ + +#ifdef HAL_FLASH_MODULE_ENABLED + #include "stm32f7xx_hal_flash.h" +#endif /* HAL_FLASH_MODULE_ENABLED */ + +#ifdef HAL_SRAM_MODULE_ENABLED + #include "stm32f7xx_hal_sram.h" +#endif /* HAL_SRAM_MODULE_ENABLED */ + +#ifdef HAL_NOR_MODULE_ENABLED + #include "stm32f7xx_hal_nor.h" +#endif /* HAL_NOR_MODULE_ENABLED */ + +#ifdef HAL_NAND_MODULE_ENABLED + #include "stm32f7xx_hal_nand.h" +#endif /* HAL_NAND_MODULE_ENABLED */ + +#ifdef HAL_SDRAM_MODULE_ENABLED + #include "stm32f7xx_hal_sdram.h" +#endif /* HAL_SDRAM_MODULE_ENABLED */ + +#ifdef HAL_HASH_MODULE_ENABLED + #include "stm32f7xx_hal_hash.h" +#endif /* HAL_HASH_MODULE_ENABLED */ + +#ifdef HAL_I2C_MODULE_ENABLED + #include "stm32f7xx_hal_i2c.h" +#endif /* HAL_I2C_MODULE_ENABLED */ + +#ifdef HAL_I2S_MODULE_ENABLED + #include "stm32f7xx_hal_i2s.h" +#endif /* HAL_I2S_MODULE_ENABLED */ + +#ifdef HAL_IWDG_MODULE_ENABLED + #include "stm32f7xx_hal_iwdg.h" +#endif /* HAL_IWDG_MODULE_ENABLED */ + +#ifdef HAL_LPTIM_MODULE_ENABLED + #include "stm32f7xx_hal_lptim.h" +#endif /* HAL_LPTIM_MODULE_ENABLED */ + +#ifdef HAL_LTDC_MODULE_ENABLED + #include "stm32f7xx_hal_ltdc.h" +#endif /* HAL_LTDC_MODULE_ENABLED */ + +#ifdef HAL_PWR_MODULE_ENABLED + #include "stm32f7xx_hal_pwr.h" +#endif /* HAL_PWR_MODULE_ENABLED */ + +#ifdef HAL_QSPI_MODULE_ENABLED + #include "stm32f7xx_hal_qspi.h" +#endif /* HAL_QSPI_MODULE_ENABLED */ + +#ifdef HAL_RNG_MODULE_ENABLED + #include "stm32f7xx_hal_rng.h" +#endif /* HAL_RNG_MODULE_ENABLED */ + +#ifdef HAL_RTC_MODULE_ENABLED + #include "stm32f7xx_hal_rtc.h" +#endif /* HAL_RTC_MODULE_ENABLED */ + +#ifdef HAL_SAI_MODULE_ENABLED + #include "stm32f7xx_hal_sai.h" +#endif /* HAL_SAI_MODULE_ENABLED */ + +#ifdef HAL_SD_MODULE_ENABLED + #include "stm32f7xx_hal_sd.h" +#endif /* HAL_SD_MODULE_ENABLED */ + +#ifdef HAL_MMC_MODULE_ENABLED + #include "stm32f7xx_hal_mmc.h" +#endif /* HAL_MMC_MODULE_ENABLED */ + +#ifdef HAL_SPDIFRX_MODULE_ENABLED + #include "stm32f7xx_hal_spdifrx.h" +#endif /* HAL_SPDIFRX_MODULE_ENABLED */ + +#ifdef HAL_SPI_MODULE_ENABLED + #include "stm32f7xx_hal_spi.h" +#endif /* HAL_SPI_MODULE_ENABLED */ + +#ifdef HAL_TIM_MODULE_ENABLED + #include "stm32f7xx_hal_tim.h" +#endif /* HAL_TIM_MODULE_ENABLED */ + +#ifdef HAL_UART_MODULE_ENABLED + #include "stm32f7xx_hal_uart.h" +#endif /* HAL_UART_MODULE_ENABLED */ + +#ifdef HAL_USART_MODULE_ENABLED + #include "stm32f7xx_hal_usart.h" +#endif /* HAL_USART_MODULE_ENABLED */ + +#ifdef HAL_IRDA_MODULE_ENABLED + #include "stm32f7xx_hal_irda.h" +#endif /* HAL_IRDA_MODULE_ENABLED */ + +#ifdef HAL_SMARTCARD_MODULE_ENABLED + #include "stm32f7xx_hal_smartcard.h" +#endif /* HAL_SMARTCARD_MODULE_ENABLED */ + +#ifdef HAL_WWDG_MODULE_ENABLED + #include "stm32f7xx_hal_wwdg.h" +#endif /* HAL_WWDG_MODULE_ENABLED */ + +#ifdef HAL_PCD_MODULE_ENABLED + #include "stm32f7xx_hal_pcd.h" +#endif /* HAL_PCD_MODULE_ENABLED */ + +#ifdef HAL_HCD_MODULE_ENABLED + #include "stm32f7xx_hal_hcd.h" +#endif /* HAL_HCD_MODULE_ENABLED */ + +#ifdef HAL_DFSDM_MODULE_ENABLED + #include "stm32f7xx_hal_dfsdm.h" +#endif /* HAL_DFSDM_MODULE_ENABLED */ + +#ifdef HAL_DSI_MODULE_ENABLED + #include "stm32f7xx_hal_dsi.h" +#endif /* HAL_DSI_MODULE_ENABLED */ + +#ifdef HAL_JPEG_MODULE_ENABLED + #include "stm32f7xx_hal_jpeg.h" +#endif /* HAL_JPEG_MODULE_ENABLED */ + +#ifdef HAL_MDIOS_MODULE_ENABLED + #include "stm32f7xx_hal_mdios.h" +#endif /* HAL_MDIOS_MODULE_ENABLED */ + +#ifdef HAL_SMBUS_MODULE_ENABLED + #include "stm32f7xx_hal_smbus.h" +#endif /* HAL_SMBUS_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 /* __STM32F7xx_HAL_CONF_H */ + + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Inc/stm32f7xx_it.h b/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Inc/stm32f7xx_it.h new file mode 100644 index 0000000000..a398e3c63b --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Inc/stm32f7xx_it.h @@ -0,0 +1,84 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32f7xx_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 __STM32F7xx_IT_H +#define __STM32F7xx_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 /* __STM32F7xx_IT_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Src/main.c b/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Src/main.c new file mode 100644 index 0000000000..98a5c999a1 --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Src/main.c @@ -0,0 +1,271 @@ +/* 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 + * + * 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" + +/* 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 ---------------------------------------------------------*/ + +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_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_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}; + RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; + + /**Configure LSE Drive Capability + */ + HAL_PWR_EnableBkUpAccess(); + /**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 = 25; + RCC_OscInitStruct.PLL.PLLN = 432; + RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; + RCC_OscInitStruct.PLL.PLLQ = 2; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + { + Error_Handler(); + } + /**Activate the Over-Drive mode + */ + if (HAL_PWREx_EnableOverDrive() != 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_7) != HAL_OK) + { + Error_Handler(); + } + PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART1; + PeriphClkInitStruct.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) + { + Error_Handler(); + } +} + +/** + * @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; + huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; + huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; + 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_GPIOA_CLK_ENABLE(); + __HAL_RCC_GPIOB_CLK_ENABLE(); + __HAL_RCC_GPIOC_CLK_ENABLE(); + __HAL_RCC_GPIOH_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/stm32f746-st-disco/board/CubeMX_Config/Src/stm32f7xx_hal_msp.c b/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Src/stm32f7xx_hal_msp.c new file mode 100644 index 0000000000..4204500b71 --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Src/stm32f7xx_hal_msp.c @@ -0,0 +1,182 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * File Name : stm32f7xx_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 + * + * 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" +/* 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_PWR_CLK_ENABLE(); + __HAL_RCC_SYSCFG_CLK_ENABLE(); + + /* System interrupt init*/ + + /* USER CODE BEGIN MspInit 1 */ + + /* USER CODE END MspInit 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(); + __HAL_RCC_GPIOA_CLK_ENABLE(); + /**USART1 GPIO Configuration + PB7 ------> USART1_RX + PA9 ------> USART1_TX + */ + GPIO_InitStruct.Pin = GPIO_PIN_7; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF7_USART1; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = GPIO_PIN_9; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF7_USART1; + HAL_GPIO_Init(GPIOA, &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 + PB7 ------> USART1_RX + PA9 ------> USART1_TX + */ + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_7); + + HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9); + + /* 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/stm32f746-st-disco/board/CubeMX_Config/Src/stm32f7xx_it.c b/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Src/stm32f7xx_it.c new file mode 100644 index 0000000000..59f6002ae1 --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Src/stm32f7xx_it.c @@ -0,0 +1,217 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32f7xx_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 "stm32f7xx_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-M7 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 */ +} + +/******************************************************************************/ +/* STM32F7xx 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_stm32f7xx.s). */ +/******************************************************************************/ + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Src/system_stm32f7xx.c b/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Src/system_stm32f7xx.c new file mode 100644 index 0000000000..cb4e56623f --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/board/CubeMX_Config/Src/system_stm32f7xx.c @@ -0,0 +1,278 @@ +/** + ****************************************************************************** + * @file system_stm32f7xx.c + * @author MCD Application Team + * @brief CMSIS Cortex-M7 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_stm32f7xx.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 stm32f7xx_system + * @{ + */ + +/** @addtogroup STM32F7xx_System_Private_Includes + * @{ + */ + +#include "stm32f7xx.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 STM32F7xx_System_Private_TypesDefinitions + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F7xx_System_Private_Defines + * @{ + */ + +/************************* Miscellaneous Configuration ************************/ + +/*!< 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 STM32F7xx_System_Private_Macros + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F7xx_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}; + const uint8_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4}; + +/** + * @} + */ + +/** @addtogroup STM32F7xx_System_Private_FunctionPrototypes + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F7xx_System_Private_Functions + * @{ + */ + +/** + * @brief Setup the microcontroller system + * Initialize the Embedded Flash Interface, the PLL and update the + * SystemFrequency variable. + * @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; + + /* Configure the Vector Table location add offset address ------------------*/ +#ifdef VECT_TAB_SRAM + SCB->VTOR = RAMDTCM_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 stm32f7xx_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 stm32f7xx_hal_conf.h file (default value + * 25 MHz), 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; +} + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f746-st-disco/board/Kconfig b/bsp/stm32/stm32f746-st-disco/board/Kconfig new file mode 100644 index 0000000000..425b47cd47 --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/board/Kconfig @@ -0,0 +1,45 @@ +menu "Hardware Drivers Config" + +config SOC_STM32F746NG + bool + select SOC_SERIES_STM32F7 + default y + +menu "Onboard Peripheral Drivers" + config BSP_USING_USB_TO_USART + bool "Enable USB TO USART (uart1)" + select BSP_USING_UART + select BSP_USING_UART1 + default y + +endmenu + +menu "On-chip Peripheral Drivers" + + config BSP_USING_GPIO + bool "Enable GPIO" + select RT_USING_PIN + default y + + menuconfig BSP_USING_UART + bool "Enable UART" + default y + select RT_USING_SERIAL + if BSP_USING_UART + config BSP_USING_UART1 + bool "Enable UART1" + default y + + config BSP_UART1_RX_USING_DMA + bool "Enable UART1 RX DMA" + depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA + default n + endif + +endmenu + +menu "Board extended module Drivers" + +endmenu + +endmenu diff --git a/bsp/stm32/stm32f746-st-disco/board/SConscript b/bsp/stm32/stm32f746-st-disco/board/SConscript new file mode 100644 index 0000000000..1ba1cc5d9a --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/board/SConscript @@ -0,0 +1,27 @@ +import rtconfig +from building import * + +cwd = GetCurrentDir() + +# add the general drivers. +src = Glob('board.c') +src += Glob('CubeMX_Config/Src/stm32f7xx_hal_msp.c') + +path = [cwd] +path += [cwd + '/CubeMX_Config/Inc'] + +if rtconfig.CROSS_TOOL == 'gcc': + src += [cwd + '/../../libraries/STM32F7xx_HAL/CMSIS/Device/ST/STM32F7xx/Source/Templates/gcc/startup_stm32f746xx.s'] +elif rtconfig.CROSS_TOOL == 'keil': + src += [cwd + '/../../libraries/STM32F7xx_HAL/CMSIS/Device/ST/STM32F7xx/Source/Templates/arm/startup_stm32f746xx.s'] +elif rtconfig.CROSS_TOOL == 'iar': + src += [cwd + '/../../libraries/STM32F7xx_HAL/CMSIS/Device/ST/STM32F7xx/Source/Templates/iar/startup_stm32f746xx.s'] + +# STM32F756xx || STM32F746xx || STM32F745xx || STM32F767xx || +# STM32F769xx || STM32F777xx || STM32F779xx || STM32F722xx || +# STM32F723xx || STM32F732xx || STM32F733xx || STM32F730xx || STM32F750xx +# You can select chips from the list above +CPPDEFINES = ['STM32F746xx'] +group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES) + +Return('group') \ No newline at end of file diff --git a/bsp/stm32/stm32f746-st-disco/board/board.c b/bsp/stm32/stm32f746-st-disco/board/board.c new file mode 100644 index 0000000000..71d83a3f83 --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/board/board.c @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-01-06 jinsheng first version + */ + +#include "board.h" + +/** + * @brief System Clock Configuration + * @retval None + */ +void SystemClock_Config(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {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 = 25; + RCC_OscInitStruct.PLL.PLLN = 432; + RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; + RCC_OscInitStruct.PLL.PLLQ = 2; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + { + Error_Handler(); + } + /**Activate the Over-Drive mode + */ + if (HAL_PWREx_EnableOverDrive() != 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_7) != HAL_OK) + { + Error_Handler(); + } + PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART1; + PeriphClkInitStruct.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) + { + Error_Handler(); + } +} diff --git a/bsp/stm32/stm32f746-st-disco/board/board.h b/bsp/stm32/stm32f746-st-disco/board/board.h new file mode 100644 index 0000000000..e8f5a1a96c --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/board/board.h @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-01-06 jinsheng first version + */ + +#ifndef __BOARD_H__ +#define __BOARD_H__ + +#include +#include +#include "drv_common.h" + +#define STM32_FLASH_START_ADRESS ((uint32_t)0x08000000) +#define STM32_FLASH_SIZE (1024 * 1024) +#define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE)) + +#define STM32_SRAM_SIZE (320) +#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/stm32f746-st-disco/board/linker_scripts/link.icf b/bsp/stm32/stm32f746-st-disco/board/linker_scripts/link.icf new file mode 100644 index 0000000000..bfcc26a0cb --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/board/linker_scripts/link.icf @@ -0,0 +1,28 @@ +/*###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_RAM_start__ = 0x20000000; +define symbol __ICFEDIT_region_RAM_end__ = 0x2004FFFF; +/*-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 RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_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 RAM_region { readwrite, last block CSTACK}; \ No newline at end of file diff --git a/bsp/stm32/stm32f746-st-disco/board/linker_scripts/link.lds b/bsp/stm32/stm32f746-st-disco/board/linker_scripts/link.lds new file mode 100644 index 0000000000..83adc09622 --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/board/linker_scripts/link.lds @@ -0,0 +1,144 @@ +/* + * linker script for STM32F7xx with GNU ld + * jinsheng 2019-01-06 + */ + +/* Program Entry, set to mark it as "used" and avoid gc */ +MEMORY +{ + ROM (rx) : ORIGIN = 0x08000000, LENGTH = 1024k /* 1024KB flash */ + RAM (rw) : ORIGIN = 0x20000000, LENGTH = 320k /* 320 K 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 = .; + } > ROM = 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 = .; + } > ROM + __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 = . ; + } >RAM + + .stack : + { + . = ALIGN(4); + _sstack = .; + . = . + _system_stack_size; + . = ALIGN(4); + _estack = .; + } >RAM + + __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) + } > RAM + __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/stm32f746-st-disco/board/linker_scripts/link.sct b/bsp/stm32/stm32f746-st-disco/board/linker_scripts/link.sct new file mode 100644 index 0000000000..37a465fb5c --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/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 0x00050000 { ; RW data + .ANY (+RW +ZI) + } +} + diff --git a/bsp/stm32/stm32f746-st-disco/figures/board.jpg b/bsp/stm32/stm32f746-st-disco/figures/board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1834673fec64bd9e4380674cef652d71135d273c GIT binary patch literal 380301 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≪p7M7{_04ktP<;p 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 Je}nrv{||SEgy#SN literal 0 HcmV?d00001 diff --git a/bsp/stm32/stm32f746-st-disco/project.ewd b/bsp/stm32/stm32f746-st-disco/project.ewd new file mode 100644 index 0000000000..0947039ad1 --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/project.ewd @@ -0,0 +1,2966 @@ + + + 3 + + rt-thread + + ARM + + 1 + + C-SPY + 2 + + 30 + 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 + + + + + + + + + + NULINK_ID + 2 + + 0 + 1 + 1 + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 1 + + + + + + + + STLINK_ID + 2 + + 6 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 8 + 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\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\HWRTOSplugin\HWRTOSplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm8.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm8BE.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 + + 30 + 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 + + + + + + + + + + NULINK_ID + 2 + + 0 + 1 + 0 + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 0 + + + + + + + + STLINK_ID + 2 + + 6 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 0 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 8 + 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\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\HWRTOSplugin\HWRTOSplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm8.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm8BE.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/stm32f746-st-disco/project.ewp b/bsp/stm32/stm32f746-st-disco/project.ewp new file mode 100644 index 0000000000..c25fbcb5e0 --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/project.ewp @@ -0,0 +1,2263 @@ + + 3 + + rt-thread + + 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 + + + + + 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 + + + + Applications + + $PROJ_DIR$\applications\main.c + + + + Drivers + + $PROJ_DIR$\board\board.c + + + $PROJ_DIR$\board\CubeMX_Config\Src\stm32f7xx_hal_msp.c + + + $PROJ_DIR$\..\libraries\STM32F7xx_HAL\CMSIS\Device\ST\STM32F7xx\Source\Templates\iar\startup_stm32f746xx.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 + + + + CORTEX-M7 + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-m7\cpuport.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-m7\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\STM32F7xx_HAL\CMSIS\Device\ST\STM32F7xx\Source\Templates\system_stm32f7xx.c + + + $PROJ_DIR$\..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal.c + + + $PROJ_DIR$\..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_cec.c + + + $PROJ_DIR$\..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_cortex.c + + + $PROJ_DIR$\..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_crc.c + + + $PROJ_DIR$\..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_cryp.c + + + $PROJ_DIR$\..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_cryp_ex.c + + + $PROJ_DIR$\..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_dma.c + + + $PROJ_DIR$\..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_dma_ex.c + + + $PROJ_DIR$\..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_pwr.c + + + $PROJ_DIR$\..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_pwr_ex.c + + + $PROJ_DIR$\..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_rcc.c + + + $PROJ_DIR$\..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_rcc_ex.c + + + $PROJ_DIR$\..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_rng.c + + + $PROJ_DIR$\..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_sram.c + + + $PROJ_DIR$\..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_gpio.c + + + $PROJ_DIR$\..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_uart.c + + + $PROJ_DIR$\..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_usart.c + + + diff --git a/bsp/stm32/stm32f746-st-disco/project.eww b/bsp/stm32/stm32f746-st-disco/project.eww new file mode 100644 index 0000000000..c2cb02eb1e --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/project.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\project.ewp + + + + + diff --git a/bsp/stm32/stm32f746-st-disco/project.uvoptx b/bsp/stm32/stm32f746-st-disco/project.uvoptx new file mode 100644 index 0000000000..b420799f3e --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/project.uvoptx @@ -0,0 +1,1029 @@ + + + + 1.0 + +

### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + rt-thread + 0x4 + ARM-ADS + + 216000000 + + 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 + BSP User Manual (STM32F746G-Discovery) + D:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.9.0\Drivers\BSP\STM32746G-Discovery\STM32746G-Discovery_BSP_User_Manual.chm + + + 1 + BSP User Manual (STM32756G-EVAL) + D:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.9.0\Drivers\BSP\STM32756G_EVAL\STM32756G_EVAL_BSP_User_Manual.chm + + + 2 + User Manual (STM32756G-EVAL) + D:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.9.0\MDK\Boards\ST\STM32756G_EVAL\Documentation\DM00188617.pdf + + + 3 + STM32F756G-Eval Quick Start Guide (STM32756G-EVAL) + D:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.9.0\MDK\Boards\ST\STM32756G_EVAL\Documentation\STM32F756G-EVAL_QSG.pdf + + + 4 + Bill of Materials (STM32756G-EVAL) + D:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.9.0\MDK\Boards\ST\STM32756G_EVAL\Documentation\stm327x6g-eval_bom.zip + + + 5 + Gerber Files (STM32756G-EVAL) + D:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.9.0\MDK\Boards\ST\STM32756G_EVAL\Documentation\stm327x6g-eval_gerber.zip + + + 6 + Schematics (STM32756G-EVAL) + D:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.9.0\MDK\Boards\ST\STM32756G_EVAL\Documentation\stm327x6g-eval_sch.zip + + + 7 + STM32F746G-Discovery Quick Start Guide (STM32F746G-Discovery) + D:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.9.0\MDK\Boards\ST\STM32F746G_Discovery\Documentation\32F746GDISCOVERY_QSG.pdf + + + 8 + User Manual (STM32F746G-Discovery) + D:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.9.0\MDK\Boards\ST\STM32F746G_Discovery\Documentation\DM00190424.pdf + + + 9 + Bill of Materials (STM32F746G-Discovery) + D:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.9.0\MDK\Boards\ST\STM32F746G_Discovery\Documentation\stm32f746g-disco_bom.zip + + + 10 + Gerber Files (STM32F746G-Discovery) + D:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.9.0\MDK\Boards\ST\STM32F746G_Discovery\Documentation\stm32f746g-disco_gerber.zip + + + 11 + Schematics (STM32F746G-Discovery) + D:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.9.0\MDK\Boards\ST\STM32F746G_Discovery\Documentation\stm32f746g-disco_sch.zip + + + 12 + STM32F746G_Discovery Web Page (STM32F746G-Discovery) + http://www.st.com/en/evaluation-tools/32f746gdiscovery.html + + + 13 + STM32756G_EVAL Evaluation Board Web Page (STM32756G-EVAL) + http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1199/PF261640 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 5 + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + 0 + ST-LINKIII-KEIL_SWO + -U0670FF505356867767062043 -O206 -S0 -C0 -A0 -N00("ARM CoreSight SW-DP") -D00(5BA02477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20010000 -FC1000 -FN1 -FF0STM32F7x_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F746NGHx$CMSIS\Flash\STM32F7x_1024.FLM) + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20010000 -FF0STM32F7x_1024 -FL0100000 -FS08000000 -FP0($$Device:STM32F746NGHx$CMSIS\Flash\STM32F7x_1024.FLM) + + + 0 + JL2CM3 + -U59400616 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F7x_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F767BGTx$CMSIS\Flash\STM32F7x_1024.FLM) + + + + + 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 + 0 + + 1 + 0 + 2 + 10000000 + + + + + + Kernel + 0 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + ..\..\..\src\clock.c + clock.c + 0 + 0 + + + 1 + 2 + 1 + 0 + 0 + 0 + ..\..\..\src\components.c + components.c + 0 + 0 + + + 1 + 3 + 1 + 0 + 0 + 0 + ..\..\..\src\cpu.c + cpu.c + 0 + 0 + + + 1 + 4 + 1 + 0 + 0 + 0 + ..\..\..\src\device.c + device.c + 0 + 0 + + + 1 + 5 + 1 + 0 + 0 + 0 + ..\..\..\src\idle.c + idle.c + 0 + 0 + + + 1 + 6 + 1 + 0 + 0 + 0 + ..\..\..\src\ipc.c + ipc.c + 0 + 0 + + + 1 + 7 + 1 + 0 + 0 + 0 + ..\..\..\src\irq.c + irq.c + 0 + 0 + + + 1 + 8 + 1 + 0 + 0 + 0 + ..\..\..\src\kservice.c + kservice.c + 0 + 0 + + + 1 + 9 + 1 + 0 + 0 + 0 + ..\..\..\src\mem.c + mem.c + 0 + 0 + + + 1 + 10 + 1 + 0 + 0 + 0 + ..\..\..\src\mempool.c + mempool.c + 0 + 0 + + + 1 + 11 + 1 + 0 + 0 + 0 + ..\..\..\src\object.c + object.c + 0 + 0 + + + 1 + 12 + 1 + 0 + 0 + 0 + ..\..\..\src\scheduler.c + scheduler.c + 0 + 0 + + + 1 + 13 + 1 + 0 + 0 + 0 + ..\..\..\src\signal.c + signal.c + 0 + 0 + + + 1 + 14 + 1 + 0 + 0 + 0 + ..\..\..\src\thread.c + thread.c + 0 + 0 + + + 1 + 15 + 1 + 0 + 0 + 0 + ..\..\..\src\timer.c + timer.c + 0 + 0 + + + + + Applications + 0 + 0 + 0 + 0 + + 2 + 16 + 1 + 0 + 0 + 0 + applications\main.c + main.c + 0 + 0 + + + + + Drivers + 0 + 0 + 0 + 0 + + 3 + 17 + 1 + 0 + 0 + 0 + board\board.c + board.c + 0 + 0 + + + 3 + 18 + 1 + 0 + 0 + 0 + board\CubeMX_Config\Src\stm32f7xx_hal_msp.c + stm32f7xx_hal_msp.c + 0 + 0 + + + 3 + 19 + 2 + 0 + 0 + 0 + ..\libraries\STM32F7xx_HAL\CMSIS\Device\ST\STM32F7xx\Source\Templates\arm\startup_stm32f746xx.s + startup_stm32f746xx.s + 0 + 0 + + + 3 + 20 + 1 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_gpio.c + drv_gpio.c + 0 + 0 + + + 3 + 21 + 1 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_usart.c + drv_usart.c + 0 + 0 + + + 3 + 22 + 1 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_common.c + drv_common.c + 0 + 0 + + + + + CORTEX-M7 + 0 + 0 + 0 + 0 + + 4 + 23 + 1 + 0 + 0 + 0 + ..\..\..\libcpu\arm\cortex-m7\cpuport.c + cpuport.c + 0 + 0 + + + 4 + 24 + 2 + 0 + 0 + 0 + ..\..\..\libcpu\arm\cortex-m7\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\STM32F7xx_HAL\CMSIS\Device\ST\STM32F7xx\Source\Templates\system_stm32f7xx.c + system_stm32f7xx.c + 0 + 0 + + + 7 + 44 + 1 + 0 + 0 + 0 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal.c + stm32f7xx_hal.c + 0 + 0 + + + 7 + 45 + 1 + 0 + 0 + 0 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_cec.c + stm32f7xx_hal_cec.c + 0 + 0 + + + 7 + 46 + 1 + 0 + 0 + 0 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_cortex.c + stm32f7xx_hal_cortex.c + 0 + 0 + + + 7 + 47 + 1 + 0 + 0 + 0 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_crc.c + stm32f7xx_hal_crc.c + 0 + 0 + + + 7 + 48 + 1 + 0 + 0 + 0 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_cryp.c + stm32f7xx_hal_cryp.c + 0 + 0 + + + 7 + 49 + 1 + 0 + 0 + 0 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_cryp_ex.c + stm32f7xx_hal_cryp_ex.c + 0 + 0 + + + 7 + 50 + 1 + 0 + 0 + 0 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_dma.c + stm32f7xx_hal_dma.c + 0 + 0 + + + 7 + 51 + 1 + 0 + 0 + 0 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_dma_ex.c + stm32f7xx_hal_dma_ex.c + 0 + 0 + + + 7 + 52 + 1 + 0 + 0 + 0 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_pwr.c + stm32f7xx_hal_pwr.c + 0 + 0 + + + 7 + 53 + 1 + 0 + 0 + 0 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_pwr_ex.c + stm32f7xx_hal_pwr_ex.c + 0 + 0 + + + 7 + 54 + 1 + 0 + 0 + 0 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_rcc.c + stm32f7xx_hal_rcc.c + 0 + 0 + + + 7 + 55 + 1 + 0 + 0 + 0 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_rcc_ex.c + stm32f7xx_hal_rcc_ex.c + 0 + 0 + + + 7 + 56 + 1 + 0 + 0 + 0 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_rng.c + stm32f7xx_hal_rng.c + 0 + 0 + + + 7 + 57 + 1 + 0 + 0 + 0 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_sram.c + stm32f7xx_hal_sram.c + 0 + 0 + + + 7 + 58 + 1 + 0 + 0 + 0 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_gpio.c + stm32f7xx_hal_gpio.c + 0 + 0 + + + 7 + 59 + 1 + 0 + 0 + 0 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_uart.c + stm32f7xx_hal_uart.c + 0 + 0 + + + 7 + 60 + 1 + 0 + 0 + 0 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_usart.c + stm32f7xx_hal_usart.c + 0 + 0 + + + + diff --git a/bsp/stm32/stm32f746-st-disco/project.uvprojx b/bsp/stm32/stm32f746-st-disco/project.uvprojx new file mode 100644 index 0000000000..c3e5b927f7 --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/project.uvprojx @@ -0,0 +1,718 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + rt-thread + 0x4 + ARM-ADS + 5060422::V5.06 update 4 (build 422)::ARMCC + + + STM32F746NGHx + STMicroelectronics + Keil.STM32F7xx_DFP.2.9.0 + http://www.keil.com/pack + IRAM(0x20010000,0x40000) IRAM2(0x20000000,0x10000) IROM(0x08000000,0x100000) IROM2(0x00200000,0x100000) CPUTYPE("Cortex-M7") FPU3(SFPU) CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20010000 -FC1000 -FN1 -FF0STM32F7x_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F746NGHx$CMSIS\Flash\STM32F7x_1024.FLM)) + 0 + $$Device:STM32F746NGHx$Drivers\CMSIS\Device\ST\STM32F7xx\Include\stm32f7xx.h + + + + + + + + + + $$Device:STM32F746NGHx$CMSIS\SVD\STM32F7x6_v1r1.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\build\keil\Obj\ + rt-thread + 1 + 0 + 0 + 1 + 1 + .\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 + -REMAP -MPU + DCM.DLL + -pCM7 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM7 + + + + 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-M7" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 1 + 1 + 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 + 0x20010000 + 0x40000 + + + 1 + 0x8000000 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x100000 + + + 1 + 0x200000 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x50000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + + USE_HAL_DRIVER, STM32F746xx + + .;..\..\..\include;applications;.;board;board\CubeMX_Config\Inc;..\libraries\HAL_Drivers;..\libraries\HAL_Drivers\config;..\..\..\libcpu\arm\cortex-m7;..\..\..\libcpu\arm\common;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\finsh;..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Inc;..\libraries\STM32F7xx_HAL\CMSIS\Device\ST\STM32F7xx\Include;..\libraries\STM32F7xx_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) + + + + + + + + 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 + + + + + Applications + + + main.c + 1 + applications\main.c + + + + + Drivers + + + board.c + 1 + board\board.c + + + stm32f7xx_hal_msp.c + 1 + board\CubeMX_Config\Src\stm32f7xx_hal_msp.c + + + startup_stm32f746xx.s + 2 + ..\libraries\STM32F7xx_HAL\CMSIS\Device\ST\STM32F7xx\Source\Templates\arm\startup_stm32f746xx.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 + + + + + CORTEX-M7 + + + cpuport.c + 1 + ..\..\..\libcpu\arm\cortex-m7\cpuport.c + + + context_rvds.S + 2 + ..\..\..\libcpu\arm\cortex-m7\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_stm32f7xx.c + 1 + ..\libraries\STM32F7xx_HAL\CMSIS\Device\ST\STM32F7xx\Source\Templates\system_stm32f7xx.c + + + stm32f7xx_hal.c + 1 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal.c + + + stm32f7xx_hal_cec.c + 1 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_cec.c + + + stm32f7xx_hal_cortex.c + 1 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_cortex.c + + + stm32f7xx_hal_crc.c + 1 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_crc.c + + + stm32f7xx_hal_cryp.c + 1 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_cryp.c + + + stm32f7xx_hal_cryp_ex.c + 1 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_cryp_ex.c + + + stm32f7xx_hal_dma.c + 1 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_dma.c + + + stm32f7xx_hal_dma_ex.c + 1 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_dma_ex.c + + + stm32f7xx_hal_pwr.c + 1 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_pwr.c + + + stm32f7xx_hal_pwr_ex.c + 1 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_pwr_ex.c + + + stm32f7xx_hal_rcc.c + 1 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_rcc.c + + + stm32f7xx_hal_rcc_ex.c + 1 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_rcc_ex.c + + + stm32f7xx_hal_rng.c + 1 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_rng.c + + + stm32f7xx_hal_sram.c + 1 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_sram.c + + + stm32f7xx_hal_gpio.c + 1 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_gpio.c + + + stm32f7xx_hal_uart.c + 1 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_uart.c + + + stm32f7xx_hal_usart.c + 1 + ..\libraries\STM32F7xx_HAL\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_usart.c + + + + + + + +
diff --git a/bsp/stm32/stm32f746-st-disco/rtconfig.h b/bsp/stm32/stm32f746-st-disco/rtconfig.h new file mode 100644 index 0000000000..8812d515df --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/rtconfig.h @@ -0,0 +1,179 @@ +#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_M7 + +/* 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 4096 +#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 */ + + +/* sample package */ + +/* samples: kernel and components samples */ + + +/* example package: hello */ + +#define SOC_FAMILY_STM32 +#define SOC_SERIES_STM32F7 + +/* Hardware Drivers Config */ + +#define SOC_STM32F746NG + +/* Onboard Peripheral Drivers */ + +#define BSP_USING_USB_TO_USART + +/* On-chip Peripheral Drivers */ + +#define BSP_USING_GPIO +#define BSP_USING_UART +#define BSP_USING_UART1 + +/* Board extended module Drivers */ + + +#endif diff --git a/bsp/stm32/stm32f746-st-disco/rtconfig.py b/bsp/stm32/stm32f746-st-disco/rtconfig.py new file mode 100644 index 0000000000..dbe66205eb --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/rtconfig.py @@ -0,0 +1,144 @@ +import os + +# toolchains options +ARCH='arm' +CPU='cortex-m7' +CROSS_TOOL='gcc' + +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 = '/usr/local/Cellar/arm-none-eabi-gcc/7-2017-q4-major/gcc/bin/' +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' + CXX = PREFIX + 'g++' + AS = PREFIX + 'gcc' + AR = PREFIX + 'ar' + CXX = PREFIX + 'g++' + LINK = PREFIX + 'gcc' + TARGET_EXT = 'elf' + SIZE = PREFIX + 'size' + OBJDUMP = PREFIX + 'objdump' + OBJCPY = PREFIX + 'objcopy' + STRIP = PREFIX + 'strip' + + DEVICE = ' -mcpu=' + CPU + ' -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections' + CFLAGS = DEVICE + ' -std=c99 -g -Wall' + 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' + AFLAGS += ' -gdwarf-2' + else: + CFLAGS += ' -O2 -Os' + + POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n' + + # module setting + CXXFLAGS = ' -Woverloaded-virtual -fno-exceptions -fno-rtti ' + M_CFLAGS = CFLAGS + ' -mlong-calls -fPIC ' + M_CXXFLAGS = CXXFLAGS + ' -mlong-calls -fPIC' + M_LFLAGS = DEVICE + CXXFLAGS + ' -Wl,--gc-sections,-z,max-page-size=0x4' +\ + ' -shared -fPIC -nostartfiles -static-libgcc' + M_POST_ACTION = STRIP + ' -R .hash $TARGET\n' + SIZE + ' $TARGET \n' + +elif PLATFORM == 'armcc': + # toolchains + CC = 'armcc' + CXX = 'armcc' + AS = 'armasm' + AR = 'armar' + LINK = 'armlink' + TARGET_EXT = 'axf' + + DEVICE = ' --cpu Cortex-M7.fp.sp --fpu=FPv4-SP' + CFLAGS = DEVICE + ' --apcs=interwork ' + AFLAGS = DEVICE + LFLAGS = DEVICE + ' --info sizes --info totals --info unused --info veneers --list rtthread.map --scatter rtthread.sct' + + CFLAGS += ' -I' + EXEC_PATH + '/ARM/ARMCC/INC' + LFLAGS += ' --libpath "' + EXEC_PATH + '/ARM/ARMCC/lib"' + + EXEC_PATH += '/arm/bin40/' + + if BUILD == 'debug': + CFLAGS += ' -g -O0' + AFLAGS += ' -g' + else: + CFLAGS += ' -O2 -Otime' + + CXXFLAGS = CFLAGS + POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET' + +elif PLATFORM == 'iar': + # toolchains + CC = 'iccarm' + CXX = 'iccarm' + AS = 'iasmarm' + AR = 'iarchive' + LINK = 'ilinkarm' + TARGET_EXT = 'out' + + DEVICE = '' + + 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 += ' --debug' + CFLAGS += ' --endian=little' + CFLAGS += ' --cpu=Cortex-M7' + CFLAGS += ' -e' + CFLAGS += ' --fpu=None' + CFLAGS += ' --dlib_config "' + EXEC_PATH + '/arm/INC/c/DLib_Config_Normal.h"' + CFLAGS += ' -Ol' + CFLAGS += ' --use_c++_inline' + CFLAGS += ' --silent' + + AFLAGS = '' + AFLAGS += ' -s+' + AFLAGS += ' -w+' + AFLAGS += ' -r' + AFLAGS += ' --cpu Cortex-M7' + AFLAGS += ' --fpu None' + AFLAGS += ' -S' + + LFLAGS = ' --config rtthread.icf' + LFLAGS += ' --redirect _Printf=_PrintfTiny' + LFLAGS += ' --redirect _Scanf=_ScanfSmall' + LFLAGS += ' --entry __iar_program_start' + LFLAGS += ' --silent' + + CXXFLAGS = CFLAGS + + EXEC_PATH = EXEC_PATH + '/arm/bin/' + POST_ACTION = '' diff --git a/bsp/stm32/stm32f746-st-disco/template.ewd b/bsp/stm32/stm32f746-st-disco/template.ewd new file mode 100644 index 0000000000..191c0b5817 --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/template.ewd @@ -0,0 +1,2966 @@ + + + 3 + + rt-thread + + ARM + + 1 + + C-SPY + 2 + + 30 + 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 + + + + + + + + + + NULINK_ID + 2 + + 0 + 1 + 1 + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 1 + + + + + + + + STLINK_ID + 2 + + 6 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 8 + 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\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\HWRTOSplugin\HWRTOSplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm8.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm8BE.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 + + 30 + 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 + + + + + + + + + + NULINK_ID + 2 + + 0 + 1 + 0 + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 0 + + + + + + + + STLINK_ID + 2 + + 6 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 0 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 8 + 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\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\HWRTOSplugin\HWRTOSplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm8.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm8BE.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/stm32f746-st-disco/template.ewp b/bsp/stm32/stm32f746-st-disco/template.ewp new file mode 100644 index 0000000000..9fada43dfd --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/template.ewp @@ -0,0 +1,2031 @@ + + + 3 + + rt-thread + + 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/stm32f746-st-disco/template.eww b/bsp/stm32/stm32f746-st-disco/template.eww new file mode 100644 index 0000000000..59608f6e4a --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/template.eww @@ -0,0 +1,10 @@ + + + + $WS_DIR$\project.ewp + + + $WS_DIR$\template.ewp + + + diff --git a/bsp/stm32/stm32f746-st-disco/template.uvoptx b/bsp/stm32/stm32f746-st-disco/template.uvoptx new file mode 100644 index 0000000000..d855f10c81 --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/template.uvoptx @@ -0,0 +1,256 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + rt-thread + 0x4 + ARM-ADS + + 216000000 + + 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 + BSP User Manual (STM32F746G-Discovery) + D:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.9.0\Drivers\BSP\STM32746G-Discovery\STM32746G-Discovery_BSP_User_Manual.chm + + + 1 + BSP User Manual (STM32756G-EVAL) + D:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.9.0\Drivers\BSP\STM32756G_EVAL\STM32756G_EVAL_BSP_User_Manual.chm + + + 2 + User Manual (STM32756G-EVAL) + D:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.9.0\MDK\Boards\ST\STM32756G_EVAL\Documentation\DM00188617.pdf + + + 3 + STM32F756G-Eval Quick Start Guide (STM32756G-EVAL) + D:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.9.0\MDK\Boards\ST\STM32756G_EVAL\Documentation\STM32F756G-EVAL_QSG.pdf + + + 4 + Bill of Materials (STM32756G-EVAL) + D:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.9.0\MDK\Boards\ST\STM32756G_EVAL\Documentation\stm327x6g-eval_bom.zip + + + 5 + Gerber Files (STM32756G-EVAL) + D:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.9.0\MDK\Boards\ST\STM32756G_EVAL\Documentation\stm327x6g-eval_gerber.zip + + + 6 + Schematics (STM32756G-EVAL) + D:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.9.0\MDK\Boards\ST\STM32756G_EVAL\Documentation\stm327x6g-eval_sch.zip + + + 7 + STM32F746G-Discovery Quick Start Guide (STM32F746G-Discovery) + D:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.9.0\MDK\Boards\ST\STM32F746G_Discovery\Documentation\32F746GDISCOVERY_QSG.pdf + + + 8 + User Manual (STM32F746G-Discovery) + D:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.9.0\MDK\Boards\ST\STM32F746G_Discovery\Documentation\DM00190424.pdf + + + 9 + Bill of Materials (STM32F746G-Discovery) + D:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.9.0\MDK\Boards\ST\STM32F746G_Discovery\Documentation\stm32f746g-disco_bom.zip + + + 10 + Gerber Files (STM32F746G-Discovery) + D:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.9.0\MDK\Boards\ST\STM32F746G_Discovery\Documentation\stm32f746g-disco_gerber.zip + + + 11 + Schematics (STM32F746G-Discovery) + D:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.9.0\MDK\Boards\ST\STM32F746G_Discovery\Documentation\stm32f746g-disco_sch.zip + + + 12 + STM32F746G_Discovery Web Page (STM32F746G-Discovery) + http://www.st.com/en/evaluation-tools/32f746gdiscovery.html + + + 13 + STM32756G_EVAL Evaluation Board Web Page (STM32756G-EVAL) + http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1199/PF261640 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 5 + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20010000 -FF0STM32F7x_1024 -FL0100000 -FS08000000 -FP0($$Device:STM32F746NGHx$CMSIS\Flash\STM32F7x_1024.FLM) + + + 0 + JL2CM3 + -U59400616 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F7x_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F767BGTx$CMSIS\Flash\STM32F7x_1024.FLM) + + + + + 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 + 0 + + 1 + 0 + 2 + 10000000 + + + + + + Source Group 1 + 0 + 0 + 0 + 0 + + +
diff --git a/bsp/stm32/stm32f746-st-disco/template.uvprojx b/bsp/stm32/stm32f746-st-disco/template.uvprojx new file mode 100644 index 0000000000..0925446519 --- /dev/null +++ b/bsp/stm32/stm32f746-st-disco/template.uvprojx @@ -0,0 +1,386 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + rt-thread + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + + + STM32F746NGHx + STMicroelectronics + Keil.STM32F7xx_DFP.2.9.0 + http://www.keil.com/pack + IRAM(0x20010000,0x40000) IRAM2(0x20000000,0x10000) IROM(0x08000000,0x100000) IROM2(0x00200000,0x100000) CPUTYPE("Cortex-M7") FPU3(SFPU) CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20010000 -FC1000 -FN1 -FF0STM32F7x_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F746NGHx$CMSIS\Flash\STM32F7x_1024.FLM)) + 0 + $$Device:STM32F746NGHx$Drivers\CMSIS\Device\ST\STM32F7xx\Include\stm32f7xx.h + + + + + + + + + + $$Device:STM32F746NGHx$CMSIS\SVD\STM32F7x6_v1r1.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\build\keil\Obj\ + rt-thread + 1 + 0 + 0 + 1 + 1 + .\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 + -REMAP -MPU + DCM.DLL + -pCM7 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM7 + + + + 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-M7" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 1 + 1 + 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 + 0x20010000 + 0x40000 + + + 1 + 0x8000000 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x100000 + + + 1 + 0x200000 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x50000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 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 + + + + + + + + + + + Source Group 1 + + + + + +
From 67c41b3d923954de7707edd50f9553014390af01 Mon Sep 17 00:00:00 2001 From: jinsheng Date: Mon, 14 Jan 2019 21:28:34 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/stm32/stm32f746-st-disco/README.md | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/bsp/stm32/stm32f746-st-disco/README.md b/bsp/stm32/stm32f746-st-disco/README.md index 1d9ad2f316..0177bce226 100644 --- a/bsp/stm32/stm32f746-st-disco/README.md +++ b/bsp/stm32/stm32f746-st-disco/README.md @@ -35,13 +35,28 @@ STM32F746-disco 是 ST 推出的一款基于 ARM Cortex-M7 内核的开发板, ## 外设支持 本 BSP 目前对外设的支持情况如下: - +| **板载外设** | **支持情况** | **备注** | +| :----------------- | :----------: | :------------------------------------- | +| 板载 ST-LINK 转串口 | 支持 | UART1 | +| QSPI Flash | 暂不支持 | | +| 以太网 | 暂不支持 | | +| SDRAM | 暂不支持 | | +| SD卡 | 暂不支持 | | +| 4.3寸电容屏 | 暂不支持 | | +| MEMS麦克风 | 暂不支持 | | | **片上外设** | **支持情况** | **备注** | | :------------ | :----------: | :-----------------------------------: | -| GPIO | 支持 | PI1 | -| UART | 支持 | UART1 | -| SD卡 | 暂不支持 | 即将支持 | -| 以太网 | 暂不支持 | 即将支持 | +| GPIO | 支持 | PA0, PA1... PK7 ---> PIN: 0, 1...168 | +| UART | 支持 | UART1 | +| SPI | 暂不支持 | 即将支持 | +| QSPI | 暂不支持 | 即将支持 | +| I2C | 暂不支持 | 即将支持 | +| FLASH | 暂不支持 | 即将支持 | +| WDT | 暂不支持 | 即将支持 | +| SDIO | 暂不支持 | 即将支持 | +| USB Device | 暂不支持 | 即将支持 | +| USB Host | 暂不支持 | 即将支持 | +| SAI | 暂不支持 | 即将支持 | ## 使用说明 From f4f81460cfcc65dbbdfac0a6b065a2653753e3f9 Mon Sep 17 00:00:00 2001 From: jinsheng <12907063+jinsheng20@users.noreply.github.com> Date: Wed, 16 Jan 2019 13:18:25 +0800 Subject: [PATCH 3/3] Update README.md --- bsp/stm32/stm32f746-st-disco/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bsp/stm32/stm32f746-st-disco/README.md b/bsp/stm32/stm32f746-st-disco/README.md index 0177bce226..c725b207c5 100644 --- a/bsp/stm32/stm32f746-st-disco/README.md +++ b/bsp/stm32/stm32f746-st-disco/README.md @@ -37,7 +37,7 @@ STM32F746-disco 是 ST 推出的一款基于 ARM Cortex-M7 内核的开发板, 本 BSP 目前对外设的支持情况如下: | **板载外设** | **支持情况** | **备注** | | :----------------- | :----------: | :------------------------------------- | -| 板载 ST-LINK 转串口 | 支持 | UART1 | +| USB 转串口 | 支持 | UART1 | | QSPI Flash | 暂不支持 | | | 以太网 | 暂不支持 | | | SDRAM | 暂不支持 | |