From 2700130ea63c2cf867c3c8986bbbce42faedb5d7 Mon Sep 17 00:00:00 2001 From: qiyongzhong0 <917768104@qq.com> Date: Thu, 5 Dec 2019 11:44:39 +0800 Subject: [PATCH] add stm32l4r5-st-nucleo BSP --- bsp/stm32/stm32l4r5-st-nucleo/.config | 422 +++ bsp/stm32/stm32l4r5-st-nucleo/.gitignore | 42 + bsp/stm32/stm32l4r5-st-nucleo/Kconfig | 21 + bsp/stm32/stm32l4r5-st-nucleo/README.md | 116 + bsp/stm32/stm32l4r5-st-nucleo/SConscript | 15 + bsp/stm32/stm32l4r5-st-nucleo/SConstruct | 59 + .../applications/SConscript | 9 + .../stm32l4r5-st-nucleo/applications/main.c | 39 + .../board/CubeMX_Config/.mxproject | 14 + .../board/CubeMX_Config/Inc/main.h | 71 + .../CubeMX_Config/Inc/stm32l4xx_hal_conf.h | 440 +++ .../board/CubeMX_Config/Inc/stm32l4xx_it.h | 69 + .../board/CubeMX_Config/STM32L4R5ZITx.ioc | 164 + .../board/CubeMX_Config/Src/main.c | 254 ++ .../CubeMX_Config/Src/stm32l4xx_hal_msp.c | 150 + .../board/CubeMX_Config/Src/stm32l4xx_it.c | 203 ++ .../CubeMX_Config/Src/system_stm32l4xx.c | 337 ++ bsp/stm32/stm32l4r5-st-nucleo/board/Kconfig | 239 ++ .../stm32l4r5-st-nucleo/board/SConscript | 40 + bsp/stm32/stm32l4r5-st-nucleo/board/board.c | 60 + bsp/stm32/stm32l4r5-st-nucleo/board/board.h | 43 + .../board/linker_scripts/link.icf | 36 + .../board/linker_scripts/link.lds | 155 + .../board/linker_scripts/link.sct | 19 + .../stm32l4r5-st-nucleo/figures/board.jpg | Bin 0 -> 326271 bytes bsp/stm32/stm32l4r5-st-nucleo/project.ewd | 2974 +++++++++++++++++ bsp/stm32/stm32l4r5-st-nucleo/project.ewp | 2340 +++++++++++++ bsp/stm32/stm32l4r5-st-nucleo/project.ewt | 2629 +++++++++++++++ bsp/stm32/stm32l4r5-st-nucleo/project.eww | 10 + bsp/stm32/stm32l4r5-st-nucleo/project.uvoptx | 196 ++ bsp/stm32/stm32l4r5-st-nucleo/project.uvprojx | 886 +++++ bsp/stm32/stm32l4r5-st-nucleo/rtconfig.h | 171 + bsp/stm32/stm32l4r5-st-nucleo/rtconfig.py | 143 + bsp/stm32/stm32l4r5-st-nucleo/template.ewd | 2974 +++++++++++++++++ bsp/stm32/stm32l4r5-st-nucleo/template.ewp | 2106 ++++++++++++ bsp/stm32/stm32l4r5-st-nucleo/template.eww | 10 + bsp/stm32/stm32l4r5-st-nucleo/template.uvoptx | 196 ++ .../stm32l4r5-st-nucleo/template.uvprojx | 394 +++ 38 files changed, 18046 insertions(+) create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/.config create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/.gitignore create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/Kconfig create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/README.md create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/SConscript create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/SConstruct create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/applications/SConscript create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/applications/main.c create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/.mxproject create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Inc/main.h create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Inc/stm32l4xx_hal_conf.h create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Inc/stm32l4xx_it.h create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/STM32L4R5ZITx.ioc create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Src/main.c create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Src/stm32l4xx_hal_msp.c create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Src/stm32l4xx_it.c create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Src/system_stm32l4xx.c create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/board/Kconfig create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/board/SConscript create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/board/board.c create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/board/board.h create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/board/linker_scripts/link.icf create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/board/linker_scripts/link.lds create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/board/linker_scripts/link.sct create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/figures/board.jpg create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/project.ewd create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/project.ewp create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/project.ewt create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/project.eww create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/project.uvoptx create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/project.uvprojx create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/rtconfig.h create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/rtconfig.py create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/template.ewd create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/template.ewp create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/template.eww create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/template.uvoptx create mode 100644 bsp/stm32/stm32l4r5-st-nucleo/template.uvprojx diff --git a/bsp/stm32/stm32l4r5-st-nucleo/.config b/bsp/stm32/stm32l4r5-st-nucleo/.config new file mode 100644 index 0000000000..60155b96c1 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/.config @@ -0,0 +1,422 @@ +# +# Automatically generated file; DO NOT EDIT. +# RT-Thread Configuration +# + +# +# RT-Thread Kernel +# +CONFIG_RT_NAME_MAX=8 +# CONFIG_RT_USING_ARCH_DATA_TYPE is not set +# 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_IDLE_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_COLOR=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 is not set +CONFIG_RT_USING_MEMHEAP=y +# CONFIG_RT_USING_NOHEAP is not set +CONFIG_RT_USING_SMALL_MEM=y +# CONFIG_RT_USING_SLAB is not set +# CONFIG_RT_USING_MEMHEAP_AS_HEAP 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=y +# CONFIG_RT_USING_INTERRUPT_INFO is not set +CONFIG_RT_USING_CONSOLE=y +CONFIG_RT_CONSOLEBUF_SIZE=256 +CONFIG_RT_CONSOLE_DEVICE_NAME="lpuart1" +CONFIG_RT_VER_NUM=0x40002 +CONFIG_ARCH_ARM=y +CONFIG_RT_USING_CPU_FFS=y +CONFIG_ARCH_ARM_CORTEX_M=y +CONFIG_ARCH_ARM_CORTEX_M4=y +# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set + +# +# RT-Thread Components +# +CONFIG_RT_USING_COMPONENTS_INIT=y +CONFIG_RT_USING_USER_MAIN=y +CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048 +CONFIG_RT_MAIN_THREAD_PRIORITY=10 + +# +# C++ features +# +# CONFIG_RT_USING_CPLUSPLUS is not set + +# +# Command shell +# +CONFIG_RT_USING_FINSH=y +CONFIG_FINSH_THREAD_NAME="tshell" +CONFIG_FINSH_USING_HISTORY=y +CONFIG_FINSH_HISTORY_LINES=5 +CONFIG_FINSH_USING_SYMTAB=y +CONFIG_FINSH_USING_DESCRIPTION=y +# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set +CONFIG_FINSH_THREAD_PRIORITY=20 +CONFIG_FINSH_THREAD_STACK_SIZE=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_SYSTEM_WORKQUEUE is not set +CONFIG_RT_USING_SERIAL=y +# CONFIG_RT_SERIAL_USING_DMA is not set +CONFIG_RT_SERIAL_RB_BUFSZ=64 +# 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_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 +# CONFIG_RT_USING_SENSOR is not set +# CONFIG_RT_USING_TOUCH is not set +# CONFIG_RT_USING_HWCRYPTO is not set +# CONFIG_RT_USING_PULSE_ENCODER is not set +# CONFIG_RT_USING_INPUT_CAPTURE is not set +# 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 +# CONFIG_RT_LIBC_USING_TIME is not set + +# +# Network +# + +# +# Socket abstraction layer +# +# CONFIG_RT_USING_SAL is not set + +# +# Network interface device +# +# CONFIG_RT_USING_NETDEV is not set + +# +# light weight TCP/IP stack +# +# CONFIG_RT_USING_LWIP 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_RYM is not set +# CONFIG_RT_USING_ULOG is not set +# CONFIG_RT_USING_UTEST is not set +# CONFIG_RT_USING_LWP is not set + +# +# RT-Thread online packages +# + +# +# IoT - internet of things +# +# CONFIG_PKG_USING_PAHOMQTT is not set +# CONFIG_PKG_USING_WEBCLIENT is not set +# CONFIG_PKG_USING_WEBNET is not set +# CONFIG_PKG_USING_MONGOOSE is not set +# CONFIG_PKG_USING_MYMQTT 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_LIBMODBUS is not set +# CONFIG_PKG_USING_FREEMODBUS 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_RW007 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_PPP_DEVICE is not set +# CONFIG_PKG_USING_AT_DEVICE is not set +# CONFIG_PKG_USING_ATSRV_SOCKET is not set +# CONFIG_PKG_USING_WIZNET is not set + +# +# IoT Cloud +# +# CONFIG_PKG_USING_ONENET is not set +# CONFIG_PKG_USING_GAGENT_CLOUD is not set +# CONFIG_PKG_USING_ALI_IOTKIT is not set +# CONFIG_PKG_USING_AZURE is not set +# CONFIG_PKG_USING_TENCENT_IOTHUB is not set +# CONFIG_PKG_USING_JIOT-C-SDK is not set +# CONFIG_PKG_USING_NIMBLE is not set +# CONFIG_PKG_USING_OTA_DOWNLOADER is not set +# CONFIG_PKG_USING_IPMSG is not set +# CONFIG_PKG_USING_LSSDP is not set +# CONFIG_PKG_USING_AIRKISS_OPEN is not set +# CONFIG_PKG_USING_LIBRWS is not set +# CONFIG_PKG_USING_TCPSERVER is not set +# CONFIG_PKG_USING_PROTOBUF_C is not set +# CONFIG_PKG_USING_ONNX_PARSER is not set +# CONFIG_PKG_USING_ONNX_BACKEND is not set +# CONFIG_PKG_USING_DLT645 is not set +# CONFIG_PKG_USING_QXWZ is not set +# CONFIG_PKG_USING_SMTP_CLIENT is not set +# CONFIG_PKG_USING_ABUP_FOTA 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 +# CONFIG_PKG_USING_STEMWIN is not set +# CONFIG_PKG_USING_WAVPLAYER is not set +# CONFIG_PKG_USING_TJPGD is not set + +# +# tools packages +# +# CONFIG_PKG_USING_CMBACKTRACE is not set +# CONFIG_PKG_USING_EASYFLASH is not set +# CONFIG_PKG_USING_EASYLOGGER is not set +# CONFIG_PKG_USING_SYSTEMVIEW is not set +# CONFIG_PKG_USING_RDB is not set +# CONFIG_PKG_USING_QRCODE is not set +# CONFIG_PKG_USING_ULOG_EASYFLASH is not set +# CONFIG_PKG_USING_ADBD is not set +# CONFIG_PKG_USING_COREMARK is not set +# CONFIG_PKG_USING_DHRYSTONE is not set +# CONFIG_PKG_USING_NR_MICRO_SHELL is not set +# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set +# CONFIG_PKG_USING_LUNAR_CALENDAR is not set + +# +# system packages +# +# CONFIG_PKG_USING_GUIENGINE is not set +# CONFIG_PKG_USING_PERSIMMON is not set +# CONFIG_PKG_USING_CAIRO is not set +# CONFIG_PKG_USING_PIXMAN is not set +# CONFIG_PKG_USING_LWEXT4 is not set +# CONFIG_PKG_USING_PARTITION is not set +# CONFIG_PKG_USING_FAL is not set +# CONFIG_PKG_USING_SQLITE is not set +# CONFIG_PKG_USING_RTI is not set +# CONFIG_PKG_USING_LITTLEVGL2RTT is not set +# CONFIG_PKG_USING_CMSIS is not set +# CONFIG_PKG_USING_DFS_YAFFS is not set +# CONFIG_PKG_USING_LITTLEFS is not set +# CONFIG_PKG_USING_THREAD_POOL is not set +# CONFIG_PKG_USING_ROBOTS is not set + +# +# peripheral libraries and drivers +# +# CONFIG_PKG_USING_SENSORS_DRIVERS is not set +# CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_SHT2X is not set +# CONFIG_PKG_USING_SHT3X is not set +# CONFIG_PKG_USING_STM32_SDIO is not set +# CONFIG_PKG_USING_ICM20608 is not set +# CONFIG_PKG_USING_U8G2 is not set +# CONFIG_PKG_USING_BUTTON is not set +# CONFIG_PKG_USING_PCF8574 is not set +# CONFIG_PKG_USING_SX12XX is not set +# CONFIG_PKG_USING_SIGNAL_LED is not set +# CONFIG_PKG_USING_LEDBLINK is not set +# CONFIG_PKG_USING_WM_LIBRARIES is not set +# CONFIG_PKG_USING_KENDRYTE_SDK is not set +# CONFIG_PKG_USING_INFRARED is not set +# CONFIG_PKG_USING_ROSSERIAL is not set +# CONFIG_PKG_USING_AGILE_BUTTON is not set +# CONFIG_PKG_USING_AGILE_LED is not set +# CONFIG_PKG_USING_AT24CXX is not set +# CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set +# CONFIG_PKG_USING_AD7746 is not set +# CONFIG_PKG_USING_PCA9685 is not set +# CONFIG_PKG_USING_I2C_TOOLS is not set +# CONFIG_PKG_USING_NRF24L01 is not set +# CONFIG_PKG_USING_TOUCH_DRIVERS is not set +# CONFIG_PKG_USING_MAX17048 is not set +# CONFIG_PKG_USING_RPLIDAR is not set +# CONFIG_PKG_USING_AS608 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_FLEXIBLE_BUTTON is not set +# CONFIG_PKG_USING_CANFESTIVAL is not set +# CONFIG_PKG_USING_ZLIB is not set +# CONFIG_PKG_USING_DSTR is not set +# CONFIG_PKG_USING_TINYFRAME is not set +# CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set +# CONFIG_PKG_USING_UPACKER is not set +# CONFIG_PKG_USING_UPARAM is not set + +# +# samples: kernel and components samples +# +# CONFIG_PKG_USING_KERNEL_SAMPLES is not set +# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set +# CONFIG_PKG_USING_NETWORK_SAMPLES is not set +# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set +# CONFIG_PKG_USING_HELLO is not set +# CONFIG_PKG_USING_VI is not set +# CONFIG_PKG_USING_NNOM is not set +# CONFIG_PKG_USING_LIBANN is not set +# CONFIG_PKG_USING_ELAPACK is not set +# CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_VT100 is not set +# CONFIG_PKG_USING_ULAPACK is not set +# CONFIG_PKG_USING_UKAL is not set +CONFIG_SOC_FAMILY_STM32=y +CONFIG_SOC_SERIES_STM32L4=y + +# +# Hardware Drivers Config +# +CONFIG_SOC_STM32L4R5ZI=y + +# +# Onboard Peripheral Drivers +# +CONFIG_BSP_USING_STLINK_TO_USART=y + +# +# On-chip Peripheral Drivers +# +CONFIG_BSP_USING_GPIO=y +CONFIG_BSP_USING_UART=y +CONFIG_BSP_USING_LPUART1=y +# CONFIG_BSP_USING_UART1 is not set +# CONFIG_BSP_USING_UART2 is not set +# CONFIG_BSP_USING_UART3 is not set +# CONFIG_BSP_USING_UART4 is not set +# CONFIG_BSP_USING_UART5 is not set +# CONFIG_BSP_USING_ON_CHIP_FLASH is not set +# CONFIG_BSP_USING_USBD is not set +# CONFIG_BSP_USING_WDT is not set +# CONFIG_BSP_USING_ADC is not set +# CONFIG_BSP_USING_ONCHIP_RTC is not set +# CONFIG_BSP_USING_SPI is not set +# CONFIG_BSP_USING_I2C is not set +# CONFIG_BSP_USING_TIM is not set +# CONFIG_BSP_USING_PWM is not set + +# +# Board extended module Drivers +# diff --git a/bsp/stm32/stm32l4r5-st-nucleo/.gitignore b/bsp/stm32/stm32l4r5-st-nucleo/.gitignore new file mode 100644 index 0000000000..7221bde019 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/.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/stm32l4r5-st-nucleo/Kconfig b/bsp/stm32/stm32l4r5-st-nucleo/Kconfig new file mode 100644 index 0000000000..8cbc7b71a8 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/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/stm32l4r5-st-nucleo/README.md b/bsp/stm32/stm32l4r5-st-nucleo/README.md new file mode 100644 index 0000000000..bcbb92b788 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/README.md @@ -0,0 +1,116 @@ +# STM32L4R5ZI-NUCLEO 开发板bsp说明 + +## 简介 + +由 QYZ 为 STM32L4R5ZI-NUCLEO 开发板提供的 BSP (板级支持包) 说明。 + +主要内容如下: + +- 开发板资源介绍 +- BSP 快速上手 +- 进阶使用方法 + +通过阅读快速上手章节开发者可以快速地上手该 BSP,将 RT-Thread 运行在开发板上。在进阶使用指南章节,将会介绍更多高级功能,帮助开发者利用 RT-Thread 驱动更多板载资源。 + +## 开发板介绍 + +开发板外观如下图所示: + +![board](figures/board.bmp) + +该开发板常用 **板载资源** 如下: + +- MCU:STM32L4R5ZI,主频 120MHz,2048KB FLASH ,640KB RAM +- 常用外设 + - 状态指示灯:3个,LD1 - 3 + - 按键:2个 + - 板载 ST LINK +- 常用接口:USB OTG Micro USB 接口 +- 调试接口,ST-LINK Micro USB 接口 +开发板更多详细信息请参考 ST 的 [STM32L4R5ZI-NUCLEO](https://www.st.com/en/evaluation-tools/nucleo-l4r5zi.html)介绍。 +## 外设支持 + +本 BSP 目前对外设的支持情况如下: + +| **板载外设** | **支持情况** | **备注** | +| :----------------- | :----------: | :-----------------------------------------| +| 板载 ST-LINK 转串口 | 支持 | PG7 PG8 LPUART1 | +| SRAM | 支持 | | +| **片上外设** | **支持情况** | **备注** | +| GPIO | 支持 | | +| UART | 支持 | USART3 | + + + + + +## 使用说明 + +使用说明分为如下两个章节: + +- 快速上手 + + 本章节是为刚接触 RT-Thread 的新手准备的使用说明,遵循简单的步骤即可将 RT-Thread 操作系统运行在该开发板上,看到实验效果 。 + +- 进阶使用 + + 本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。 + + +### 快速上手 + +本 BSP 为开发者提供 MDK5 和 IAR 工程,并且支持 GCC 开发环境。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。 + +#### 硬件连接 + +使用数据线连接开发板到 PC,打开电源开关。 + +#### 编译下载 + +双击 project.eww 文件,打开 IAR 工程,编译并下载程序到开发板。 + +> 工程默认配置使用 板载STLINK 仿真器下载程序,在通过 STLINK 连接开发板的基础上,点击下载按钮即可下载程序到开发板 + +#### 运行结果 + +下载程序成功之后,系统会自动运行,观察开发板上 LED 的运行效果, LED 会周期性闪烁。 + +连接开发板对应串口到 PC , 在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以看到 RT-Thread 的输出信息: + +```bash + \ | / +- RT - Thread Operating System + / | \ 4.0.1 build Apr 4 2019 + 2006 - 2019 Copyright by rt-thread team +msh > +``` +### 进阶使用 + +此 BSP 默认只开启了 GPIO 和 LPUART1的功能,如果需使用 USB、Flash 等更多高级功能,需要利用 ENV 工具对BSP 进行配置,步骤如下: + +1. 在 bsp 下打开 env 工具。 + +2. 输入`menuconfig`命令配置工程,配置好之后保存退出。 + +3. 输入`pkgs --update`命令更新软件包。 + +4. 输入`scons --target=mdk5/iar` 命令重新生成工程。 + +本章节更多详细的介绍请参考 [STM32 系列 BSP 外设驱动使用教程](../docs/STM32系列BSP外设驱动使用教程.md)。 + +## 注意事项 + +- 调试串口为LPUART1 映射到PG7 PG8 + +- stm32L4R5ZI 共有三块内部RAM区域 具体使用情况入如下 + + ``` + RAM1 (rw) : ORIGIN = 0x20000000, LENGTH = 192k /* 192K sram 用于程序定义全局变量 静态变量存放*/ + RAM2 (rw) : ORIGIN = 0x10000000, LENGTH = 64k /* 64K sram 暂未使用 */ + RAM3 (rw) : ORIGIN = 0x20040000, LENGTH = 384k /* 384K sram 用于heap空间*/ + ``` + + +## 联系人信息 + +维护人: diff --git a/bsp/stm32/stm32l4r5-st-nucleo/SConscript b/bsp/stm32/stm32l4r5-st-nucleo/SConscript new file mode 100644 index 0000000000..20f7689c53 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/SConscript @@ -0,0 +1,15 @@ +# for module compiling +import os +Import('RTT_ROOT') +from building import * + +cwd = GetCurrentDir() +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/stm32l4r5-st-nucleo/SConstruct b/bsp/stm32/stm32l4r5-st-nucleo/SConstruct new file mode 100644 index 0000000000..58a36adbfc --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/SConstruct @@ -0,0 +1,59 @@ +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', + CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS, + 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 = env["LINKCOM"] + ' --map rt-thread.map') + +Export('RTT_ROOT') +Export('rtconfig') + +SDK_ROOT = os.path.abspath('./') + +if os.path.exists(SDK_ROOT + '/libraries'): + libraries_path_prefix = SDK_ROOT + '/libraries' +else: + libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries' + +SDK_LIB = libraries_path_prefix +Export('SDK_LIB') + +# prepare building environment +objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False) + +stm32_library = 'STM32L4xx_HAL' +rtconfig.BSP_LIBRARY_TYPE = stm32_library + +# include libraries +objs.extend(SConscript(os.path.join(libraries_path_prefix, stm32_library, 'SConscript'))) + +# include drivers +objs.extend(SConscript(os.path.join(libraries_path_prefix, 'HAL_Drivers', 'SConscript'))) + +# make a building +DoBuilding(TARGET, objs) diff --git a/bsp/stm32/stm32l4r5-st-nucleo/applications/SConscript b/bsp/stm32/stm32l4r5-st-nucleo/applications/SConscript new file mode 100644 index 0000000000..4939638d41 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/applications/SConscript @@ -0,0 +1,9 @@ +from building import * + +cwd = GetCurrentDir() +src = Glob('*.c') +CPPPATH = [str(Dir('#')), cwd] + +group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH) + +Return('group') diff --git a/bsp/stm32/stm32l4r5-st-nucleo/applications/main.c b/bsp/stm32/stm32l4r5-st-nucleo/applications/main.c new file mode 100644 index 0000000000..df59d02ff9 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/applications/main.c @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-11-06 SummerGift first version + */ + +#include +#include +#include + +/* defined the LED1 pin: PC7 */ +#define LED1_PIN GET_PIN(C, 7) +/* defined the LED2 pin: PB7 */ +#define LED2_PIN GET_PIN(B, 7) +/* defined the LED3 pin: PB14 */ +#define LED3_PIN GET_PIN(B, 14) + +#define LED_RUN_PIN LED3_PIN + +int main(void) +{ + int count = 1; + + rt_pin_mode(LED_RUN_PIN, PIN_MODE_OUTPUT); + + while (count++) + { + rt_pin_write(LED_RUN_PIN, PIN_HIGH); + rt_thread_mdelay(500); + rt_pin_write(LED_RUN_PIN, PIN_LOW); + rt_thread_mdelay(500); + } + + return RT_EOK; +} diff --git a/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/.mxproject b/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/.mxproject new file mode 100644 index 0000000000..d3df7c29f8 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/.mxproject @@ -0,0 +1,14 @@ +[PreviousGenFiles] +HeaderPath=E:/Work/GitLib/rt-thread/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Inc +HeaderFiles=stm32l4xx_it.h;stm32l4xx_hal_conf.h;main.h;gpio.h;adc.h;iwdg.h;lptim.h;usart.h;rtc.h;spi.h;tim.h;usb_otg.h; +SourcePath=E:/Work/GitLib/rt-thread/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Src +SourceFiles=stm32l4xx_it.c;stm32l4xx_hal_msp.c;main.c;gpio.c;adc.c;iwdg.c;lptim.c;usart.c;rtc.c;spi.c;tim.c;usb_otg.c; + +[PreviousLibFiles] +LibFiles=Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h;Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h;Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h;Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4r5xx.h;Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h;Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h;Drivers/CMSIS/Device/ST/STM32L4xx/Source/Templates/system_stm32l4xx.c;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/core_armv8mbl.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_sc300.h;Drivers/CMSIS/Include/mpu_armv7.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/tz_context.h; + +[PreviousUsedIarFiles] +SourceFiles=..\Src\main.c;..\Src\stm32l4xx_it.c;..\Src\stm32l4xx_hal_msp.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c;../\Src/system_stm32l4xx.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c;../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c;../\Src/system_stm32l4xx.c;../Drivers/CMSIS/Device/ST/STM32L4xx/Source/Templates/system_stm32l4xx.c;null; +HeaderPath=..\Drivers\STM32L4xx_HAL_Driver\Inc;..\Drivers\STM32L4xx_HAL_Driver\Inc\Legacy;..\Drivers\CMSIS\Device\ST\STM32L4xx\Include;..\Drivers\CMSIS\Include;..\Inc; +CDefines=USE_HAL_DRIVER;STM32L4R5xx;USE_HAL_DRIVER;STM32L4R5xx; + diff --git a/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Inc/main.h b/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Inc/main.h new file mode 100644 index 0000000000..f518da1838 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Inc/main.h @@ -0,0 +1,71 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.h + * @brief : Header for main.c file. + * This file contains the common defines of the application. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2019 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __MAIN_H +#define __MAIN_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l4xx_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/stm32l4r5-st-nucleo/board/CubeMX_Config/Inc/stm32l4xx_hal_conf.h b/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Inc/stm32l4xx_hal_conf.h new file mode 100644 index 0000000000..ad2b2456c6 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Inc/stm32l4xx_hal_conf.h @@ -0,0 +1,440 @@ +/** + ****************************************************************************** + * @file stm32l4xx_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 __STM32L4xx_HAL_CONF_H +#define __STM32L4xx_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_COMP_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_DFSDM_MODULE_ENABLED */ +/*#define HAL_DSI_MODULE_ENABLED */ +/*#define HAL_FIREWALL_MODULE_ENABLED */ +/*#define HAL_GFXMMU_MODULE_ENABLED */ +/*#define HAL_HCD_MODULE_ENABLED */ +/*#define HAL_HASH_MODULE_ENABLED */ +/*#define HAL_I2S_MODULE_ENABLED */ +/*#define HAL_IRDA_MODULE_ENABLED */ +/*#define HAL_IWDG_MODULE_ENABLED */ +/*#define HAL_LTDC_MODULE_ENABLED */ +/*#define HAL_LCD_MODULE_ENABLED */ +/*#define HAL_LPTIM_MODULE_ENABLED */ +/*#define HAL_MMC_MODULE_ENABLED */ +/*#define HAL_NAND_MODULE_ENABLED */ +/*#define HAL_NOR_MODULE_ENABLED */ +/*#define HAL_OPAMP_MODULE_ENABLED */ +/*#define HAL_OSPI_MODULE_ENABLED */ +/*#define HAL_OSPI_MODULE_ENABLED */ +/*#define HAL_PCD_MODULE_ENABLED */ +/*#define HAL_QSPI_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_SMBUS_MODULE_ENABLED */ +/*#define HAL_SMARTCARD_MODULE_ENABLED */ +/*#define HAL_SPI_MODULE_ENABLED */ +/*#define HAL_SRAM_MODULE_ENABLED */ +/*#define HAL_SWPMI_MODULE_ENABLED */ +/*#define HAL_TIM_MODULE_ENABLED */ +/*#define HAL_TSC_MODULE_ENABLED */ +#define HAL_UART_MODULE_ENABLED +/*#define HAL_USART_MODULE_ENABLED */ +/*#define HAL_WWDG_MODULE_ENABLED */ +/*#define HAL_EXTI_MODULE_ENABLED */ +#define HAL_GPIO_MODULE_ENABLED +#define HAL_EXTI_MODULE_ENABLED +#define HAL_I2C_MODULE_ENABLED +#define HAL_DMA_MODULE_ENABLED +#define HAL_RCC_MODULE_ENABLED +#define HAL_FLASH_MODULE_ENABLED +#define HAL_PWR_MODULE_ENABLED +#define HAL_CORTEX_MODULE_ENABLED + +/* ########################## Oscillator Values adaptation ####################*/ +/** + * @brief Adjust the value of External High Speed oscillator (HSE) used in your application. + * This value is used by the RCC HAL module to compute the system frequency + * (when HSE is used as system clock source, directly or through the PLL). + */ +#if !defined (HSE_VALUE) + #define HSE_VALUE ((uint32_t)8000000U) /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSE_STARTUP_TIMEOUT) + #define HSE_STARTUP_TIMEOUT ((uint32_t)100U) /*!< Time out for HSE start up, in ms */ +#endif /* HSE_STARTUP_TIMEOUT */ + +/** + * @brief Internal Multiple Speed oscillator (MSI) default value. + * This value is the default MSI range value after Reset. + */ +#if !defined (MSI_VALUE) + #define MSI_VALUE ((uint32_t)4000000U) /*!< Value of the Internal oscillator in Hz*/ +#endif /* MSI_VALUE */ +/** + * @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 High Speed oscillator (HSI48) value for USB FS, SDMMC and RNG. + * This internal oscillator is mainly dedicated to provide a high precision clock to + * the USB peripheral by means of a special Clock Recovery System (CRS) circuitry. + * When the CRS is not used, the HSI48 RC oscillator runs on it default frequency + * which is subject to manufacturing process variations. + */ +#if !defined (HSI48_VALUE) + #define HSI48_VALUE ((uint32_t)48000000U) /*!< Value of the Internal High Speed oscillator for USB FS/SDMMC/RNG in Hz. + The real value my vary depending on manufacturing process variations.*/ +#endif /* HSI48_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. + * This value is used by the UART, RTC HAL module to compute the system frequency + */ +#if !defined (LSE_VALUE) + #define LSE_VALUE ((uint32_t)32768U) /*!< Value of the External 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 /* HSE_STARTUP_TIMEOUT */ + +/** + * @brief External clock source for SAI1 peripheral + * This value is used by the RCC HAL module to compute the SAI1 & SAI2 clock source + * frequency. + */ +#if !defined (EXTERNAL_SAI1_CLOCK_VALUE) + #define EXTERNAL_SAI1_CLOCK_VALUE ((uint32_t)2097000U) /*!< Value of the SAI1 External clock source in Hz*/ +#endif /* EXTERNAL_SAI1_CLOCK_VALUE */ + +/** + * @brief External clock source for SAI2 peripheral + * This value is used by the RCC HAL module to compute the SAI1 & SAI2 clock source + * frequency. + */ +#if !defined (EXTERNAL_SAI2_CLOCK_VALUE) + #define EXTERNAL_SAI2_CLOCK_VALUE ((uint32_t)2097000U) /*!< Value of the SAI2 External clock source in Hz*/ +#endif /* EXTERNAL_SAI2_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 INSTRUCTION_CACHE_ENABLE 1U +#define DATA_CACHE_ENABLE 1U + +/* ########################## Assert Selection ############################## */ +/** + * @brief Uncomment the line below to expanse the "assert_param" macro in the + * HAL drivers code + */ +/* #define USE_FULL_ASSERT 1U */ + +/* ################## 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 "stm32l4xx_hal_rcc.h" + #include "stm32l4xx_hal_rcc_ex.h" +#endif /* HAL_RCC_MODULE_ENABLED */ + +#ifdef HAL_EXTI_MODULE_ENABLED + #include "stm32l4xx_hal_exti.h" +#endif /* HAL_EXTI_MODULE_ENABLED */ + +#ifdef HAL_GPIO_MODULE_ENABLED + #include "stm32l4xx_hal_gpio.h" +#endif /* HAL_GPIO_MODULE_ENABLED */ + +#ifdef HAL_DMA_MODULE_ENABLED + #include "stm32l4xx_hal_dma.h" + #include "stm32l4xx_hal_dma_ex.h" +#endif /* HAL_DMA_MODULE_ENABLED */ + +#ifdef HAL_DFSDM_MODULE_ENABLED + #include "stm32l4xx_hal_dfsdm.h" +#endif /* HAL_DFSDM_MODULE_ENABLED */ + +#ifdef HAL_CORTEX_MODULE_ENABLED + #include "stm32l4xx_hal_cortex.h" +#endif /* HAL_CORTEX_MODULE_ENABLED */ + +#ifdef HAL_ADC_MODULE_ENABLED + #include "stm32l4xx_hal_adc.h" +#endif /* HAL_ADC_MODULE_ENABLED */ + +#ifdef HAL_CAN_MODULE_ENABLED + #include "stm32l4xx_hal_can.h" +#endif /* HAL_CAN_MODULE_ENABLED */ + +#ifdef HAL_COMP_MODULE_ENABLED + #include "stm32l4xx_hal_comp.h" +#endif /* HAL_COMP_MODULE_ENABLED */ + +#ifdef HAL_CRC_MODULE_ENABLED + #include "stm32l4xx_hal_crc.h" +#endif /* HAL_CRC_MODULE_ENABLED */ + +#ifdef HAL_CRYP_MODULE_ENABLED + #include "stm32l4xx_hal_cryp.h" +#endif /* HAL_CRYP_MODULE_ENABLED */ + +#ifdef HAL_DAC_MODULE_ENABLED + #include "stm32l4xx_hal_dac.h" +#endif /* HAL_DAC_MODULE_ENABLED */ + +#ifdef HAL_DCMI_MODULE_ENABLED + #include "stm32l4xx_hal_dcmi.h" +#endif /* HAL_DCMI_MODULE_ENABLED */ + +#ifdef HAL_DMA2D_MODULE_ENABLED + #include "stm32l4xx_hal_dma2d.h" +#endif /* HAL_DMA2D_MODULE_ENABLED */ + +#ifdef HAL_DSI_MODULE_ENABLED + #include "stm32l4xx_hal_dsi.h" +#endif /* HAL_DSI_MODULE_ENABLED */ + +#ifdef HAL_FIREWALL_MODULE_ENABLED + #include "stm32l4xx_hal_firewall.h" +#endif /* HAL_FIREWALL_MODULE_ENABLED */ + +#ifdef HAL_FLASH_MODULE_ENABLED + #include "stm32l4xx_hal_flash.h" +#endif /* HAL_FLASH_MODULE_ENABLED */ + +#ifdef HAL_HASH_MODULE_ENABLED + #include "stm32l4xx_hal_hash.h" +#endif /* HAL_HASH_MODULE_ENABLED */ + +#ifdef HAL_SRAM_MODULE_ENABLED + #include "stm32l4xx_hal_sram.h" +#endif /* HAL_SRAM_MODULE_ENABLED */ + +#ifdef HAL_MMC_MODULE_ENABLED + #include "stm32l4xx_hal_mmc.h" +#endif /* HAL_MMC_MODULE_ENABLED */ + +#ifdef HAL_NOR_MODULE_ENABLED + #include "stm32l4xx_hal_nor.h" +#endif /* HAL_NOR_MODULE_ENABLED */ + +#ifdef HAL_NAND_MODULE_ENABLED + #include "stm32l4xx_hal_nand.h" +#endif /* HAL_NAND_MODULE_ENABLED */ + +#ifdef HAL_I2C_MODULE_ENABLED + #include "stm32l4xx_hal_i2c.h" +#endif /* HAL_I2C_MODULE_ENABLED */ + +#ifdef HAL_IWDG_MODULE_ENABLED + #include "stm32l4xx_hal_iwdg.h" +#endif /* HAL_IWDG_MODULE_ENABLED */ + +#ifdef HAL_LCD_MODULE_ENABLED + #include "stm32l4xx_hal_lcd.h" +#endif /* HAL_LCD_MODULE_ENABLED */ + +#ifdef HAL_LPTIM_MODULE_ENABLED + #include "stm32l4xx_hal_lptim.h" +#endif /* HAL_LPTIM_MODULE_ENABLED */ + +#ifdef HAL_LTDC_MODULE_ENABLED + #include "stm32l4xx_hal_ltdc.h" +#endif /* HAL_LTDC_MODULE_ENABLED */ + +#ifdef HAL_OPAMP_MODULE_ENABLED + #include "stm32l4xx_hal_opamp.h" +#endif /* HAL_OPAMP_MODULE_ENABLED */ + +#ifdef HAL_OSPI_MODULE_ENABLED + #include "stm32l4xx_hal_ospi.h" +#endif /* HAL_OSPI_MODULE_ENABLED */ + +#ifdef HAL_PWR_MODULE_ENABLED + #include "stm32l4xx_hal_pwr.h" +#endif /* HAL_PWR_MODULE_ENABLED */ + +#ifdef HAL_QSPI_MODULE_ENABLED + #include "stm32l4xx_hal_qspi.h" +#endif /* HAL_QSPI_MODULE_ENABLED */ + +#ifdef HAL_RNG_MODULE_ENABLED + #include "stm32l4xx_hal_rng.h" +#endif /* HAL_RNG_MODULE_ENABLED */ + +#ifdef HAL_RTC_MODULE_ENABLED + #include "stm32l4xx_hal_rtc.h" +#endif /* HAL_RTC_MODULE_ENABLED */ + +#ifdef HAL_SAI_MODULE_ENABLED + #include "stm32l4xx_hal_sai.h" +#endif /* HAL_SAI_MODULE_ENABLED */ + +#ifdef HAL_SD_MODULE_ENABLED + #include "stm32l4xx_hal_sd.h" +#endif /* HAL_SD_MODULE_ENABLED */ + +#ifdef HAL_SMBUS_MODULE_ENABLED + #include "stm32l4xx_hal_smbus.h" +#endif /* HAL_SMBUS_MODULE_ENABLED */ + +#ifdef HAL_SPI_MODULE_ENABLED + #include "stm32l4xx_hal_spi.h" +#endif /* HAL_SPI_MODULE_ENABLED */ + +#ifdef HAL_SWPMI_MODULE_ENABLED + #include "stm32l4xx_hal_swpmi.h" +#endif /* HAL_SWPMI_MODULE_ENABLED */ + +#ifdef HAL_TIM_MODULE_ENABLED + #include "stm32l4xx_hal_tim.h" +#endif /* HAL_TIM_MODULE_ENABLED */ + +#ifdef HAL_TSC_MODULE_ENABLED + #include "stm32l4xx_hal_tsc.h" +#endif /* HAL_TSC_MODULE_ENABLED */ + +#ifdef HAL_UART_MODULE_ENABLED + #include "stm32l4xx_hal_uart.h" +#endif /* HAL_UART_MODULE_ENABLED */ + +#ifdef HAL_USART_MODULE_ENABLED + #include "stm32l4xx_hal_usart.h" +#endif /* HAL_USART_MODULE_ENABLED */ + +#ifdef HAL_IRDA_MODULE_ENABLED + #include "stm32l4xx_hal_irda.h" +#endif /* HAL_IRDA_MODULE_ENABLED */ + +#ifdef HAL_SMARTCARD_MODULE_ENABLED + #include "stm32l4xx_hal_smartcard.h" +#endif /* HAL_SMARTCARD_MODULE_ENABLED */ + +#ifdef HAL_WWDG_MODULE_ENABLED + #include "stm32l4xx_hal_wwdg.h" +#endif /* HAL_WWDG_MODULE_ENABLED */ + +#ifdef HAL_PCD_MODULE_ENABLED + #include "stm32l4xx_hal_pcd.h" +#endif /* HAL_PCD_MODULE_ENABLED */ + +#ifdef HAL_HCD_MODULE_ENABLED + #include "stm32l4xx_hal_hcd.h" +#endif /* HAL_HCD_MODULE_ENABLED */ + +#ifdef HAL_GFXMMU_MODULE_ENABLED + #include "stm32l4xx_hal_gfxmmu.h" +#endif /* HAL_GFXMMU_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((char *)__FILE__, __LINE__)) +/* Exported functions ------------------------------------------------------- */ + void assert_failed(char *file, uint32_t line); +#else + #define assert_param(expr) ((void)0U) +#endif /* USE_FULL_ASSERT */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32L4xx_HAL_CONF_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Inc/stm32l4xx_it.h b/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Inc/stm32l4xx_it.h new file mode 100644 index 0000000000..54934911ff --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Inc/stm32l4xx_it.h @@ -0,0 +1,69 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32l4xx_it.h + * @brief This file contains the headers of the interrupt handlers. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2019 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L4xx_IT_H +#define __STM32L4xx_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 /* __STM32L4xx_IT_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/STM32L4R5ZITx.ioc b/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/STM32L4R5ZITx.ioc new file mode 100644 index 0000000000..d09331ae4c --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/STM32L4R5ZITx.ioc @@ -0,0 +1,164 @@ +#MicroXplorer Configuration settings - do not modify +File.Version=6 +KeepUserPlacement=false +Mcu.Family=STM32L4 +Mcu.IP0=LPUART1 +Mcu.IP1=NVIC +Mcu.IP2=RCC +Mcu.IP3=SYS +Mcu.IPNb=4 +Mcu.Name=STM32L4R5Z(G-I)Tx +Mcu.Package=LQFP144 +Mcu.Pin0=PC14-OSC32_IN (PC14) +Mcu.Pin1=PC15-OSC32_OUT (PC15) +Mcu.Pin2=PG7 +Mcu.Pin3=PG8 +Mcu.Pin4=VP_SYS_VS_Systick +Mcu.PinsNb=5 +Mcu.ThirdPartyNb=0 +Mcu.UserConstants= +Mcu.UserName=STM32L4R5ZITx +MxCube.Version=5.3.0 +MxDb.Version=DB.5.0.30 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 +NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false +PC14-OSC32_IN\ (PC14).Mode=LSE-External-Oscillator +PC14-OSC32_IN\ (PC14).Signal=RCC_OSC32_IN +PC15-OSC32_OUT\ (PC15).Mode=LSE-External-Oscillator +PC15-OSC32_OUT\ (PC15).Signal=RCC_OSC32_OUT +PCC.Checker=true +PCC.Line=STM32L4R5/S5 +PCC.MCU=STM32L4R5Z(G-I)Tx +PCC.PartNumber=STM32L4R5ZITx +PCC.Seq0=0 +PCC.Series=STM32L4 +PCC.Temperature=25 +PCC.Vdd=3.0 +PG7.GPIOParameters=GPIO_Speed,GPIO_PuPd +PG7.GPIO_PuPd=GPIO_PULLUP +PG7.GPIO_Speed=GPIO_SPEED_FREQ_HIGH +PG7.Locked=true +PG7.Mode=Asynchronous +PG7.Signal=LPUART1_TX +PG8.GPIOParameters=GPIO_Speed,GPIO_PuPd +PG8.GPIO_PuPd=GPIO_PULLUP +PG8.GPIO_Speed=GPIO_SPEED_FREQ_HIGH +PG8.Locked=true +PG8.Mode=Asynchronous +PG8.Signal=LPUART1_RX +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=STM32L4R5ZITx +ProjectManager.FirmwarePackage=STM32Cube FW_L4 V1.14.0 +ProjectManager.FreePins=false +ProjectManager.HalAssertFull=false +ProjectManager.HeapSize=0x000 +ProjectManager.KeepUserCode=true +ProjectManager.LastFirmware=true +ProjectManager.LibraryCopy=0 +ProjectManager.MainLocation=Src +ProjectManager.NoMain=false +ProjectManager.PreviousToolchain= +ProjectManager.ProjectBuild=false +ProjectManager.ProjectFileName=STM32L4R5ZITx.ioc +ProjectManager.ProjectName=STM32L4R5ZITx +ProjectManager.StackSize=0x800 +ProjectManager.TargetToolchain=EWARM V8 +ProjectManager.ToolChainLocation= +ProjectManager.UnderRoot=false +ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_LPUART1_UART_Init-LPUART1-false-HAL-true +RCC.ADCFreq_Value=48000000 +RCC.AHBFreq_Value=100000000 +RCC.APB1CLKDivider=RCC_HCLK_DIV2 +RCC.APB1Freq_Value=50000000 +RCC.APB1TimFreq_Value=100000000 +RCC.APB2CLKDivider=RCC_HCLK_DIV2 +RCC.APB2Freq_Value=50000000 +RCC.APB2TimFreq_Value=100000000 +RCC.CK48CLockSelection=RCC_USBCLKSOURCE_HSI48 +RCC.CRSFreq_Value=48000000 +RCC.CortexFreq_Value=100000000 +RCC.DFSDMAudioFreq_Value=4000000 +RCC.DFSDMFreq_Value=50000000 +RCC.FCLKCortexFreq_Value=100000000 +RCC.FamilyName=M +RCC.HCLKFreq_Value=100000000 +RCC.HSE_VALUE=8000000 +RCC.HSI48_VALUE=48000000 +RCC.HSI_VALUE=16000000 +RCC.I2C1Freq_Value=50000000 +RCC.I2C2Freq_Value=50000000 +RCC.I2C3Freq_Value=50000000 +RCC.I2C4Freq_Value=50000000 +RCC.IPParameters=ADCFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,CK48CLockSelection,CRSFreq_Value,CortexFreq_Value,DFSDMAudioFreq_Value,DFSDMFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,I2C4Freq_Value,LCDTFTFreq_Value,LPTIM1CLockSelection,LPTIM1Freq_Value,LPTIM2CLockSelection,LPTIM2Freq_Value,LPUART1CLockSelection,LPUART1Freq_Value,LSCOPinFreq_Value,LSI_VALUE,MCO1PinFreq_Value,MSI_VALUE,OCTOSPIMFreq_Value,PLLM1,PLLM2,PLLM3,PLLN,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSAI1N,PLLSAI1PoutputFreq_Value,PLLSAI1QoutputFreq_Value,PLLSAI1RoutputFreq_Value,PLLSAI2PoutputFreq_Value,PLLSAI2QoutputFreq_Value,PLLSAI2RoutputFreq_Value,PLLSourceVirtual,PWRFreq_Value,RNGFreq_Value,RTCClockSelection,RTCFreq_Value,SAI1Freq_Value,SAI2Freq_Value,SDMMCFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,UART4CLockSelection,UART4Freq_Value,UART5CLockSelection,UART5Freq_Value,USART1CLockSelection,USART1Freq_Value,USART2CLockSelection,USART2Freq_Value,USART3CLockSelection,USART3Freq_Value,USBFreq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAI1OutputFreq_Value,VCOSAI2OutputFreq_Value +RCC.LCDTFTFreq_Value=16000000 +RCC.LPTIM1CLockSelection=RCC_LPTIM1CLKSOURCE_LSE +RCC.LPTIM1Freq_Value=32768 +RCC.LPTIM2CLockSelection=RCC_LPTIM2CLKSOURCE_LSE +RCC.LPTIM2Freq_Value=32768 +RCC.LPUART1CLockSelection=RCC_LPUART1CLKSOURCE_HSI +RCC.LPUART1Freq_Value=16000000 +RCC.LSCOPinFreq_Value=32000 +RCC.LSI_VALUE=32000 +RCC.MCO1PinFreq_Value=100000000 +RCC.MSI_VALUE=4000000 +RCC.OCTOSPIMFreq_Value=100000000 +RCC.PLLM1=2 +RCC.PLLM2=2 +RCC.PLLM3=2 +RCC.PLLN=25 +RCC.PLLPoutputFreq_Value=100000000 +RCC.PLLQoutputFreq_Value=100000000 +RCC.PLLRCLKFreq_Value=100000000 +RCC.PLLSAI1N=12 +RCC.PLLSAI1PoutputFreq_Value=48000000 +RCC.PLLSAI1QoutputFreq_Value=48000000 +RCC.PLLSAI1RoutputFreq_Value=48000000 +RCC.PLLSAI2PoutputFreq_Value=32000000 +RCC.PLLSAI2QoutputFreq_Value=32000000 +RCC.PLLSAI2RoutputFreq_Value=32000000 +RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSI +RCC.PWRFreq_Value=100000000 +RCC.RNGFreq_Value=48000000 +RCC.RTCClockSelection=RCC_RTCCLKSOURCE_LSE +RCC.RTCFreq_Value=32768 +RCC.SAI1Freq_Value=48000000 +RCC.SAI2Freq_Value=48000000 +RCC.SDMMCFreq_Value=100000000 +RCC.SYSCLKFreq_VALUE=100000000 +RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK +RCC.UART4CLockSelection=RCC_UART4CLKSOURCE_HSI +RCC.UART4Freq_Value=16000000 +RCC.UART5CLockSelection=RCC_UART5CLKSOURCE_HSI +RCC.UART5Freq_Value=16000000 +RCC.USART1CLockSelection=RCC_USART1CLKSOURCE_HSI +RCC.USART1Freq_Value=16000000 +RCC.USART2CLockSelection=RCC_USART2CLKSOURCE_HSI +RCC.USART2Freq_Value=16000000 +RCC.USART3CLockSelection=RCC_USART3CLKSOURCE_HSI +RCC.USART3Freq_Value=16000000 +RCC.USBFreq_Value=48000000 +RCC.VCOInput2Freq_Value=8000000 +RCC.VCOInput3Freq_Value=8000000 +RCC.VCOInputFreq_Value=8000000 +RCC.VCOOutputFreq_Value=200000000 +RCC.VCOSAI1OutputFreq_Value=96000000 +RCC.VCOSAI2OutputFreq_Value=64000000 +VP_SYS_VS_Systick.Mode=SysTick +VP_SYS_VS_Systick.Signal=SYS_VS_Systick +board=custom diff --git a/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Src/main.c b/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Src/main.c new file mode 100644 index 0000000000..62ca06d018 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Src/main.c @@ -0,0 +1,254 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.c + * @brief : Main program body + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2019 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* 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 hlpuart1; + +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +void SystemClock_Config(void); +static void MX_GPIO_Init(void); +static void MX_LPUART1_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_LPUART1_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 PeriphClkInit = {0}; + + /** Configure the main internal regulator output voltage + */ + if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1_BOOST) != HAL_OK) + { + Error_Handler(); + } + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; + RCC_OscInitStruct.PLL.PLLM = 2; + RCC_OscInitStruct.PLL.PLLN = 25; + RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; + RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2; + RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + { + Error_Handler(); + } + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4) != HAL_OK) + { + Error_Handler(); + } + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_LPUART1; + PeriphClkInit.Lpuart1ClockSelection = RCC_LPUART1CLKSOURCE_HSI; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + { + Error_Handler(); + } +} + +/** + * @brief LPUART1 Initialization Function + * @param None + * @retval None + */ +static void MX_LPUART1_UART_Init(void) +{ + + /* USER CODE BEGIN LPUART1_Init 0 */ + + /* USER CODE END LPUART1_Init 0 */ + + /* USER CODE BEGIN LPUART1_Init 1 */ + + /* USER CODE END LPUART1_Init 1 */ + hlpuart1.Instance = LPUART1; + hlpuart1.Init.BaudRate = 209700; + hlpuart1.Init.WordLength = UART_WORDLENGTH_7B; + hlpuart1.Init.StopBits = UART_STOPBITS_1; + hlpuart1.Init.Parity = UART_PARITY_NONE; + hlpuart1.Init.Mode = UART_MODE_TX_RX; + hlpuart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; + hlpuart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; + hlpuart1.Init.ClockPrescaler = UART_PRESCALER_DIV1; + hlpuart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; + hlpuart1.FifoMode = UART_FIFOMODE_DISABLE; + if (HAL_UART_Init(&hlpuart1) != HAL_OK) + { + Error_Handler(); + } + if (HAL_UARTEx_SetTxFifoThreshold(&hlpuart1, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK) + { + Error_Handler(); + } + if (HAL_UARTEx_SetRxFifoThreshold(&hlpuart1, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN LPUART1_Init 2 */ + + /* USER CODE END LPUART1_Init 2 */ + +} + +/** + * @brief GPIO Initialization Function + * @param None + * @retval None + */ +static void MX_GPIO_Init(void) +{ + + /* GPIO Ports Clock Enable */ + __HAL_RCC_GPIOC_CLK_ENABLE(); + __HAL_RCC_GPIOG_CLK_ENABLE(); + HAL_PWREx_EnableVddIO2(); + +} + +/* 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(char *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/stm32l4r5-st-nucleo/board/CubeMX_Config/Src/stm32l4xx_hal_msp.c b/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Src/stm32l4xx_hal_msp.c new file mode 100644 index 0000000000..cd642f7a7f --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Src/stm32l4xx_hal_msp.c @@ -0,0 +1,150 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * File Name : stm32l4xx_hal_msp.c + * Description : This file provides code for the MSP Initialization + * and de-Initialization codes. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2019 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN TD */ + +/* USER CODE END TD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN Define */ + +/* USER CODE END Define */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN Macro */ + +/* USER CODE END Macro */ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* External functions --------------------------------------------------------*/ +/* USER CODE BEGIN ExternalFunctions */ + +/* USER CODE END ExternalFunctions */ + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ +/** + * Initializes the Global MSP. + */ +void HAL_MspInit(void) +{ + /* USER CODE BEGIN MspInit 0 */ + + /* USER CODE END MspInit 0 */ + + __HAL_RCC_SYSCFG_CLK_ENABLE(); + __HAL_RCC_PWR_CLK_ENABLE(); + + /* 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==LPUART1) + { + /* USER CODE BEGIN LPUART1_MspInit 0 */ + + /* USER CODE END LPUART1_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_LPUART1_CLK_ENABLE(); + + __HAL_RCC_GPIOG_CLK_ENABLE(); + HAL_PWREx_EnableVddIO2(); + /**LPUART1 GPIO Configuration + PG7 ------> LPUART1_TX + PG8 ------> LPUART1_RX + */ + GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_PULLUP; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF8_LPUART1; + HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); + + /* USER CODE BEGIN LPUART1_MspInit 1 */ + + /* USER CODE END LPUART1_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==LPUART1) + { + /* USER CODE BEGIN LPUART1_MspDeInit 0 */ + + /* USER CODE END LPUART1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_LPUART1_CLK_DISABLE(); + + /**LPUART1 GPIO Configuration + PG7 ------> LPUART1_TX + PG8 ------> LPUART1_RX + */ + HAL_GPIO_DeInit(GPIOG, GPIO_PIN_7|GPIO_PIN_8); + + /* USER CODE BEGIN LPUART1_MspDeInit 1 */ + + /* USER CODE END LPUART1_MspDeInit 1 */ + } + +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Src/stm32l4xx_it.c b/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Src/stm32l4xx_it.c new file mode 100644 index 0000000000..2c0d8a0ff2 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Src/stm32l4xx_it.c @@ -0,0 +1,203 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32l4xx_it.c + * @brief Interrupt Service Routines. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2019 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +#include "stm32l4xx_it.h" +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN TD */ + +/* USER CODE END TD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN PD */ + +/* USER CODE END PD */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN PM */ + +/* USER CODE END PM */ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/* External variables --------------------------------------------------------*/ + +/* USER CODE BEGIN EV */ + +/* USER CODE END EV */ + +/******************************************************************************/ +/* Cortex-M4 Processor Interruption and Exception Handlers */ +/******************************************************************************/ +/** + * @brief This function handles Non maskable interrupt. + */ +void NMI_Handler(void) +{ + /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ + + /* USER CODE END NonMaskableInt_IRQn 0 */ + /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ + + /* USER CODE END NonMaskableInt_IRQn 1 */ +} + +/** + * @brief This function handles Hard fault interrupt. + */ +void HardFault_Handler(void) +{ + /* USER CODE BEGIN HardFault_IRQn 0 */ + + /* USER CODE END HardFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_HardFault_IRQn 0 */ + /* USER CODE END W1_HardFault_IRQn 0 */ + } +} + +/** + * @brief This function handles Memory management fault. + */ +void MemManage_Handler(void) +{ + /* USER CODE BEGIN MemoryManagement_IRQn 0 */ + + /* USER CODE END MemoryManagement_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */ + /* USER CODE END W1_MemoryManagement_IRQn 0 */ + } +} + +/** + * @brief This function handles Prefetch 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 */ +} + +/******************************************************************************/ +/* STM32L4xx 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_stm32l4xx.s). */ +/******************************************************************************/ + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Src/system_stm32l4xx.c b/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Src/system_stm32l4xx.c new file mode 100644 index 0000000000..26bd517974 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/board/CubeMX_Config/Src/system_stm32l4xx.c @@ -0,0 +1,337 @@ +/** + ****************************************************************************** + * @file system_stm32l4xx.c + * @author MCD Application Team + * @brief CMSIS Cortex-M4 Device Peripheral Access Layer System Source File + * + * This file provides two functions and one global variable to be called from + * user application: + * - SystemInit(): This function is called at startup just after reset and + * before branch to main program. This call is made inside + * the "startup_stm32l4xx.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. + * + * After each device reset the MSI (4 MHz) is used as system clock source. + * Then SystemInit() function is called, in "startup_stm32l4xx.s" file, to + * configure the system clock before to branch to main program. + * + * This file configures the system clock as follows: + *============================================================================= + *----------------------------------------------------------------------------- + * System Clock source | MSI + *----------------------------------------------------------------------------- + * SYSCLK(Hz) | 4000000 + *----------------------------------------------------------------------------- + * HCLK(Hz) | 4000000 + *----------------------------------------------------------------------------- + * AHB Prescaler | 1 + *----------------------------------------------------------------------------- + * APB1 Prescaler | 1 + *----------------------------------------------------------------------------- + * APB2 Prescaler | 1 + *----------------------------------------------------------------------------- + * PLL_M | 1 + *----------------------------------------------------------------------------- + * PLL_N | 8 + *----------------------------------------------------------------------------- + * PLL_P | 7 + *----------------------------------------------------------------------------- + * PLL_Q | 2 + *----------------------------------------------------------------------------- + * PLL_R | 2 + *----------------------------------------------------------------------------- + * PLLSAI1_P | NA + *----------------------------------------------------------------------------- + * PLLSAI1_Q | NA + *----------------------------------------------------------------------------- + * PLLSAI1_R | NA + *----------------------------------------------------------------------------- + * PLLSAI2_P | NA + *----------------------------------------------------------------------------- + * PLLSAI2_Q | NA + *----------------------------------------------------------------------------- + * PLLSAI2_R | NA + *----------------------------------------------------------------------------- + * Require 48MHz for USB OTG FS, | Disabled + * SDIO and RNG clock | + *----------------------------------------------------------------------------- + *============================================================================= + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2017 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/** @addtogroup CMSIS + * @{ + */ + +/** @addtogroup stm32l4xx_system + * @{ + */ + +/** @addtogroup STM32L4xx_System_Private_Includes + * @{ + */ + +#include "stm32l4xx.h" + +#if !defined (HSE_VALUE) + #define HSE_VALUE 8000000U /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (MSI_VALUE) + #define MSI_VALUE 4000000U /*!< Value of the Internal oscillator in Hz*/ +#endif /* MSI_VALUE */ + +#if !defined (HSI_VALUE) + #define HSI_VALUE 16000000U /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +/** + * @} + */ + +/** @addtogroup STM32L4xx_System_Private_TypesDefinitions + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32L4xx_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 STM32L4xx_System_Private_Macros + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32L4xx_System_Private_Variables + * @{ + */ + /* The SystemCoreClock 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 = 4000000U; + + const uint8_t AHBPrescTable[16] = {0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U, 6U, 7U, 8U, 9U}; + const uint8_t APBPrescTable[8] = {0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U}; + const uint32_t MSIRangeTable[12] = {100000U, 200000U, 400000U, 800000U, 1000000U, 2000000U, \ + 4000000U, 8000000U, 16000000U, 24000000U, 32000000U, 48000000U}; +/** + * @} + */ + +/** @addtogroup STM32L4xx_System_Private_FunctionPrototypes + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32L4xx_System_Private_Functions + * @{ + */ + +/** + * @brief Setup the microcontroller system. + * @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 MSION bit */ + RCC->CR |= RCC_CR_MSION; + + /* Reset CFGR register */ + RCC->CFGR = 0x00000000U; + + /* Reset HSEON, CSSON , HSION, and PLLON bits */ + RCC->CR &= 0xEAF6FFFFU; + + /* Reset PLLCFGR register */ + RCC->PLLCFGR = 0x00001000U; + + /* Reset HSEBYP bit */ + RCC->CR &= 0xFFFBFFFFU; + + /* Disable all interrupts */ + RCC->CIER = 0x00000000U; + + /* Configure the Vector Table location add offset address ------------------*/ +#ifdef VECT_TAB_SRAM + SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ +#else + SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */ +#endif +} + +/** + * @brief Update SystemCoreClock variable according to Clock Register Values. + * The SystemCoreClock variable contains the core clock (HCLK), it can + * be used by the user application to setup the SysTick timer or configure + * other parameters. + * + * @note Each time the core clock (HCLK) changes, this function must be called + * to update SystemCoreClock variable value. Otherwise, any configuration + * based on this variable will be incorrect. + * + * @note - The system frequency computed by this function is not the real + * frequency in the chip. It is calculated based on the predefined + * constant and the selected clock source: + * + * - If SYSCLK source is MSI, SystemCoreClock will contain the MSI_VALUE(*) + * + * - 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(*) or MSI_VALUE(*) multiplied/divided by the PLL factors. + * + * (*) MSI_VALUE is a constant defined in stm32l4xx_hal.h file (default value + * 4 MHz) but the real value may vary depending on the variations + * in voltage and temperature. + * + * (**) HSI_VALUE is a constant defined in stm32l4xx_hal.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 stm32l4xx_hal.h file (default value + * 8 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 = 0U, msirange = 0U, pllvco = 0U, pllr = 2U, pllsource = 0U, pllm = 2U; + + /* Get MSI Range frequency--------------------------------------------------*/ + if((RCC->CR & RCC_CR_MSIRGSEL) == RESET) + { /* MSISRANGE from RCC_CSR applies */ + msirange = (RCC->CSR & RCC_CSR_MSISRANGE) >> 8U; + } + else + { /* MSIRANGE from RCC_CR applies */ + msirange = (RCC->CR & RCC_CR_MSIRANGE) >> 4U; + } + /*MSI frequency range in HZ*/ + msirange = MSIRangeTable[msirange]; + + /* Get SYSCLK source -------------------------------------------------------*/ + switch (RCC->CFGR & RCC_CFGR_SWS) + { + case 0x00: /* MSI used as system clock source */ + SystemCoreClock = msirange; + break; + + case 0x04: /* HSI used as system clock source */ + SystemCoreClock = HSI_VALUE; + break; + + case 0x08: /* HSE used as system clock source */ + SystemCoreClock = HSE_VALUE; + break; + + case 0x0C: /* PLL used as system clock source */ + /* PLL_VCO = (HSE_VALUE or HSI_VALUE or MSI_VALUE/ PLLM) * PLLN + SYSCLK = PLL_VCO / PLLR + */ + pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC); + pllm = ((RCC->PLLCFGR & RCC_PLLCFGR_PLLM) >> 4U) + 1U ; + + switch (pllsource) + { + case 0x02: /* HSI used as PLL clock source */ + pllvco = (HSI_VALUE / pllm); + break; + + case 0x03: /* HSE used as PLL clock source */ + pllvco = (HSE_VALUE / pllm); + break; + + default: /* MSI used as PLL clock source */ + pllvco = (msirange / pllm); + break; + } + pllvco = pllvco * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 8U); + pllr = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLR) >> 25U) + 1U) * 2U; + SystemCoreClock = pllvco/pllr; + break; + + default: + SystemCoreClock = msirange; + break; + } + /* Compute HCLK clock frequency --------------------------------------------*/ + /* Get HCLK prescaler */ + tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4U)]; + /* HCLK clock frequency */ + SystemCoreClock >>= tmp; +} + + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32l4r5-st-nucleo/board/Kconfig b/bsp/stm32/stm32l4r5-st-nucleo/board/Kconfig new file mode 100644 index 0000000000..a227704de8 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/board/Kconfig @@ -0,0 +1,239 @@ +menu "Hardware Drivers Config" + + config SOC_STM32L4R5ZI + bool + select SOC_SERIES_STM32L4 + default y + + menu "Onboard Peripheral Drivers" + config BSP_USING_STLINK_TO_USART + bool "Enable STLINK TO USART (lpuart1)" + select BSP_USING_UART + select BSP_USING_LPUART1 + 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 RT_SERIAL_USING_DMA + bool "Enable uart using DMA" + default n + config BSP_USING_LPUART1 + bool "Enable LPUART1" + default y + config BSP_LPUART1_RX_USING_DMA + bool "Enable LPUART1 RX DMA" + depends on BSP_USING_LPUART1 && RT_SERIAL_USING_DMA + default n + config BSP_USING_UART1 + bool "Enable UART1" + default n + config BSP_UART1_RX_USING_DMA + bool "Enable UART1 RX DMA" + depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA + default n + config BSP_USING_UART2 + bool "Enable UART2" + default n + config BSP_UART2_RX_USING_DMA + bool "Enable UART2 RX DMA" + depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA + default n + config BSP_USING_UART3 + bool "Enable UART3" + default n + config BSP_UART3_RX_USING_DMA + bool "Enable UART3 RX DMA" + depends on BSP_USING_UART3 && RT_SERIAL_USING_DMA + default n + config BSP_USING_UART4 + bool "Enable UART4" + default n + config BSP_UART4_RX_USING_DMA + bool "Enable UART4 RX DMA" + depends on BSP_USING_UART4 && RT_SERIAL_USING_DMA + default n + config BSP_USING_UART5 + bool "Enable UART5" + default n + config BSP_UART5_RX_USING_DMA + bool "Enable UART5 RX DMA" + depends on BSP_USING_UART5 && RT_SERIAL_USING_DMA + default n + endif + + config BSP_USING_ON_CHIP_FLASH + bool "Enable on-chip FLASH" + default n + + config BSP_USING_USBD + bool "Enable OTGFS as USB device" + select RT_USING_USB_DEVICE + default n + + config BSP_USING_WDT + bool "Enable Watchdog Timer" + select RT_USING_WDT + default n + + menuconfig BSP_USING_ADC + bool "Enable ADC" + default n + select RT_USING_ADC + if BSP_USING_ADC + config BSP_USING_ADC1 + bool "Enable ADC1" + default n + + endif + + menuconfig BSP_USING_ONCHIP_RTC + bool "Enable RTC" + select RT_USING_RTC + select RT_USING_LIBC + default n + if BSP_USING_ONCHIP_RTC + choice + prompt "Select clock source" + default BSP_RTC_USING_LSE + config BSP_RTC_USING_LSE + bool "RTC USING LSE" + config BSP_RTC_USING_LSI + bool "RTC USING LSI" + endchoice + endif + + menuconfig BSP_USING_SPI + bool "Enable SPI BUS" + default n + select RT_USING_SPI + if BSP_USING_SPI + config BSP_USING_SPI1 + bool "Enable SPI1 BUS" + default n + config BSP_SPI1_TX_USING_DMA + bool "Enable SPI1 TX DMA" + depends on BSP_USING_SPI1 + default n + config BSP_SPI1_RX_USING_DMA + bool "Enable SPI1 RX DMA" + depends on BSP_USING_SPI1 + select BSP_SPI1_TX_USING_DMA + default n + config BSP_USING_SPI2 + bool "Enable SPI2 BUS" + default n + config BSP_SPI2_TX_USING_DMA + bool "Enable SPI2 TX DMA" + depends on BSP_USING_SPI2 + default n + config BSP_SPI2_RX_USING_DMA + bool "Enable SPI2 RX DMA" + depends on BSP_USING_SPI2 + select BSP_SPI2_TX_USING_DMA + default n + config BSP_USING_SPI3 + bool "Enable SPI3 BUS" + default n + config BSP_SPI3_TX_USING_DMA + bool "Enable SPI3 TX DMA" + depends on BSP_USING_SPI3 + default n + config BSP_SPI3_RX_USING_DMA + bool "Enable SPI3 RX DMA" + depends on BSP_USING_SPI3 + select BSP_SPI3_TX_USING_DMA + default n + endif + + menuconfig BSP_USING_I2C + bool "Enable using I2C BUS (software simulation)" + default n + select RT_USING_I2C + select RT_USING_I2C_BITOPS + select RT_USING_PIN + if BSP_USING_I2C + menuconfig BSP_USING_I2C1 + bool "Enable I2C1 BUS (software simulation)" + default n + if BSP_USING_I2C1 + config BSP_I2C1_SCL_PIN + int "i2c1 scl pin number" + range 1 144 + default 100 + config BSP_I2C1_SDA_PIN + int "I2C1 sda pin number" + range 1 144 + default 101 + endif + menuconfig BSP_USING_I2C2 + bool "Enable I2C2 BUS (software simulation)" + default n + if BSP_USING_I2C2 + config BSP_I2C2_SCL_PIN + int "i2c2 scl pin number" + range 1 144 + default 10 + config BSP_I2C2_SDA_PIN + int "I2C2 sda pin number" + range 1 144 + default 11 + endif + endif + + menuconfig BSP_USING_TIM + bool "Enable timer" + default n + select RT_USING_HWTIMER + if BSP_USING_TIM + config BSP_USING_TIM1 + bool "Enable TIM1" + default n + config BSP_USING_TIM2 + bool "Enable TIM2" + default n + config BSP_USING_TIM3 + bool "Enable TIM3" + default n + endif + + menuconfig BSP_USING_PWM + bool "Using PWM" + default n + select RT_USING_PWM + if BSP_USING_PWM + config BSP_USING_PWM1 + bool "Using PWM1 + default n + if BSP_USING_PWM1 + config BSP_USING_PWM1_CH1 + bool "Enable Channel 1 (PA8)" + default n + config BSP_USING_PWM1_CH2 + bool "Enable Channel 2 (PA9)" + default n + config BSP_USING_PWM1_CH3 + bool "Enable Channel 3 (PA10)" + default n + config BSP_USING_PWM1_CH4 + bool "Enable Channel 4 (PA11)" + default n + endif + endif + endmenu + + menu "Board extended module Drivers" + + endmenu + +endmenu diff --git a/bsp/stm32/stm32l4r5-st-nucleo/board/SConscript b/bsp/stm32/stm32l4r5-st-nucleo/board/SConscript new file mode 100644 index 0000000000..d3f963bf27 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/board/SConscript @@ -0,0 +1,40 @@ +import os +import rtconfig +from building import * + +Import('SDK_LIB') + +cwd = GetCurrentDir() + +# add general drivers +src = Split(''' +board.c +CubeMX_Config/Src/stm32l4xx_hal_msp.c +''') + +path = [cwd] +path += [cwd + '/CubeMX_Config/Inc'] + +startup_path_prefix = SDK_LIB + +if rtconfig.CROSS_TOOL == 'gcc': + src += [startup_path_prefix + '/STM32L4xx_HAL/CMSIS/Device/ST/STM32L4xx/Source/Templates/gcc/startup_stm32l4r5xx.s'] +elif rtconfig.CROSS_TOOL == 'keil': + src += [startup_path_prefix + '/STM32L4xx_HAL/CMSIS/Device/ST/STM32L4xx/Source/Templates/arm/startup_stm32l4r5xx.s'] +elif rtconfig.CROSS_TOOL == 'iar': + src += [startup_path_prefix + '/STM32L4xx_HAL/CMSIS/Device/ST/STM32L4xx/Source/Templates/iar/startup_stm32l4r5xx.s'] + +# STM32L412xx || STM32L422xx || STM32L431xx +# STM32L432xx || STM32L433xx || STM32L442xx +# STM32L443xx || STM32L451xx || STM32L452xx +# STM32L462xx || STM32L471xx || STM32L475xx +# STM32L476xx || STM32L485xx || STM32L486xx +# STM32L496xx || STM32L4A6xx || STM32L4R5xx +# STM32L4R7xx || STM32L4R9xx || STM32L4S5xx +# STM32L4S7xx || STM32L4S9xx +# You can select chips from the list above +CPPDEFINES = ['STM32L4R5xx'] +group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES) + +Return('group') + diff --git a/bsp/stm32/stm32l4r5-st-nucleo/board/board.c b/bsp/stm32/stm32l4r5-st-nucleo/board/board.c new file mode 100644 index 0000000000..7ab82ccd58 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/board/board.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-11-06 SummerGift first version + */ + +#include "board.h" + +void SystemClock_Config(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + + /** Configure the main internal regulator output voltage + */ + if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1_BOOST) != HAL_OK) + { + Error_Handler(); + } + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; + RCC_OscInitStruct.PLL.PLLM = 2; + RCC_OscInitStruct.PLL.PLLN = 25; + RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; + RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2; + RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + { + Error_Handler(); + } + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4) != HAL_OK) + { + Error_Handler(); + } + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_LPUART1; + PeriphClkInit.Lpuart1ClockSelection = RCC_LPUART1CLKSOURCE_HSI; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + { + Error_Handler(); + } +} diff --git a/bsp/stm32/stm32l4r5-st-nucleo/board/board.h b/bsp/stm32/stm32l4r5-st-nucleo/board/board.h new file mode 100644 index 0000000000..095f503423 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/board/board.h @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-11-5 SummerGift first version + * 2019-04-09 jhb + */ + +#ifndef __BOARD_H__ +#define __BOARD_H__ + +#include +#include +#include "drv_common.h" +#include "drv_gpio.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define STM32_FLASH_START_ADRESS ((uint32_t)0x08000000) +#define STM32_FLASH_SIZE (2048 * 1024) +#define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE)) + +#define STM32_SRAM3_SIZE (384) +#define STM32_SRAM3_START (0x20040000) +#define STM32_SRAM3_END (STM32_SRAM3_START + STM32_SRAM3_SIZE * 1024) + +#define HEAP_BEGIN STM32_SRAM3_START +#define HEAP_END STM32_SRAM3_END + +void SystemClock_Config(void); +void SystemClock_ReConfig(int run_mode); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/bsp/stm32/stm32l4r5-st-nucleo/board/linker_scripts/link.icf b/bsp/stm32/stm32l4r5-st-nucleo/board/linker_scripts/link.icf new file mode 100644 index 0000000000..8793e248d6 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/board/linker_scripts/link.icf @@ -0,0 +1,36 @@ +/*###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__ = 0x08200000; +define symbol __ICFEDIT_region_RAM1_start__ = 0x20000000; +define symbol __ICFEDIT_region_RAM1_end__ = 0x20030000; +define symbol __ICFEDIT_region_RAM2_start__ = 0x20040000; +define symbol __ICFEDIT_region_RAM2_end__ = 0x200A0000; +define symbol __ICFEDIT_region_RAM3_start__ = 0x10000000; +define symbol __ICFEDIT_region_RAM3_end__ = 0x10010000; + +/*-Sizes-*/ +define symbol __ICFEDIT_size_cstack__ = 0x0800; +define symbol __ICFEDIT_size_heap__ = 0x0000; +/**** End of ICF editor section. ###ICF###*/ + +define memory mem with size = 4G; +define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; +define region RAM1_region = mem:[from __ICFEDIT_region_RAM1_start__ to __ICFEDIT_region_RAM1_end__]; +define region RAM2_region = mem:[from __ICFEDIT_region_RAM2_start__ to __ICFEDIT_region_RAM2_end__]; +define region RAM3_region = mem:[from __ICFEDIT_region_RAM3_start__ to __ICFEDIT_region_RAM3_end__]; + +define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; + +initialize by copy { readwrite }; +do not initialize { section .noinit }; + +place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; + +place in ROM_region { readonly }; +place in RAM1_region { readwrite, last block CSTACK }; +place in RAM2_region { section .sram }; diff --git a/bsp/stm32/stm32l4r5-st-nucleo/board/linker_scripts/link.lds b/bsp/stm32/stm32l4r5-st-nucleo/board/linker_scripts/link.lds new file mode 100644 index 0000000000..f4a3483507 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/board/linker_scripts/link.lds @@ -0,0 +1,155 @@ +/* + * linker script for STM32L4XX with GNU ld + */ + +/* Program Entry, set to mark it as "used" and avoid gc */ +MEMORY +{ + ROM (rx) : ORIGIN = 0x08000000, LENGTH = 2048k /* 2048KB flash */ + RAM1 (rw) : ORIGIN = 0x20000000, LENGTH = 192k /* 192K sram */ + RAM2 (rw) : ORIGIN = 0x20040000, LENGTH = 384k /* 384K sram */ + RAM3 (rw) : ORIGIN = 0x10000000, LENGTH = 64k /* 64K sram */ +} +ENTRY(Reset_Handler) +_system_stack_size = 0x800; + +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); + PROVIDE(__ctors_start__ = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array)) + PROVIDE(__ctors_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*) + PROVIDE(__dtors_start__ = .); + KEEP(*(SORT(.dtors.*))) + KEEP(*(.dtors)) + PROVIDE(__dtors_end__ = .); + + . = ALIGN(4); + /* This is used by the startup in order to initialize the .data secion */ + _edata = . ; + } >RAM1 + + .stack : + { + . = ALIGN(4); + _sstack = .; + . = . + _system_stack_size; + . = ALIGN(4); + _estack = .; + } >RAM1 + + __bss_start = .; + .bss : + { + . = ALIGN(4); + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; + + *(.bss) + *(.bss.*) + *(COMMON) + + . = ALIGN(4); + /* This is used by the startup in order to initialize the .bss secion */ + _ebss = . ; + + *(.bss.init) + } > RAM1 + __bss_end = .; + + _end = .; + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + * Symbols in the DWARF debugging sections are relative to the beginning + * of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } +} diff --git a/bsp/stm32/stm32l4r5-st-nucleo/board/linker_scripts/link.sct b/bsp/stm32/stm32l4r5-st-nucleo/board/linker_scripts/link.sct new file mode 100644 index 0000000000..4ef96219c2 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/board/linker_scripts/link.sct @@ -0,0 +1,19 @@ +; ************************************************************* +; *** Scatter-Loading Description File generated by uVision *** +; ************************************************************* + +LR_IROM1 0x08000000 0x00200000 { ; load region size_region + ER_IROM1 0x08000000 0x00200000 { ; load address = execution address + *.o (RESET, +First) + *(InRoot$$Sections) + .ANY (+RO) + } + + RW_IRAM1 0x20000000 0x00030000 { ; RW data + .ANY (+RW +ZI) + } + + + +} + diff --git a/bsp/stm32/stm32l4r5-st-nucleo/figures/board.jpg b/bsp/stm32/stm32l4r5-st-nucleo/figures/board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1724968059598f8d8b7e9a3f5e64442f7bf793e5 GIT binary patch literal 326271 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
### 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 + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 0 + 0 + 1 + + 18 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 6 + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + 0 + ST-LINKIII-KEIL_SWO + -U066EFF495056867767053013 -O206 -SF4000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P2 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32L4xx_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32L475VETx$CMSIS\Flash\STM32L4xx_512.FLM) + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0STM32L4xx_512 -FL080000 -FS08000000 -FP0($$Device:STM32L475VETx$CMSIS\Flash\STM32L4xx_512.FLM) + + + 0 + JL2CM3 + -U -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32L4xx_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32L475VETx$CMSIS\Flash\STM32L4xx_512.FLM) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 0 + 2 + 10000000 + + + + + + Source Group 1 + 0 + 0 + 0 + 0 + + + diff --git a/bsp/stm32/stm32l4r5-st-nucleo/project.uvprojx b/bsp/stm32/stm32l4r5-st-nucleo/project.uvprojx new file mode 100644 index 0000000000..fba8b6cb9d --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/project.uvprojx @@ -0,0 +1,886 @@ + + + 2.1 +
### uVision Project, (C) Keil Software
+ + + rt-thread + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + STM32L475VETx + STMicroelectronics + Keil.STM32L4xx_DFP.2.0.0 + http://www.keil.com/pack + IRAM(0x20000000,0x00018000) IRAM2(0x10000000,0x00008000) IROM(0x08000000,0x00080000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32L4xx_512 -FS08000000 -FL080000 -FP0($$Device:STM32L475VETx$CMSIS\Flash\STM32L4xx_512.FLM)) + 0 + $$Device:STM32L475VETx$Drivers\CMSIS\Device\ST\STM32L4xx\Include\stm32l4xx.h + + + + + + + + + + $$Device:STM32L475VETx$CMSIS\SVD\STM32L4x5.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\build\keil\Obj\ + rt-thread + 1 + 0 + 0 + 1 + 0 + .\build\keil\List\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + fromelf --bin !L --output rtthread.bin + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + "" () + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 1 + 0 + 8 + 0 + 0 + 0 + 0 + 3 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x18000 + + + 1 + 0x8000000 + 0x80000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x80000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x18000 + + + 0 + 0x10000000 + 0x8000 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + + STM32L4R5xx, USE_HAL_DRIVER, RT_USING_ARM_LIBC + + .;..\..\..\include;.;applications;board;board\CubeMX_Config\Inc;..\libraries\HAL_Drivers;..\libraries\HAL_Drivers\config;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\finsh;..\..\..\components\libc\compilers\armlibc;..\..\..\components\libc\compilers\common;..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Inc;..\libraries\STM32L4xx_HAL\CMSIS\Device\ST\STM32L4xx\Include;..\libraries\STM32L4xx_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 + + + + + + + + + + + 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 + + + + + memheap.c + 1 + ..\..\..\src\memheap.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 + + + + + stm32l4xx_hal_msp.c + 1 + board\CubeMX_Config\Src\stm32l4xx_hal_msp.c + + + + + startup_stm32l4r5xx.s + 2 + ..\libraries\STM32L4xx_HAL\CMSIS\Device\ST\STM32L4xx\Source\Templates\arm\startup_stm32l4r5xx.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 + + + + + cpu + + + backtrace.c + 1 + ..\..\..\libcpu\arm\common\backtrace.c + + + + + div0.c + 1 + ..\..\..\libcpu\arm\common\div0.c + + + + + showmem.c + 1 + ..\..\..\libcpu\arm\common\showmem.c + + + + + cpuport.c + 1 + ..\..\..\libcpu\arm\cortex-m4\cpuport.c + + + + + context_rvds.S + 2 + ..\..\..\libcpu\arm\cortex-m4\context_rvds.S + + + + + 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 + + + + + libc + + + libc.c + 1 + ..\..\..\components\libc\compilers\armlibc\libc.c + + + + + mem_std.c + 1 + ..\..\..\components\libc\compilers\armlibc\mem_std.c + + + + + stubs.c + 1 + ..\..\..\components\libc\compilers\armlibc\stubs.c + + + + + time.c + 1 + ..\..\..\components\libc\compilers\armlibc\time.c + + + + + gmtime_r.c + 1 + ..\..\..\components\libc\compilers\common\gmtime_r.c + + + + + STM32_HAL + + + system_stm32l4xx.c + 1 + ..\libraries\STM32L4xx_HAL\CMSIS\Device\ST\STM32L4xx\Source\Templates\system_stm32l4xx.c + + + + + stm32l4xx_hal.c + 1 + ..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal.c + + + + + stm32l4xx_hal_comp.c + 1 + ..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_comp.c + + + + + stm32l4xx_hal_cortex.c + 1 + ..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cortex.c + + + + + stm32l4xx_hal_crc.c + 1 + ..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_crc.c + + + + + stm32l4xx_hal_crc_ex.c + 1 + ..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_crc_ex.c + + + + + stm32l4xx_hal_cryp.c + 1 + ..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cryp.c + + + + + stm32l4xx_hal_cryp_ex.c + 1 + ..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cryp_ex.c + + + + + stm32l4xx_hal_dma.c + 1 + ..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma.c + + + + + stm32l4xx_hal_dma_ex.c + 1 + ..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma_ex.c + + + + + stm32l4xx_hal_exti.c + 1 + ..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_exti.c + + + + + stm32l4xx_hal_pwr.c + 1 + ..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr.c + + + + + stm32l4xx_hal_pwr_ex.c + 1 + ..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr_ex.c + + + + + stm32l4xx_hal_rcc.c + 1 + ..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc.c + + + + + stm32l4xx_hal_rcc_ex.c + 1 + ..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc_ex.c + + + + + stm32l4xx_hal_rng.c + 1 + ..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rng.c + + + + + stm32l4xx_hal_gpio.c + 1 + ..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_gpio.c + + + + + stm32l4xx_hal_uart.c + 1 + ..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart.c + + + + + stm32l4xx_hal_uart_ex.c + 1 + ..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart_ex.c + + + + + stm32l4xx_hal_usart.c + 1 + ..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_usart.c + + + + + stm32l4xx_hal_usart_ex.c + 1 + ..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_usart_ex.c + + + + + + + + + + + +
diff --git a/bsp/stm32/stm32l4r5-st-nucleo/rtconfig.h b/bsp/stm32/stm32l4r5-st-nucleo/rtconfig.h new file mode 100644 index 0000000000..93f490ebed --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/rtconfig.h @@ -0,0 +1,171 @@ +#ifndef RT_CONFIG_H__ +#define RT_CONFIG_H__ + +/* Automatically generated file; DO NOT EDIT. */ +/* RT-Thread Configuration */ + +/* RT-Thread Kernel */ + +#define RT_NAME_MAX 8 +#define RT_ALIGN_SIZE 4 +#define RT_THREAD_PRIORITY_32 +#define RT_THREAD_PRIORITY_MAX 32 +#define RT_TICK_PER_SECOND 1000 +#define RT_USING_OVERFLOW_CHECK +#define RT_USING_HOOK +#define RT_USING_IDLE_HOOK +#define RT_IDLE_HOOK_LIST_SIZE 4 +#define IDLE_THREAD_STACK_SIZE 256 +#define RT_DEBUG +#define RT_DEBUG_COLOR + +/* 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_MEMHEAP +#define RT_USING_SMALL_MEM +#define RT_USING_HEAP + +/* Kernel Device Object */ + +#define RT_USING_DEVICE +#define RT_USING_DEVICE_OPS +#define RT_USING_CONSOLE +#define RT_CONSOLEBUF_SIZE 256 +#define RT_CONSOLE_DEVICE_NAME "lpuart1" +#define RT_VER_NUM 0x40002 +#define ARCH_ARM +#define RT_USING_CPU_FFS +#define ARCH_ARM_CORTEX_M +#define ARCH_ARM_CORTEX_M4 + +/* RT-Thread Components */ + +#define RT_USING_COMPONENTS_INIT +#define RT_USING_USER_MAIN +#define RT_MAIN_THREAD_STACK_SIZE 2048 +#define RT_MAIN_THREAD_PRIORITY 10 + +/* C++ features */ + + +/* Command shell */ + +#define RT_USING_FINSH +#define FINSH_THREAD_NAME "tshell" +#define FINSH_USING_HISTORY +#define FINSH_HISTORY_LINES 5 +#define FINSH_USING_SYMTAB +#define FINSH_USING_DESCRIPTION +#define FINSH_THREAD_PRIORITY 20 +#define FINSH_THREAD_STACK_SIZE 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_RB_BUFSZ 64 +#define RT_USING_PIN + +/* Using USB */ + + +/* POSIX layer and C standard library */ + + +/* Network */ + +/* Socket abstraction layer */ + + +/* Network interface device */ + + +/* light weight TCP/IP stack */ + + +/* AT commands */ + + +/* VBUS(Virtual Software BUS) */ + + +/* Utilities */ + + +/* RT-Thread online packages */ + +/* IoT - internet of things */ + + +/* Wi-Fi */ + +/* Marvell WiFi */ + + +/* Wiced WiFi */ + + +/* IoT Cloud */ + + +/* security packages */ + + +/* language packages */ + + +/* multimedia packages */ + + +/* tools packages */ + + +/* system packages */ + + +/* peripheral libraries and drivers */ + + +/* miscellaneous packages */ + + +/* samples: kernel and components samples */ + +#define SOC_FAMILY_STM32 +#define SOC_SERIES_STM32L4 + +/* Hardware Drivers Config */ + +#define SOC_STM32L4R5ZI + +/* Onboard Peripheral Drivers */ + +#define BSP_USING_STLINK_TO_USART + +/* On-chip Peripheral Drivers */ + +#define BSP_USING_GPIO +#define BSP_USING_UART +#define BSP_USING_LPUART1 + +/* Board extended module Drivers */ + + +#endif diff --git a/bsp/stm32/stm32l4r5-st-nucleo/rtconfig.py b/bsp/stm32/stm32l4r5-st-nucleo/rtconfig.py new file mode 100644 index 0000000000..33e1a6bc4a --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/rtconfig.py @@ -0,0 +1,143 @@ +import os + +# toolchains options +ARCH='arm' +CPU='cortex-m4' +CROSS_TOOL='gcc' + +# bsp lib config +BSP_LIBRARY_TYPE = None + +if os.getenv('RTT_CC'): + CROSS_TOOL = os.getenv('RTT_CC') +if os.getenv('RTT_ROOT'): + RTT_ROOT = os.getenv('RTT_ROOT') + +# cross_tool provides the cross compiler +# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR +if CROSS_TOOL == 'gcc': + PLATFORM = 'gcc' + EXEC_PATH = r'C:\Users\XXYYZZ' +elif CROSS_TOOL == 'keil': + PLATFORM = 'armcc' + EXEC_PATH = r'C:/Keil_v5' +elif CROSS_TOOL == 'iar': + PLATFORM = 'iar' + EXEC_PATH = r'C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4' + +if os.getenv('RTT_EXEC_PATH'): + EXEC_PATH = os.getenv('RTT_EXEC_PATH') + +BUILD = 'debug' + +if PLATFORM == 'gcc': + # toolchains + PREFIX = 'arm-none-eabi-' + CC = PREFIX + 'gcc' + AS = PREFIX + 'gcc' + AR = PREFIX + 'ar' + CXX = PREFIX + 'g++' + LINK = PREFIX + 'gcc' + TARGET_EXT = 'elf' + SIZE = PREFIX + 'size' + OBJDUMP = PREFIX + 'objdump' + OBJCPY = PREFIX + 'objcopy' + + DEVICE = ' -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections' + CFLAGS = DEVICE + ' -Dgcc' + AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -Wa,-mimplicit-it=thumb ' + LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rt-thread.map,-cref,-u,Reset_Handler -T board/linker_scripts/link.lds' + + CPATH = '' + LPATH = '' + + if BUILD == 'debug': + CFLAGS += ' -O0 -gdwarf-2 -g' + AFLAGS += ' -gdwarf-2' + else: + CFLAGS += ' -O2' + + CXXFLAGS = CFLAGS + + POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n' + +elif PLATFORM == 'armcc': + # toolchains + CC = 'armcc' + CXX = 'armcc' + AS = 'armasm' + AR = 'armar' + LINK = 'armlink' + TARGET_EXT = 'axf' + + DEVICE = ' --cpu Cortex-M4.fp ' + CFLAGS = '-c ' + DEVICE + ' --apcs=interwork --c99' + AFLAGS = DEVICE + ' --apcs=interwork ' + LFLAGS = DEVICE + ' --info sizes --info totals --info unused --info veneers --list rt-thread.map --strict --scatter "board\linker_scripts\link.sct"' + CFLAGS += ' -I' + EXEC_PATH + '/ARM/ARMCC/include' + LFLAGS += ' --libpath=' + EXEC_PATH + '/ARM/ARMCC/lib' + + CFLAGS += ' -D__MICROLIB ' + AFLAGS += ' --pd "__MICROLIB SETA 1" ' + LFLAGS += ' --library_type=microlib ' + EXEC_PATH += '/ARM/ARMCC/bin/' + + if BUILD == 'debug': + CFLAGS += ' -g -O0' + AFLAGS += ' -g' + else: + CFLAGS += ' -O2' + + CXXFLAGS = CFLAGS + CFLAGS += ' -std=c99' + + 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 = '-Dewarm' + + CFLAGS = DEVICE + CFLAGS += ' --diag_suppress Pa050' + CFLAGS += ' --no_cse' + CFLAGS += ' --no_unroll' + CFLAGS += ' --no_inline' + CFLAGS += ' --no_code_motion' + CFLAGS += ' --no_tbaa' + CFLAGS += ' --no_clustering' + CFLAGS += ' --no_scheduling' + CFLAGS += ' --endian=little' + CFLAGS += ' --cpu=Cortex-M4' + CFLAGS += ' -e' + CFLAGS += ' --fpu=VFPv4_sp' + CFLAGS += ' --dlib_config "' + EXEC_PATH + '/arm/INC/c/DLib_Config_Normal.h"' + CFLAGS += ' --silent' + + AFLAGS = DEVICE + AFLAGS += ' -s+' + AFLAGS += ' -w+' + AFLAGS += ' -r' + AFLAGS += ' --cpu Cortex-M4' + AFLAGS += ' --fpu VFPv4_sp' + AFLAGS += ' -S' + + if BUILD == 'debug': + CFLAGS += ' --debug' + CFLAGS += ' -On' + else: + CFLAGS += ' -Oh' + + LFLAGS = ' --config "board/linker_scripts/link.icf"' + LFLAGS += ' --entry __iar_program_start' + + CXXFLAGS = CFLAGS + + EXEC_PATH = EXEC_PATH + '/arm/bin/' + POST_ACTION = 'ielftool --bin $TARGET rtthread.bin' diff --git a/bsp/stm32/stm32l4r5-st-nucleo/template.ewd b/bsp/stm32/stm32l4r5-st-nucleo/template.ewd new file mode 100644 index 0000000000..ee2cf74edd --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/template.ewd @@ -0,0 +1,2974 @@ + + + 3 + + rt-thread + + ARM + + 1 + + C-SPY + 2 + + 32 + 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\RemedyRtosViewer\RemedyRtosViewer.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\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 + + 32 + 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\RemedyRtosViewer\RemedyRtosViewer.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\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/stm32l4r5-st-nucleo/template.ewp b/bsp/stm32/stm32l4r5-st-nucleo/template.ewp new file mode 100644 index 0000000000..c7077497d4 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/template.ewp @@ -0,0 +1,2106 @@ + + + 3 + + rt-thread + + ARM + + 1 + + General + 3 + + 31 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 35 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 23 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Release + + ARM + + 0 + + General + 3 + + 31 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 35 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 23 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + diff --git a/bsp/stm32/stm32l4r5-st-nucleo/template.eww b/bsp/stm32/stm32l4r5-st-nucleo/template.eww new file mode 100644 index 0000000000..bd036bb4c9 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/template.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\template.ewp + + + + + diff --git a/bsp/stm32/stm32l4r5-st-nucleo/template.uvoptx b/bsp/stm32/stm32l4r5-st-nucleo/template.uvoptx new file mode 100644 index 0000000000..4c989e2d13 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/template.uvoptx @@ -0,0 +1,196 @@ + + + + 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 + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 0 + 0 + 1 + + 18 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 6 + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + 0 + ST-LINKIII-KEIL_SWO + -U066EFF495056867767053013 -O206 -SF4000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P2 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32L4xx_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32L475VETx$CMSIS\Flash\STM32L4xx_512.FLM) + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0STM32L4xx_512 -FL080000 -FS08000000 -FP0($$Device:STM32L475VETx$CMSIS\Flash\STM32L4xx_512.FLM) + + + 0 + JL2CM3 + -U -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32L4xx_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32L475VETx$CMSIS\Flash\STM32L4xx_512.FLM) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 0 + 2 + 10000000 + + + + + + Source Group 1 + 0 + 0 + 0 + 0 + + +
diff --git a/bsp/stm32/stm32l4r5-st-nucleo/template.uvprojx b/bsp/stm32/stm32l4r5-st-nucleo/template.uvprojx new file mode 100644 index 0000000000..246542fb09 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/template.uvprojx @@ -0,0 +1,394 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + rt-thread + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + STM32L475VETx + STMicroelectronics + Keil.STM32L4xx_DFP.2.0.0 + http://www.keil.com/pack + IRAM(0x20000000,0x00018000) IRAM2(0x10000000,0x00008000) IROM(0x08000000,0x00080000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32L4xx_512 -FS08000000 -FL080000 -FP0($$Device:STM32L475VETx$CMSIS\Flash\STM32L4xx_512.FLM)) + 0 + $$Device:STM32L475VETx$Drivers\CMSIS\Device\ST\STM32L4xx\Include\stm32l4xx.h + + + + + + + + + + $$Device:STM32L475VETx$CMSIS\SVD\STM32L4x5.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\build\keil\Obj\ + rt-thread + 1 + 0 + 0 + 1 + 0 + .\build\keil\List\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + fromelf --bin !L --output rtthread.bin + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + "" () + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 1 + 0 + 8 + 0 + 0 + 0 + 0 + 3 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x18000 + + + 1 + 0x8000000 + 0x80000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x80000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x18000 + + + 0 + 0x10000000 + 0x8000 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 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 + + + + + + + + + + + +
-- GitLab

n0Ty7EpLifr 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 literal 0 HcmV?d00001 diff --git a/bsp/stm32/stm32l4r5-st-nucleo/project.ewd b/bsp/stm32/stm32l4r5-st-nucleo/project.ewd new file mode 100644 index 0000000000..b5ac2594b8 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/project.ewd @@ -0,0 +1,2974 @@ + + + 3 + + rt-thread + + ARM + + 1 + + C-SPY + 2 + + 32 + 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\RemedyRtosViewer\RemedyRtosViewer.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\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 + + 32 + 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\RemedyRtosViewer\RemedyRtosViewer.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\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/stm32l4r5-st-nucleo/project.ewp b/bsp/stm32/stm32l4r5-st-nucleo/project.ewp new file mode 100644 index 0000000000..dc0a210499 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/project.ewp @@ -0,0 +1,2340 @@ + + 3 + + rt-thread + + ARM + + 1 + + General + 3 + + 31 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 35 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 23 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Release + + ARM + + 0 + + General + 3 + + 31 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 35 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 23 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + + Kernel + + $PROJ_DIR$\..\..\..\src\clock.c + + + $PROJ_DIR$\..\..\..\src\components.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\memheap.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\stm32l4xx_hal_msp.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\CMSIS\Device\ST\STM32L4xx\Source\Templates\iar\startup_stm32l4r5xx.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 + + + + cpu + + $PROJ_DIR$\..\..\..\libcpu\arm\common\backtrace.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\common\div0.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\common\showmem.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4\cpuport.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4\context_iar.S + + + + 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\cmd.c + + + $PROJ_DIR$\..\..\..\components\finsh\msh.c + + + + libc + + + STM32_HAL + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\CMSIS\Device\ST\STM32L4xx\Source\Templates\system_stm32l4xx.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_comp.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cortex.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_crc.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_crc_ex.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cryp.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cryp_ex.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma_ex.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_exti.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr_ex.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc_ex.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rng.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_gpio.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart_ex.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_usart.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_usart_ex.c + + + diff --git a/bsp/stm32/stm32l4r5-st-nucleo/project.ewt b/bsp/stm32/stm32l4r5-st-nucleo/project.ewt new file mode 100644 index 0000000000..b04fd11b3e --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/project.ewt @@ -0,0 +1,2629 @@ + + + 3 + + rt-thread + + ARM + + 1 + + C-STAT + 262 + + 262 + + 0 + + 1 + 600 + 1 + 2 + 0 + 1 + 100 + + + 1.6.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + RuntimeChecking + 0 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + Release + + ARM + + 0 + + C-STAT + 262 + + 262 + + 0 + + 1 + 600 + 1 + 2 + 0 + 1 + 100 + + + 1.6.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + RuntimeChecking + 0 + + 2 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + Applications + + $PROJ_DIR$\applications\main.c + + + + cpu + + $PROJ_DIR$\..\..\..\libcpu\arm\common\backtrace.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4\context_iar.S + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4\cpuport.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\common\div0.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\common\showmem.c + + + + DeviceDrivers + + $PROJ_DIR$\..\..\..\components\drivers\src\completion.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\dataqueue.c + + + $PROJ_DIR$\..\..\..\components\drivers\misc\pin.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\serial\serial.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\waitqueue.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\workqueue.c + + + + dlib + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\environ.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\libc.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\rmtx.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\stdio.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_close.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_lseek.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_mem.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_open.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_read.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_remove.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_write.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\time.c + + + + Drivers + + $PROJ_DIR$\board\board.c + + + $PROJ_DIR$\..\libraries\HAL_Drivers\drv_common.c + + + $PROJ_DIR$\..\libraries\HAL_Drivers\drv_gpio.c + + + $PROJ_DIR$\..\libraries\HAL_Drivers\drv_usart.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\CMSIS\Device\ST\STM32L4xx\Source\Templates\iar\startup_stm32l4r5xx.s + + + $PROJ_DIR$\board\CubeMX_Config\Src\stm32l4xx_hal_msp.c + + + + finsh + + $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 + + + $PROJ_DIR$\..\..\..\components\finsh\shell.c + + + $PROJ_DIR$\..\..\..\components\finsh\symbol.c + + + + Kernel + + $PROJ_DIR$\..\..\..\src\clock.c + + + $PROJ_DIR$\..\..\..\src\components.c + + + $PROJ_DIR$\..\..\..\src\cpu.c + + + $PROJ_DIR$\..\..\..\src\device.c + + + $PROJ_DIR$\..\..\..\src\idle.c + + + $PROJ_DIR$\..\..\..\src\ipc.c + + + $PROJ_DIR$\..\..\..\src\irq.c + + + $PROJ_DIR$\..\..\..\src\kservice.c + + + $PROJ_DIR$\..\..\..\src\mem.c + + + $PROJ_DIR$\..\..\..\src\memheap.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 + + + + libc + + $PROJ_DIR$\..\..\..\components\libc\compilers\common\gmtime_r.c + + + + STM32_HAL + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_comp.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cortex.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_crc.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_crc_ex.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cryp.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cryp_ex.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma_ex.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_exti.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_gpio.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr_ex.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc_ex.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rng.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart_ex.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_usart.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_usart_ex.c + + + $PROJ_DIR$\..\libraries\STM32L4xx_HAL\CMSIS\Device\ST\STM32L4xx\Source\Templates\system_stm32l4xx.c + + + diff --git a/bsp/stm32/stm32l4r5-st-nucleo/project.eww b/bsp/stm32/stm32l4r5-st-nucleo/project.eww new file mode 100644 index 0000000000..c2cb02eb1e --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/project.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\project.ewp + + + + + diff --git a/bsp/stm32/stm32l4r5-st-nucleo/project.uvoptx b/bsp/stm32/stm32l4r5-st-nucleo/project.uvoptx new file mode 100644 index 0000000000..4c989e2d13 --- /dev/null +++ b/bsp/stm32/stm32l4r5-st-nucleo/project.uvoptx @@ -0,0 +1,196 @@ + + + + 1.0 + +