From f61850fb8a2f3182dc6bd89f7b75ab39d41f5020 Mon Sep 17 00:00:00 2001 From: hanzhijian Date: Tue, 25 Aug 2026 09:56:49 +0800 Subject: [PATCH] [bsp][stm32] Add LXB407ZGT6-P1 board support Add BSP support for the LXB407ZGT6-P1 development board from Lu Xiao Ban (LXB), based on the STM32F407ZGT6 (Cortex-M4, 168MHz). - MCU: STM32F407ZGT6, 1MB FLASH, 192KB RAM - HSE 8MHz / LSE 32.768kHz, SYSCLK 168MHz - LED: PC13 (active low) - Console: USART1 (PA9/PA10), 115200-8-1-N --- .../.ci/attachconfig/ci.attachconfig.yml | 12 + bsp/stm32/stm32f407-lxb/.config | 1499 +++++++++ bsp/stm32/stm32f407-lxb/.cproject | 203 ++ bsp/stm32/stm32f407-lxb/.gitignore | 42 + bsp/stm32/stm32f407-lxb/.project | 69 + bsp/stm32/stm32f407-lxb/Kconfig | 26 + bsp/stm32/stm32f407-lxb/README.md | 138 + bsp/stm32/stm32f407-lxb/SConscript | 18 + bsp/stm32/stm32f407-lxb/SConstruct | 75 + .../stm32f407-lxb/applications/SConscript | 15 + bsp/stm32/stm32f407-lxb/applications/main.c | 33 + .../board/CubeMX_Config/.mxproject | 17 + .../board/CubeMX_Config/CubeMX_Config.ioc | 449 +++ .../board/CubeMX_Config/Inc/main.h | 93 + .../CubeMX_Config/Inc/stm32f4xx_hal_conf.h | 489 +++ .../board/CubeMX_Config/Inc/stm32f4xx_it.h | 87 + .../CubeMX_Config/Src/stm32f4xx_hal_msp.c | 1106 +++++++ .../board/CubeMX_Config/Src/stm32f4xx_it.c | 262 ++ bsp/stm32/stm32f407-lxb/board/Kconfig | 557 ++++ bsp/stm32/stm32f407-lxb/board/SConscript | 25 + bsp/stm32/stm32f407-lxb/board/board.c | 58 + bsp/stm32/stm32f407-lxb/board/board.h | 47 + .../board/linker_scripts/link.icf | 30 + .../board/linker_scripts/link.lds | 169 + .../board/linker_scripts/link.sct | 15 + bsp/stm32/stm32f407-lxb/figures/board.png | Bin 0 -> 415480 bytes bsp/stm32/stm32f407-lxb/makefile.targets | 4 + bsp/stm32/stm32f407-lxb/project.ewd | 2834 +++++++++++++++++ bsp/stm32/stm32f407-lxb/project.ewp | 2311 ++++++++++++++ bsp/stm32/stm32f407-lxb/project.eww | 10 + bsp/stm32/stm32f407-lxb/project.uvopt | 162 + bsp/stm32/stm32f407-lxb/project.uvoptx | 191 ++ bsp/stm32/stm32f407-lxb/project.uvproj | 1195 +++++++ bsp/stm32/stm32f407-lxb/project.uvprojx | 1176 +++++++ bsp/stm32/stm32f407-lxb/rtconfig.h | 440 +++ bsp/stm32/stm32f407-lxb/rtconfig.py | 184 ++ bsp/stm32/stm32f407-lxb/template.ewp | 2031 ++++++++++++ bsp/stm32/stm32f407-lxb/template.eww | 10 + bsp/stm32/stm32f407-lxb/template.uvopt | 162 + bsp/stm32/stm32f407-lxb/template.uvoptx | 191 ++ bsp/stm32/stm32f407-lxb/template.uvproj | 407 +++ bsp/stm32/stm32f407-lxb/template.uvprojx | 394 +++ 42 files changed, 17236 insertions(+) create mode 100644 bsp/stm32/stm32f407-lxb/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/stm32/stm32f407-lxb/.config create mode 100644 bsp/stm32/stm32f407-lxb/.cproject create mode 100644 bsp/stm32/stm32f407-lxb/.gitignore create mode 100644 bsp/stm32/stm32f407-lxb/.project create mode 100644 bsp/stm32/stm32f407-lxb/Kconfig create mode 100644 bsp/stm32/stm32f407-lxb/README.md create mode 100644 bsp/stm32/stm32f407-lxb/SConscript create mode 100644 bsp/stm32/stm32f407-lxb/SConstruct create mode 100644 bsp/stm32/stm32f407-lxb/applications/SConscript create mode 100644 bsp/stm32/stm32f407-lxb/applications/main.c create mode 100644 bsp/stm32/stm32f407-lxb/board/CubeMX_Config/.mxproject create mode 100644 bsp/stm32/stm32f407-lxb/board/CubeMX_Config/CubeMX_Config.ioc create mode 100644 bsp/stm32/stm32f407-lxb/board/CubeMX_Config/Inc/main.h create mode 100644 bsp/stm32/stm32f407-lxb/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h create mode 100644 bsp/stm32/stm32f407-lxb/board/CubeMX_Config/Inc/stm32f4xx_it.h create mode 100644 bsp/stm32/stm32f407-lxb/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c create mode 100644 bsp/stm32/stm32f407-lxb/board/CubeMX_Config/Src/stm32f4xx_it.c create mode 100644 bsp/stm32/stm32f407-lxb/board/Kconfig create mode 100644 bsp/stm32/stm32f407-lxb/board/SConscript create mode 100644 bsp/stm32/stm32f407-lxb/board/board.c create mode 100644 bsp/stm32/stm32f407-lxb/board/board.h create mode 100644 bsp/stm32/stm32f407-lxb/board/linker_scripts/link.icf create mode 100644 bsp/stm32/stm32f407-lxb/board/linker_scripts/link.lds create mode 100644 bsp/stm32/stm32f407-lxb/board/linker_scripts/link.sct create mode 100644 bsp/stm32/stm32f407-lxb/figures/board.png create mode 100644 bsp/stm32/stm32f407-lxb/makefile.targets create mode 100644 bsp/stm32/stm32f407-lxb/project.ewd create mode 100644 bsp/stm32/stm32f407-lxb/project.ewp create mode 100644 bsp/stm32/stm32f407-lxb/project.eww create mode 100644 bsp/stm32/stm32f407-lxb/project.uvopt create mode 100644 bsp/stm32/stm32f407-lxb/project.uvoptx create mode 100644 bsp/stm32/stm32f407-lxb/project.uvproj create mode 100644 bsp/stm32/stm32f407-lxb/project.uvprojx create mode 100644 bsp/stm32/stm32f407-lxb/rtconfig.h create mode 100644 bsp/stm32/stm32f407-lxb/rtconfig.py create mode 100644 bsp/stm32/stm32f407-lxb/template.ewp create mode 100644 bsp/stm32/stm32f407-lxb/template.eww create mode 100644 bsp/stm32/stm32f407-lxb/template.uvopt create mode 100644 bsp/stm32/stm32f407-lxb/template.uvoptx create mode 100644 bsp/stm32/stm32f407-lxb/template.uvproj create mode 100644 bsp/stm32/stm32f407-lxb/template.uvprojx diff --git a/bsp/stm32/stm32f407-lxb/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f407-lxb/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 000000000000..42956366977d --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=16 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=91 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/stm32/stm32f407-lxb/.config b/bsp/stm32/stm32f407-lxb/.config new file mode 100644 index 000000000000..bd145ac4c0cb --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/.config @@ -0,0 +1,1499 @@ +CONFIG_SOC_STM32F407ZG=y +CONFIG_BOARD_STM32F407_LXB=y + +# +# RT-Thread Kernel +# + +# +# klibc options +# + +# +# rt_vsnprintf options +# +# CONFIG_RT_KLIBC_USING_LIBC_VSNPRINTF is not set +# CONFIG_RT_KLIBC_USING_VSNPRINTF_LONGLONG is not set +# CONFIG_RT_KLIBC_USING_VSNPRINTF_STANDARD is not set +# end of rt_vsnprintf options + +# +# rt_vsscanf options +# +# CONFIG_RT_KLIBC_USING_LIBC_VSSCANF is not set +# end of rt_vsscanf options + +# +# rt_memset options +# +# CONFIG_RT_KLIBC_USING_USER_MEMSET is not set +# CONFIG_RT_KLIBC_USING_LIBC_MEMSET is not set +# CONFIG_RT_KLIBC_USING_TINY_MEMSET is not set +# end of rt_memset options + +# +# rt_memcpy options +# +# CONFIG_RT_KLIBC_USING_USER_MEMCPY is not set +# CONFIG_RT_KLIBC_USING_LIBC_MEMCPY is not set +# CONFIG_RT_KLIBC_USING_TINY_MEMCPY is not set +# end of rt_memcpy options + +# +# rt_memmove options +# +# CONFIG_RT_KLIBC_USING_USER_MEMMOVE is not set +# CONFIG_RT_KLIBC_USING_LIBC_MEMMOVE is not set +# end of rt_memmove options + +# +# rt_memcmp options +# +# CONFIG_RT_KLIBC_USING_USER_MEMCMP is not set +# CONFIG_RT_KLIBC_USING_LIBC_MEMCMP is not set +# end of rt_memcmp options + +# +# rt_strstr options +# +# CONFIG_RT_KLIBC_USING_USER_STRSTR is not set +# CONFIG_RT_KLIBC_USING_LIBC_STRSTR is not set +# end of rt_strstr options + +# +# rt_strcasecmp options +# +# CONFIG_RT_KLIBC_USING_USER_STRCASECMP is not set +# end of rt_strcasecmp options + +# +# rt_strncpy options +# +# CONFIG_RT_KLIBC_USING_USER_STRNCPY is not set +# CONFIG_RT_KLIBC_USING_LIBC_STRNCPY is not set +# end of rt_strncpy options + +# +# rt_strcpy options +# +# CONFIG_RT_KLIBC_USING_USER_STRCPY is not set +# CONFIG_RT_KLIBC_USING_LIBC_STRCPY is not set +# end of rt_strcpy options + +# +# rt_strncmp options +# +# CONFIG_RT_KLIBC_USING_USER_STRNCMP is not set +# CONFIG_RT_KLIBC_USING_LIBC_STRNCMP is not set +# end of rt_strncmp options + +# +# rt_strcmp options +# +# CONFIG_RT_KLIBC_USING_USER_STRCMP is not set +# CONFIG_RT_KLIBC_USING_LIBC_STRCMP is not set +# end of rt_strcmp options + +# +# rt_strlen options +# +# CONFIG_RT_KLIBC_USING_USER_STRLEN is not set +# CONFIG_RT_KLIBC_USING_LIBC_STRLEN is not set +# end of rt_strlen options + +# +# rt_strnlen options +# +# CONFIG_RT_KLIBC_USING_USER_STRNLEN is not set +# end of rt_strnlen options +# end of klibc options + +CONFIG_RT_NAME_MAX=12 +# CONFIG_RT_USING_ARCH_DATA_TYPE is not set +# CONFIG_RT_USING_NANO is not set +# CONFIG_RT_USING_SMART is not set +# CONFIG_RT_USING_AMP is not set +# CONFIG_RT_USING_SMP is not set +CONFIG_RT_CPUS_NR=1 +CONFIG_RT_ALIGN_SIZE=8 +# 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_HOOK_USING_FUNC_PTR=y +# CONFIG_RT_USING_HOOKLIST is not set +CONFIG_RT_USING_IDLE_HOOK=y +CONFIG_RT_IDLE_HOOK_LIST_SIZE=4 +CONFIG_IDLE_THREAD_STACK_SIZE=1024 +# CONFIG_RT_USING_TIMER_SOFT is not set +# CONFIG_RT_USING_CPU_USAGE_TRACER is not set + +# +# kservice options +# +# CONFIG_RT_USING_TINY_FFS is not set +# end of kservice options + +CONFIG_RT_USING_DEBUG=y +CONFIG_RT_DEBUGING_ASSERT=y +CONFIG_RT_DEBUGING_COLOR=y +CONFIG_RT_DEBUGING_CONTEXT=y +# CONFIG_RT_DEBUGING_AUTO_INIT is not set +# CONFIG_RT_USING_CI_ACTION 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_MESSAGEQUEUE_PRIORITY is not set +# CONFIG_RT_USING_SIGNALS is not set +# end of Inter-Thread communication + +# +# Memory Management +# +CONFIG_RT_USING_MEMPOOL=y +CONFIG_RT_USING_SMALL_MEM=y +# CONFIG_RT_USING_SLAB is not set +# CONFIG_RT_USING_MEMHEAP is not set +CONFIG_RT_USING_SMALL_MEM_AS_HEAP=y +# CONFIG_RT_USING_MEMHEAP_AS_HEAP is not set +# CONFIG_RT_USING_SLAB_AS_HEAP is not set +# CONFIG_RT_USING_USERHEAP is not set +# CONFIG_RT_USING_NOHEAP is not set +# CONFIG_RT_USING_MEMTRACE is not set +# CONFIG_RT_USING_HEAP_ISR is not set +CONFIG_RT_USING_HEAP=y +# end of Memory Management + +CONFIG_RT_USING_DEVICE=y +# CONFIG_RT_USING_DEVICE_OPS is not set +# CONFIG_RT_USING_INTERRUPT_INFO is not set +# CONFIG_RT_USING_THREADSAFE_PRINTF is not set +CONFIG_RT_USING_CONSOLE=y +CONFIG_RT_CONSOLEBUF_SIZE=128 +CONFIG_RT_CONSOLE_DEVICE_NAME="uart1" +CONFIG_RT_USING_CONSOLE_OUTPUT_CTL=y +CONFIG_RT_VER_NUM=0x50300 +# CONFIG_RT_USING_STDC_ATOMIC is not set +CONFIG_RT_BACKTRACE_LEVEL_MAX_NR=32 +# end of RT-Thread Kernel + +CONFIG_RT_USING_HW_ATOMIC=y +CONFIG_ARCH_USING_HW_ATOMIC_8=y +CONFIG_ARCH_USING_HW_ATOMIC_16=y +CONFIG_RT_USING_CPU_FFS=y +CONFIG_ARCH_ARM=y +CONFIG_ARCH_ARM_CORTEX_M=y +CONFIG_ARCH_ARM_CORTEX_M4=y + +# +# 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 +# CONFIG_RT_USING_LEGACY is not set +CONFIG_RT_USING_MSH=y +CONFIG_RT_USING_FINSH=y +CONFIG_FINSH_USING_MSH=y +CONFIG_FINSH_THREAD_NAME="tshell" +CONFIG_FINSH_THREAD_PRIORITY=20 +CONFIG_FINSH_THREAD_STACK_SIZE=4096 +CONFIG_FINSH_USING_HISTORY=y +CONFIG_FINSH_HISTORY_LINES=5 +# CONFIG_FINSH_USING_WORD_OPERATION is not set +# CONFIG_FINSH_USING_FUNC_EXT is not set +CONFIG_FINSH_USING_SYMTAB=y +CONFIG_FINSH_CMD_SIZE=80 +CONFIG_MSH_USING_BUILT_IN_COMMANDS=y +CONFIG_FINSH_USING_DESCRIPTION=y +# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set +# CONFIG_FINSH_USING_AUTH is not set +CONFIG_FINSH_ARG_MAX=10 +CONFIG_FINSH_USING_OPTION_COMPLETION=y + +# +# DFS: device virtual file system +# +# CONFIG_RT_USING_DFS is not set +# end of DFS: device virtual file system + +# CONFIG_RT_USING_FAL is not set + +# +# Device Drivers +# +# CONFIG_RT_USING_DM is not set +# CONFIG_RT_USING_DEV_BUS is not set +CONFIG_RT_USING_DEVICE_IPC=y +CONFIG_RT_UNAMED_PIPE_NUMBER=64 +# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set +CONFIG_RT_USING_SERIAL=y +CONFIG_RT_USING_SERIAL_V1=y +# CONFIG_RT_USING_SERIAL_V2 is not set +CONFIG_RT_SERIAL_USING_DMA=y +CONFIG_RT_SERIAL_RB_BUFSZ=64 +# CONFIG_RT_USING_SERIAL_BYPASS is not set +# CONFIG_RT_USING_CAN is not set +# CONFIG_RT_USING_CLOCK_TIME is not set +CONFIG_RT_USING_I2C=y +# CONFIG_RT_I2C_DEBUG is not set +CONFIG_RT_USING_I2C_BITOPS=y +# CONFIG_RT_I2C_BITOPS_DEBUG is not set +# CONFIG_RT_USING_SOFT_I2C is not set +# CONFIG_RT_USING_PHY is not set +# CONFIG_RT_USING_PHY_V2 is not set +# CONFIG_RT_USING_ADC is not set +# CONFIG_RT_USING_DAC is not set +# CONFIG_RT_USING_NULL is not set +# CONFIG_RT_USING_ZERO is not set +# CONFIG_RT_USING_RANDOM is not set +# CONFIG_RT_USING_PWM is not set +# CONFIG_RT_USING_PULSE_ENCODER is not set +# CONFIG_RT_USING_INPUT_CAPTURE 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_LCD is not set +# CONFIG_RT_USING_HWCRYPTO is not set +# CONFIG_RT_USING_WIFI is not set +# CONFIG_RT_USING_BLK is not set +# CONFIG_RT_USING_REGULATOR is not set +# CONFIG_RT_USING_POWER_SUPPLY is not set +# CONFIG_RT_USING_VIRTIO is not set +CONFIG_RT_USING_PIN=y +# CONFIG_RT_USING_CHERRYUSB is not set +# end of Device Drivers + +# +# C/C++ and POSIX layer +# + +# +# ISO-ANSI C layer +# + +# +# Timezone and Daylight Saving Time +# +# CONFIG_RT_LIBC_USING_FULL_TZ_DST is not set +CONFIG_RT_LIBC_USING_LIGHT_TZ_DST=y +CONFIG_RT_LIBC_TZ_DEFAULT_HOUR=8 +CONFIG_RT_LIBC_TZ_DEFAULT_MIN=0 +CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0 +# end of Timezone and Daylight Saving Time +# end of ISO-ANSI C layer + +# +# POSIX (Portable Operating System Interface) layer +# +# CONFIG_RT_USING_POSIX_FS is not set +# CONFIG_RT_USING_POSIX_DELAY is not set +# CONFIG_RT_USING_POSIX_CLOCK is not set +# CONFIG_RT_USING_POSIX_TIMER is not set +# CONFIG_RT_USING_PTHREADS is not set +# CONFIG_RT_USING_MODULE is not set + +# +# Interprocess Communication (IPC) +# +# CONFIG_RT_USING_POSIX_PIPE is not set +# CONFIG_RT_USING_POSIX_MESSAGE_QUEUE is not set +# CONFIG_RT_USING_POSIX_MESSAGE_SEMAPHORE is not set + +# +# Socket is in the 'Network' category +# +# end of Interprocess Communication (IPC) +# end of POSIX (Portable Operating System Interface) layer + +# CONFIG_RT_USING_CPLUSPLUS is not set +# end of C/C++ and POSIX layer + +# +# Network +# +# CONFIG_RT_USING_SAL is not set +# CONFIG_RT_USING_NETDEV is not set +# CONFIG_RT_USING_LWIP is not set +# CONFIG_RT_USING_AT is not set +# end of Network + +# +# Memory protection +# +# CONFIG_RT_USING_MEM_PROTECTION is not set +# CONFIG_RT_USING_HW_STACK_GUARD is not set +# end of Memory protection + +# +# 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_VAR_EXPORT is not set +# CONFIG_RT_USING_RESOURCE_ID is not set +# CONFIG_RT_USING_ADT is not set +# CONFIG_RT_USING_RT_LINK is not set +# end of Utilities + +# +# Using USB legacy version +# +# CONFIG_RT_USING_USB_HOST is not set +# CONFIG_RT_USING_USB_DEVICE is not set +# end of Using USB legacy version + +# CONFIG_RT_USING_FDT is not set +# CONFIG_RT_USING_RUST is not set +# end of RT-Thread Components + +# +# RT-Thread Utestcases +# +# CONFIG_RT_USING_UTESTCASES is not set +# end of RT-Thread Utestcases + +# +# RT-Thread online packages +# + +# +# IoT - internet of things +# +# CONFIG_PKG_USING_LORAWAN_DRIVER is not set +# CONFIG_PKG_USING_PAHOMQTT is not set +# CONFIG_PKG_USING_UMQTT 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_KAWAII_MQTT is not set +# CONFIG_PKG_USING_BC28_MQTT is not set +# CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_FREEMODBUS is not set +# CONFIG_PKG_USING_NANOPB is not set +# CONFIG_PKG_USING_WIFI_HOST_DRIVER is not set +# CONFIG_PKG_USING_ESP_HOSTED is not set + +# +# Wi-Fi +# + +# +# Marvell WiFi +# +# CONFIG_PKG_USING_WLANMARVELL is not set +# end of Marvell WiFi + +# +# Wiced WiFi +# +# CONFIG_PKG_USING_WLAN_WICED is not set +# end of Wiced WiFi + +# CONFIG_PKG_USING_RW007 is not set + +# +# CYW43012 WiFi +# +# CONFIG_PKG_USING_WLAN_CYW43012 is not set +# end of CYW43012 WiFi + +# +# BL808 WiFi +# +# CONFIG_PKG_USING_WLAN_BL808 is not set +# end of BL808 WiFi + +# +# CYW43439 WiFi +# +# CONFIG_PKG_USING_WLAN_CYW43439 is not set +# end of CYW43439 WiFi +# end of Wi-Fi + +# CONFIG_PKG_USING_COAP is not set +# CONFIG_PKG_USING_NOPOLL is not set +# CONFIG_PKG_USING_NETUTILS is not set +# CONFIG_PKG_USING_CMUX 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 +# CONFIG_PKG_USING_ZB_COORDINATOR 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_IOT_EXPLORER is not set +# CONFIG_PKG_USING_JIOT-C-SDK is not set +# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set +# CONFIG_PKG_USING_JOYLINK is not set +# CONFIG_PKG_USING_IOTSHARP_SDK is not set +# end of IoT Cloud + +# CONFIG_PKG_USING_NIMBLE is not set +# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER 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_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 +# CONFIG_PKG_USING_LIBCURL2RTT is not set +# CONFIG_PKG_USING_CAPNP is not set +# CONFIG_PKG_USING_AGILE_TELNET is not set +# CONFIG_PKG_USING_NMEALIB is not set +# CONFIG_PKG_USING_PDULIB is not set +# CONFIG_PKG_USING_BTSTACK is not set +# CONFIG_PKG_USING_BT_CYW43012 is not set +# CONFIG_PKG_USING_CYW43XX is not set +# CONFIG_PKG_USING_LORAWAN_ED_STACK is not set +# CONFIG_PKG_USING_WAYZ_IOTKIT is not set +# CONFIG_PKG_USING_MAVLINK is not set +# CONFIG_PKG_USING_BSAL is not set +# CONFIG_PKG_USING_AGILE_MODBUS is not set +# CONFIG_PKG_USING_AGILE_FTP is not set +# CONFIG_PKG_USING_EMBEDDEDPROTO is not set +# CONFIG_PKG_USING_RT_LINK_HW is not set +# CONFIG_PKG_USING_RYANMQTT is not set +# CONFIG_PKG_USING_RYANW5500 is not set +# CONFIG_PKG_USING_LORA_PKT_FWD is not set +# CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set +# CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set +# CONFIG_PKG_USING_HM is not set +# CONFIG_PKG_USING_SMALL_MODBUS is not set +# CONFIG_PKG_USING_NET_SERVER is not set +# CONFIG_PKG_USING_ZFTP is not set +# CONFIG_PKG_USING_WOL is not set +# CONFIG_PKG_USING_ZEPHYR_POLLING is not set +# CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set +# CONFIG_PKG_USING_LHC_MODBUS is not set +# CONFIG_PKG_USING_QMODBUS is not set +# CONFIG_PKG_USING_PNET is not set +# CONFIG_PKG_USING_OPENER is not set +# CONFIG_PKG_USING_FREEMQTT is not set +# end of IoT - internet of things + +# +# security packages +# +# CONFIG_PKG_USING_MBEDTLS is not set +# CONFIG_PKG_USING_LIBSODIUM is not set +# CONFIG_PKG_USING_LIBHYDROGEN is not set +# CONFIG_PKG_USING_TINYCRYPT is not set +# CONFIG_PKG_USING_TFM is not set +# CONFIG_PKG_USING_YD_CRYPTO is not set +# end of security packages + +# +# language packages +# + +# +# JSON: JavaScript Object Notation, a lightweight data-interchange format +# +# CONFIG_PKG_USING_CJSON is not set +# CONFIG_PKG_USING_LJSON is not set +# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set +# CONFIG_PKG_USING_RAPIDJSON is not set +# CONFIG_PKG_USING_JSMN is not set +# CONFIG_PKG_USING_AGILE_JSMN is not set +# CONFIG_PKG_USING_PARSON is not set +# CONFIG_PKG_USING_RYAN_JSON is not set +# end of JSON: JavaScript Object Notation, a lightweight data-interchange format + +# +# XML: Extensible Markup Language +# +# CONFIG_PKG_USING_SIMPLE_XML is not set +# CONFIG_PKG_USING_EZXML is not set +# end of XML: Extensible Markup Language + +# CONFIG_PKG_USING_LUATOS_SOC is not set +# CONFIG_PKG_USING_LUA is not set +# CONFIG_PKG_USING_JERRYSCRIPT is not set +# CONFIG_PKG_USING_MICROPYTHON is not set +# CONFIG_PKG_USING_PIKASCRIPT is not set +# CONFIG_PKG_USING_RTT_RUST is not set +# end of language packages + +# +# multimedia packages +# + +# +# LVGL: powerful and easy-to-use embedded GUI library +# +# CONFIG_PKG_USING_LVGL is not set +# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set +# CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set +# end of LVGL: powerful and easy-to-use embedded GUI library + +# +# u8g2: a monochrome graphic library +# +# CONFIG_PKG_USING_U8G2_OFFICIAL is not set +# CONFIG_PKG_USING_U8G2 is not set +# end of u8g2: a monochrome graphic library + +# CONFIG_PKG_USING_NES_SIMULATOR is not set +# 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 +# CONFIG_PKG_USING_PDFGEN is not set +# CONFIG_PKG_USING_HELIX is not set +# CONFIG_PKG_USING_AZUREGUIX is not set +# CONFIG_PKG_USING_TOUCHGFX2RTT is not set +# CONFIG_PKG_USING_NUEMWIN is not set +# CONFIG_PKG_USING_MP3PLAYER is not set +# CONFIG_PKG_USING_TINYJPEG is not set +# CONFIG_PKG_USING_UGUI is not set +# CONFIG_PKG_USING_MCURSES is not set +# CONFIG_PKG_USING_TERMBOX is not set +# CONFIG_PKG_USING_VT100 is not set +# CONFIG_PKG_USING_QRCODE is not set +# CONFIG_PKG_USING_GUIENGINE is not set +# CONFIG_PKG_USING_PERSIMMON is not set +# CONFIG_PKG_USING_3GPP_AMRNB is not set +# end of multimedia packages + +# +# tools packages +# +# CONFIG_PKG_USING_VECTOR is not set +# CONFIG_PKG_USING_SORCH is not set +# CONFIG_PKG_USING_DICT is not set +# CONFIG_PKG_USING_CMBACKTRACE is not set +# CONFIG_PKG_USING_MCOREDUMP 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_SEGGER_RTT is not set +# CONFIG_PKG_USING_RTT_AUTO_EXE_CMD is not set +# CONFIG_PKG_USING_RDB is not set +# CONFIG_PKG_USING_ULOG_EASYFLASH is not set +# CONFIG_PKG_USING_LOGMGR 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_MEMORYPERF 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 +# CONFIG_PKG_USING_BS8116A is not set +# CONFIG_PKG_USING_GPS_RMC is not set +# CONFIG_PKG_USING_URLENCODE is not set +# CONFIG_PKG_USING_UMCN is not set +# CONFIG_PKG_USING_LWRB2RTT is not set +# CONFIG_PKG_USING_CPU_USAGE is not set +# CONFIG_PKG_USING_GBK2UTF8 is not set +# CONFIG_PKG_USING_VCONSOLE is not set +# CONFIG_PKG_USING_KDB is not set +# CONFIG_PKG_USING_WAMR is not set +# CONFIG_PKG_USING_MICRO_XRCE_DDS_CLIENT is not set +# CONFIG_PKG_USING_LWLOG is not set +# CONFIG_PKG_USING_ANV_TRACE is not set +# CONFIG_PKG_USING_ANV_MEMLEAK is not set +# CONFIG_PKG_USING_ANV_TESTSUIT is not set +# CONFIG_PKG_USING_ANV_BENCH is not set +# CONFIG_PKG_USING_DEVMEM is not set +# CONFIG_PKG_USING_REGEX is not set +# CONFIG_PKG_USING_MEM_SANDBOX is not set +# CONFIG_PKG_USING_SOLAR_TERMS is not set +# CONFIG_PKG_USING_GAN_ZHI is not set +# CONFIG_PKG_USING_FDT is not set +# CONFIG_PKG_USING_CBOX is not set +# CONFIG_PKG_USING_SNOWFLAKE is not set +# CONFIG_PKG_USING_HASH_MATCH is not set +# CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set +# CONFIG_PKG_USING_VOFA_PLUS is not set +# CONFIG_PKG_USING_RT_TRACE is not set +# CONFIG_PKG_USING_ZDEBUG is not set +# CONFIG_PKG_USING_RVBACKTRACE is not set +# CONFIG_PKG_USING_HPATCHLITE is not set +# CONFIG_PKG_USING_THREAD_METRIC is not set +# CONFIG_PKG_USING_UORB is not set +# CONFIG_PKG_USING_RT_TUNNEL is not set +# CONFIG_PKG_USING_VIRTUAL_TERMINAL is not set +# end of tools packages + +# +# system packages +# + +# +# enhanced kernel services +# +# CONFIG_PKG_USING_RT_MEMCPY_CM is not set +# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set +# end of enhanced kernel services + +# CONFIG_PKG_USING_AUNITY is not set + +# +# acceleration: Assembly language or algorithmic acceleration packages +# +# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set +# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set +# CONFIG_PKG_USING_QFPLIB_M3 is not set +# end of acceleration: Assembly language or algorithmic acceleration packages + +# +# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard +# +# CONFIG_PKG_USING_CMSIS_5 is not set +CONFIG_PKG_USING_CMSIS_CORE=y +CONFIG_PKG_CMSIS_CORE_PATH="/packages/system/CMSIS/CMSIS-Core" +CONFIG_PKG_USING_CMSIS_CORE_LATEST_VERSION=y +CONFIG_PKG_CMSIS_CORE_VER="latest" +# CONFIG_PKG_USING_CMSIS_NN is not set +# CONFIG_PKG_USING_CMSIS_RTOS1 is not set +# CONFIG_PKG_USING_CMSIS_RTOS2 is not set +# end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard + +# +# Micrium: Micrium software products porting for RT-Thread +# +# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set +# CONFIG_PKG_USING_UCOSII_WRAPPER is not set +# CONFIG_PKG_USING_UC_CRC is not set +# CONFIG_PKG_USING_UC_CLK is not set +# CONFIG_PKG_USING_UC_COMMON is not set +# CONFIG_PKG_USING_UC_MODBUS is not set +# end of Micrium: Micrium software products porting for RT-Thread + +# CONFIG_PKG_USING_FREERTOS_WRAPPER is not set +# CONFIG_PKG_USING_LITEOS_SDK is not set +# CONFIG_PKG_USING_TZ_DATABASE is not set +# CONFIG_PKG_USING_CAIRO is not set +# CONFIG_PKG_USING_PIXMAN is not set +# CONFIG_PKG_USING_PARTITION is not set +# CONFIG_PKG_USING_PERF_COUNTER is not set +# CONFIG_PKG_USING_FILEX is not set +# CONFIG_PKG_USING_LEVELX is not set +# CONFIG_PKG_USING_FLASHDB is not set +# CONFIG_PKG_USING_SQLITE is not set +# CONFIG_PKG_USING_RTI is not set +# CONFIG_PKG_USING_DFS_YAFFS is not set +# CONFIG_PKG_USING_LITTLEFS is not set +# CONFIG_PKG_USING_DFS_JFFS2 is not set +# CONFIG_PKG_USING_DFS_UFFS is not set +# CONFIG_PKG_USING_LWEXT4 is not set +# CONFIG_PKG_USING_THREAD_POOL is not set +# CONFIG_PKG_USING_ROBOTS is not set +# CONFIG_PKG_USING_EV is not set +# CONFIG_PKG_USING_SYSWATCH is not set +# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set +# CONFIG_PKG_USING_PLCCORE is not set +# CONFIG_PKG_USING_RAMDISK is not set +# CONFIG_PKG_USING_MININI is not set +# CONFIG_PKG_USING_QBOOT is not set +# CONFIG_PKG_USING_PPOOL is not set +# CONFIG_PKG_USING_OPENAMP is not set +# CONFIG_PKG_USING_RPMSG_LITE is not set +# CONFIG_PKG_USING_LPM is not set +# CONFIG_PKG_USING_TLSF is not set +# CONFIG_PKG_USING_EVENT_RECORDER is not set +# CONFIG_PKG_USING_ARM_2D is not set +# CONFIG_PKG_USING_MCUBOOT is not set +# CONFIG_PKG_USING_TINYUSB is not set +# CONFIG_PKG_USING_KMULTI_RTIMER is not set +# CONFIG_PKG_USING_TFDB is not set +# CONFIG_PKG_USING_QPC is not set +# CONFIG_PKG_USING_AGILE_UPGRADE is not set +# CONFIG_PKG_USING_FLASH_BLOB is not set +# CONFIG_PKG_USING_MLIBC is not set +# CONFIG_PKG_USING_TASK_MSG_BUS is not set +# CONFIG_PKG_USING_UART_FRAMEWORK is not set +# CONFIG_PKG_USING_SFDB is not set +# CONFIG_PKG_USING_RTP is not set +# CONFIG_PKG_USING_REB is not set +# CONFIG_PKG_USING_RMP is not set +# CONFIG_PKG_USING_R_RHEALSTONE is not set +# CONFIG_PKG_USING_HEARTBEAT is not set +# CONFIG_PKG_USING_MICRO_ROS_RTTHREAD_PACKAGE is not set +# CONFIG_PKG_USING_CHERRYECAT is not set +# CONFIG_PKG_USING_EVENT_LOOP is not set +# CONFIG_PKG_USING_THREAD_MANAGER is not set +# end of system packages + +# +# peripheral libraries and drivers +# + +# +# HAL & SDK Drivers +# + +# +# STM32 HAL & SDK Drivers +# +# CONFIG_PKG_USING_STM32F0_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32F0_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32F1_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32F1_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32F2_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32F2_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32F3_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32F3_CMSIS_DRIVER is not set +CONFIG_PKG_USING_STM32F4_HAL_DRIVER=y +CONFIG_PKG_STM32F4_HAL_DRIVER_PATH="/packages/peripherals/hal-sdk/stm32/stm32f4_hal_driver" +CONFIG_PKG_USING_STM32F4_HAL_DRIVER_LATEST_VERSION=y +CONFIG_PKG_STM32F4_HAL_DRIVER_VER="latest" +CONFIG_PKG_USING_STM32F4_CMSIS_DRIVER=y +CONFIG_PKG_STM32F4_CMSIS_DRIVER_PATH="/packages/peripherals/hal-sdk/stm32/stm32f4_cmsis_driver" +CONFIG_PKG_USING_STM32F4_CMSIS_DRIVER_LATEST_VERSION=y +CONFIG_PKG_STM32F4_CMSIS_DRIVER_VER="latest" +# CONFIG_PKG_USING_STM32F7_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32F7_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32G0_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32G0_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32G4_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32G4_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32H5_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32H5_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32H7_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32H7_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32H7RS_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32H7RS_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32L0_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32L0_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32L4_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32L4_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32L5_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32L5_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32U5_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32U5_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32WB55_SDK is not set +# CONFIG_PKG_USING_STM32_SDIO is not set +# CONFIG_PKG_USING_STM32WL_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32WL_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32WB_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32WB_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32MP1_M4_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32MP1_M4_CMSIS_DRIVER is not set +# end of STM32 HAL & SDK Drivers + +# +# Infineon HAL Packages +# +# CONFIG_PKG_USING_INFINEON_CAT1CM0P is not set +# CONFIG_PKG_USING_INFINEON_CMSIS is not set +# CONFIG_PKG_USING_INFINEON_CORE_LIB is not set +# CONFIG_PKG_USING_INFINEON_MTB_HAL_CAT1 is not set +# CONFIG_PKG_USING_INFINEON_MTB_PDL_CAT1 is not set +# CONFIG_PKG_USING_INFINEON_RETARGET_IO is not set +# CONFIG_PKG_USING_INFINEON_CAPSENSE is not set +# CONFIG_PKG_USING_INFINEON_CSDIDAC is not set +# CONFIG_PKG_USING_INFINEON_SERIAL_FLASH is not set +# CONFIG_PKG_USING_INFINEON_USBDEV is not set +# end of Infineon HAL Packages + +# CONFIG_PKG_USING_BLUETRUM_SDK is not set +# CONFIG_PKG_USING_EMBARC_BSP is not set +# CONFIG_PKG_USING_ESP_IDF is not set + +# +# Kendryte SDK +# +# CONFIG_PKG_USING_K210_SDK is not set +# CONFIG_PKG_USING_KENDRYTE_SDK is not set +# end of Kendryte SDK + +# CONFIG_PKG_USING_NRF5X_SDK is not set +# CONFIG_PKG_USING_NRFX is not set +# CONFIG_PKG_USING_RASPBERRYPI_PICO_RP2350_SDK is not set +# CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set +# CONFIG_PKG_USING_MM32 is not set + +# +# WCH HAL & SDK Drivers +# +# CONFIG_PKG_USING_CH32V20x_SDK is not set +# CONFIG_PKG_USING_CH32V307_SDK is not set +# end of WCH HAL & SDK Drivers + +# +# AT32 HAL & SDK Drivers +# +# CONFIG_PKG_USING_AT32A403A_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32A403A_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32A423_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32A423_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F45x_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F45x_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F402_405_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F402_405_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F403A_407_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F403A_407_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F413_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F413_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F415_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F415_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F421_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F421_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F423_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F423_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F425_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F425_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F435_437_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F435_437_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32M412_416_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32M412_416_CMSIS_DRIVER is not set +# end of AT32 HAL & SDK Drivers + +# +# HC32 DDL Drivers +# +# CONFIG_PKG_USING_HC32F3_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_HC32F3_SERIES_DRIVER is not set +# CONFIG_PKG_USING_HC32F4_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_HC32F4_SERIES_DRIVER is not set +# end of HC32 DDL Drivers + +# +# NXP HAL & SDK Drivers +# +# CONFIG_PKG_USING_NXP_MCX_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_NXP_MCX_SERIES_DRIVER is not set +# CONFIG_PKG_USING_NXP_LPC_DRIVER is not set +# CONFIG_PKG_USING_NXP_LPC55S_DRIVER is not set +# CONFIG_PKG_USING_NXP_IMX6SX_DRIVER is not set +# CONFIG_PKG_USING_NXP_IMX6UL_DRIVER is not set +# CONFIG_PKG_USING_NXP_IMXRT_DRIVER is not set +# end of NXP HAL & SDK Drivers + +# +# NUVOTON Drivers +# +# CONFIG_PKG_USING_NUVOTON_SERIES_DRIVER is not set +# end of NUVOTON Drivers + +# +# GD32 Drivers +# +# CONFIG_PKG_USING_GD32_ARM_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_GD32_ARM_SERIES_DRIVER is not set +# CONFIG_PKG_USING_GD32_RISCV_SERIES_DRIVER is not set +# CONFIG_PKG_USING_GD32VW55X_WIFI is not set +# end of GD32 Drivers + +# +# HPMicro SDK +# +# CONFIG_PKG_USING_HPM_SDK is not set +# end of HPMicro SDK + +# +# FT32 HAL & SDK Drivers +# +# CONFIG_PKG_USING_FT32F0_STD_DRIVER is not set +# CONFIG_PKG_USING_FT32F0_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_FT32F4_STD_DRIVER is not set +# CONFIG_PKG_USING_FT32F4_CMSIS_DRIVER is not set +# end of FT32 HAL & SDK Drivers +# end of HAL & SDK Drivers + +# +# sensors drivers +# +# CONFIG_PKG_USING_LSM6DSM is not set +# CONFIG_PKG_USING_LSM6DSL is not set +# CONFIG_PKG_USING_LPS22HB is not set +# CONFIG_PKG_USING_HTS221 is not set +# CONFIG_PKG_USING_LSM303AGR is not set +# CONFIG_PKG_USING_BME280 is not set +# CONFIG_PKG_USING_BME680 is not set +# CONFIG_PKG_USING_BMA400 is not set +# CONFIG_PKG_USING_BMI160_BMX160 is not set +# CONFIG_PKG_USING_SPL0601 is not set +# CONFIG_PKG_USING_MS5805 is not set +# CONFIG_PKG_USING_DA270 is not set +# CONFIG_PKG_USING_DF220 is not set +# CONFIG_PKG_USING_HSHCAL001 is not set +# CONFIG_PKG_USING_BH1750 is not set +# CONFIG_PKG_USING_MPU6XXX is not set +# CONFIG_PKG_USING_AHT10 is not set +# CONFIG_PKG_USING_AP3216C is not set +# CONFIG_PKG_USING_TSL4531 is not set +# CONFIG_PKG_USING_DS18B20 is not set +# CONFIG_PKG_USING_DHT11 is not set +# CONFIG_PKG_USING_DHTXX is not set +# CONFIG_PKG_USING_GY271 is not set +# CONFIG_PKG_USING_GP2Y10 is not set +# CONFIG_PKG_USING_SGP30 is not set +# CONFIG_PKG_USING_HDC1000 is not set +# CONFIG_PKG_USING_BMP180 is not set +# CONFIG_PKG_USING_BMP280 is not set +# CONFIG_PKG_USING_SHTC1 is not set +# CONFIG_PKG_USING_BMI088 is not set +# CONFIG_PKG_USING_HMC5883 is not set +# CONFIG_PKG_USING_MAX6675 is not set +# CONFIG_PKG_USING_MAX31855 is not set +# CONFIG_PKG_USING_TMP1075 is not set +# CONFIG_PKG_USING_SR04 is not set +# CONFIG_PKG_USING_CCS811 is not set +# CONFIG_PKG_USING_PMSXX is not set +# CONFIG_PKG_USING_RT3020 is not set +# CONFIG_PKG_USING_MLX90632 is not set +# CONFIG_PKG_USING_MLX90382 is not set +# CONFIG_PKG_USING_MLX90384 is not set +# CONFIG_PKG_USING_MLX90393 is not set +# CONFIG_PKG_USING_MLX90392 is not set +# CONFIG_PKG_USING_MLX90394 is not set +# CONFIG_PKG_USING_MLX90396 is not set +# CONFIG_PKG_USING_MLX90397 is not set +# CONFIG_PKG_USING_MS5611 is not set +# CONFIG_PKG_USING_MAX31865 is not set +# CONFIG_PKG_USING_VL53L0X is not set +# CONFIG_PKG_USING_INA260 is not set +# CONFIG_PKG_USING_MAX30102 is not set +# CONFIG_PKG_USING_INA226 is not set +# CONFIG_PKG_USING_LIS2DH12 is not set +# CONFIG_PKG_USING_HS300X is not set +# CONFIG_PKG_USING_ZMOD4410 is not set +# CONFIG_PKG_USING_ISL29035 is not set +# CONFIG_PKG_USING_MMC3680KJ is not set +# CONFIG_PKG_USING_QMP6989 is not set +# CONFIG_PKG_USING_BALANCE is not set +# CONFIG_PKG_USING_SHT2X is not set +# CONFIG_PKG_USING_SHT3X is not set +# CONFIG_PKG_USING_SHT4X is not set +# CONFIG_PKG_USING_AD7746 is not set +# CONFIG_PKG_USING_ADT74XX is not set +# CONFIG_PKG_USING_MAX17048 is not set +# CONFIG_PKG_USING_AS7341 is not set +# CONFIG_PKG_USING_CW2015 is not set +# CONFIG_PKG_USING_ICM20608 is not set +# CONFIG_PKG_USING_PAJ7620 is not set +# CONFIG_PKG_USING_STHS34PF80 is not set +# CONFIG_PKG_USING_P3T1755 is not set +# CONFIG_PKG_USING_QMI8658 is not set +# CONFIG_PKG_USING_ICM20948 is not set +# CONFIG_PKG_USING_SCD4X is not set +# end of sensors drivers + +# +# touch drivers +# +# CONFIG_PKG_USING_GT9147 is not set +# CONFIG_PKG_USING_GT1151 is not set +# CONFIG_PKG_USING_GT917S is not set +# CONFIG_PKG_USING_GT911 is not set +# CONFIG_PKG_USING_FT6206 is not set +# CONFIG_PKG_USING_FT5426 is not set +# CONFIG_PKG_USING_FT6236 is not set +# CONFIG_PKG_USING_XPT2046_TOUCH is not set +# CONFIG_PKG_USING_CST816X is not set +# CONFIG_PKG_USING_CST812T is not set +# end of touch drivers + +# CONFIG_PKG_USING_LCD_SPI_DRIVER is not set +# CONFIG_PKG_USING_REALTEK_AMEBA 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_LITTLED is not set +# CONFIG_PKG_USING_LKDGUI is not set +# CONFIG_PKG_USING_INFRARED is not set +# CONFIG_PKG_USING_MULTI_INFRARED 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_PCA9685 is not set +# CONFIG_PKG_USING_ILI9341 is not set +# CONFIG_PKG_USING_I2C_TOOLS is not set +# CONFIG_PKG_USING_NRF24L01 is not set +# CONFIG_PKG_USING_RPLIDAR is not set +# CONFIG_PKG_USING_AS608 is not set +# CONFIG_PKG_USING_RC522 is not set +# CONFIG_PKG_USING_WS2812B is not set +# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set +# CONFIG_PKG_USING_MULTI_RTIMER is not set +# CONFIG_PKG_USING_MAX7219 is not set +# CONFIG_PKG_USING_BEEP is not set +# CONFIG_PKG_USING_EASYBLINK is not set +# CONFIG_PKG_USING_PMS_SERIES is not set +# CONFIG_PKG_USING_CAN_YMODEM is not set +# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set +# CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_AGILE_CONSOLE is not set +# CONFIG_PKG_USING_LD3320 is not set +# CONFIG_PKG_USING_WK2124 is not set +# CONFIG_PKG_USING_LY68L6400 is not set +# CONFIG_PKG_USING_DM9051 is not set +# CONFIG_PKG_USING_SSD1306 is not set +# CONFIG_PKG_USING_QKEY is not set +# CONFIG_PKG_USING_RS485 is not set +# CONFIG_PKG_USING_RS232 is not set +# CONFIG_PKG_USING_NES is not set +# CONFIG_PKG_USING_VIRTUAL_SENSOR is not set +# CONFIG_PKG_USING_VDEVICE is not set +# CONFIG_PKG_USING_SGM706 is not set +# CONFIG_PKG_USING_RDA58XX is not set +# CONFIG_PKG_USING_LIBNFC is not set +# CONFIG_PKG_USING_MFOC is not set +# CONFIG_PKG_USING_TMC51XX is not set +# CONFIG_PKG_USING_TCA9534 is not set +# CONFIG_PKG_USING_KOBUKI is not set +# CONFIG_PKG_USING_ROSSERIAL is not set +# CONFIG_PKG_USING_MICRO_ROS is not set +# CONFIG_PKG_USING_MCP23008 is not set +# CONFIG_PKG_USING_MISAKA_AT24CXX is not set +# CONFIG_PKG_USING_MISAKA_RGB_BLING is not set +# CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set +# CONFIG_PKG_USING_SOFT_SERIAL is not set +# CONFIG_PKG_USING_MB85RS16 is not set +# CONFIG_PKG_USING_RFM300 is not set +# CONFIG_PKG_USING_IO_INPUT_FILTER is not set +# CONFIG_PKG_USING_LRF_NV7LIDAR is not set +# CONFIG_PKG_USING_AIP650 is not set +# CONFIG_PKG_USING_FINGERPRINT is not set +# CONFIG_PKG_USING_BT_ECB02C is not set +# CONFIG_PKG_USING_UAT is not set +# CONFIG_PKG_USING_ST7789 is not set +# CONFIG_PKG_USING_VS1003 is not set +# CONFIG_PKG_USING_X9555 is not set +# CONFIG_PKG_USING_SYSTEM_RUN_LED is not set +# CONFIG_PKG_USING_BT_MX01 is not set +# CONFIG_PKG_USING_RGPOWER is not set +# CONFIG_PKG_USING_BT_MX02 is not set +# CONFIG_PKG_USING_GC9A01 is not set +# CONFIG_PKG_USING_IK485 is not set +# CONFIG_PKG_USING_SERVO is not set +# CONFIG_PKG_USING_SEAN_WS2812B is not set +# CONFIG_PKG_USING_IC74HC165 is not set +# CONFIG_PKG_USING_IST8310 is not set +# CONFIG_PKG_USING_ST7789_SPI is not set +# CONFIG_PKG_USING_CAN_UDS is not set +# CONFIG_PKG_USING_ISOTP_C is not set +# CONFIG_PKG_USING_IKUNLED is not set +# CONFIG_PKG_USING_INS5T8025 is not set +# CONFIG_PKG_USING_IRUART is not set +# CONFIG_PKG_USING_ST7305 is not set +# CONFIG_PKG_USING_TM1668 is not set +# CONFIG_PKG_USING_SPI_TOOLS is not set +# end of peripheral libraries and drivers + +# +# AI packages +# +# CONFIG_PKG_USING_LIBANN is not set +# CONFIG_PKG_USING_NNOM is not set +# CONFIG_PKG_USING_ONNX_BACKEND is not set +# CONFIG_PKG_USING_ONNX_PARSER is not set +# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set +# CONFIG_PKG_USING_ELAPACK is not set +# CONFIG_PKG_USING_ULAPACK is not set +# CONFIG_PKG_USING_QUEST is not set +# CONFIG_PKG_USING_NAXOS is not set +# CONFIG_PKG_USING_R_TINYMAIX is not set +# CONFIG_PKG_USING_LLMCHAT is not set +# end of AI packages + +# +# Signal Processing and Control Algorithm Packages +# +# CONFIG_PKG_USING_APID is not set +# CONFIG_PKG_USING_FIRE_PID_CURVE is not set +# CONFIG_PKG_USING_QPID is not set +# CONFIG_PKG_USING_UKAL is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set +# CONFIG_PKG_USING_KISSFFT is not set +# CONFIG_PKG_USING_CMSIS_DSP is not set +# end of Signal Processing and Control Algorithm Packages + +# +# miscellaneous packages +# + +# +# project laboratory +# +# end of project laboratory + +# +# 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 +# end of samples: kernel and components samples + +# +# entertainment: terminal games and other interesting software packages +# +# CONFIG_PKG_USING_CMATRIX is not set +# CONFIG_PKG_USING_SL is not set +# CONFIG_PKG_USING_CAL is not set +# CONFIG_PKG_USING_ACLOCK is not set +# CONFIG_PKG_USING_THREES is not set +# CONFIG_PKG_USING_2048 is not set +# CONFIG_PKG_USING_SNAKE is not set +# CONFIG_PKG_USING_TETRIS is not set +# CONFIG_PKG_USING_DONUT is not set +# CONFIG_PKG_USING_COWSAY is not set +# CONFIG_PKG_USING_MORSE is not set +# CONFIG_PKG_USING_TINYSQUARE is not set +# end of entertainment: terminal games and other interesting software 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_LZMA is not set +# CONFIG_PKG_USING_RALARAM 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_MINIZIP is not set +# CONFIG_PKG_USING_HEATSHRINK 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_UPACKER is not set +# CONFIG_PKG_USING_UPARAM is not set +# CONFIG_PKG_USING_HELLO is not set +# CONFIG_PKG_USING_VI is not set +# CONFIG_PKG_USING_KI is not set +# CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_CRCLIB is not set +# CONFIG_PKG_USING_LIBCRC is not set +# CONFIG_PKG_USING_LWGPS is not set +# CONFIG_PKG_USING_STATE_MACHINE is not set +# CONFIG_PKG_USING_DESIGN_PATTERN is not set +# CONFIG_PKG_USING_CONTROLLER is not set +# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set +# CONFIG_PKG_USING_MFBD is not set +# CONFIG_PKG_USING_SLCAN2RTT is not set +# CONFIG_PKG_USING_SOEM is not set +# CONFIG_PKG_USING_QPARAM is not set +# CONFIG_PKG_USING_CorevMCU_CLI is not set +# CONFIG_PKG_USING_GET_IRQ_PRIORITY is not set +# CONFIG_PKG_USING_DRMP is not set +# end of miscellaneous packages + +# +# Arduino libraries +# +# CONFIG_PKG_USING_RTDUINO is not set + +# +# Projects and Demos +# +# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set +# CONFIG_PKG_USING_ARDUINO_SKETCH_LOADER_DEMO is not set +# CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set +# CONFIG_PKG_USING_ARDUINO_RTDUINO_SENSORFUSION_SHIELD is not set +# CONFIG_PKG_USING_ARDUINO_NINEINONE_SENSOR_SHIELD is not set +# CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set +# CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set +# end of Projects and Demos + +# +# Sensors +# +# CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSORLAB is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL375 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L0X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L1X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL6180X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31855 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31865 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31856 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX6675 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90614 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS1 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AHTX0 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS0 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP280 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADT7410 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP085 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BME680 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP9808 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP4728 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_INA219 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LTR390 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL345 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DHT is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP9600 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM6DS is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO055 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX1704X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MMC56X3 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90393 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90395 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ICM20X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DPS310 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTS221 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SHT4X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SHT31 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL343 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BME280 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AS726X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AMG88XX is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AM2320 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AM2315 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LTR329_LTR303 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP085_UNIFIED is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP183 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP183_UNIFIED is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP3XX is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MS8607 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS3MDL is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90640 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MMA8451 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MSA301 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPL115A2 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO08X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO08X_RVC is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS2MDL is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM303DLH_MAG is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LC709203F is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_CAP1188 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_CCS811 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_NAU7802 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS331 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LPS2X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LPS35HW is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM303_ACCEL is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS3DH is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8591 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPL3115A2 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPR121 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPRLS is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPU6050 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCT2075 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PM25AQI is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_EMC2101 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_FXAS21002C is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SCD30 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_FXOS8700 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HMC5883_UNIFIED is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SGP30 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP006 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TLA202X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TCS34725 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI7021 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI1145 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SGP40 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SHTC3 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HDC1000 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTU21DF is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AS7341 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTU31D is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_INA260 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP007_LIBRARY is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_L3GD20 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP117 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TSC2007 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TSL2561 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TSL2591_LIBRARY is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VCNL4040 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VEML6070 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VEML6075 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VEML7700 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LIS3DHTR is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_DHT is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_ADXL335 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_ADXL345 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_BME280 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_BMP280 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_H3LIS331DL is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_MMA7660 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_TSL2561 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_PAJ7620 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_VL53L0X is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_ITG3200 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_SHT31 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HP20X is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_DRV2605L is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_BBM150 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HMC5883L is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LSM303DLH is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_TCS3414CS is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_MP503 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_BMP085 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HIGHTEMP is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_VEML6070 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_SI1145 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_SHT35 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_AT42QT1070 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LSM6DS3 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HDC1000 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HM3301 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_MCP9600 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set +# CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set +# CONFIG_PKG_USING_ARDUINO_JARZEBSKI_MPU6050 is not set +# end of Sensors + +# +# Display +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set +# CONFIG_PKG_USING_ARDUINO_U8G2 is not set +# CONFIG_PKG_USING_ARDUINO_TFT_ESPI is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set +# CONFIG_PKG_USING_SEEED_TM1637 is not set +# end of Display + +# +# Timing +# +# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set +# CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set +# CONFIG_PKG_USING_ARDUINO_TICKER is not set +# CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set +# end of Timing + +# +# Data Processing +# +# CONFIG_PKG_USING_ARDUINO_KALMANFILTER is not set +# CONFIG_PKG_USING_ARDUINO_ARDUINOJSON is not set +# CONFIG_PKG_USING_ARDUINO_TENSORFLOW_LITE_MICRO is not set +# CONFIG_PKG_USING_ARDUINO_RUNNINGMEDIAN is not set +# end of Data Processing + +# +# Data Storage +# + +# +# Communication +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PN532 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI4713 is not set +# end of Communication + +# +# Device Control +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set +# end of Device Control + +# +# Other +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set +# end of Other + +# +# Signal IO +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BUSIO is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TCA8418 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP23017 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADS1X15 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AW9523 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP3008 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP4725 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BD3491FS is not set +# end of Signal IO + +# +# Uncategorized +# +# end of Arduino libraries +# end of RT-Thread online packages + +CONFIG_SOC_FAMILY_STM32=y +CONFIG_SOC_SERIES_STM32F4=y + +# +# Hardware Drivers Config +# + +# +# Onboard Peripheral Drivers +# +CONFIG_BSP_USING_COM1=y +# CONFIG_BSP_USING_COM2 is not set +# CONFIG_BSP_USING_COM3 is not set +# end of Onboard Peripheral Drivers + +# +# On-chip Peripheral Drivers +# +CONFIG_BSP_USING_GPIO=y +CONFIG_BSP_USING_UART=y +CONFIG_BSP_STM32_UART_V1_TX_TIMEOUT=2000 +CONFIG_BSP_USING_UART1=y +# CONFIG_BSP_UART1_RX_USING_DMA is not set +# CONFIG_BSP_UART1_TX_USING_DMA 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_UART6 is not set +# CONFIG_BSP_USING_TIM is not set +# CONFIG_BSP_USING_PWM is not set +# CONFIG_BSP_USING_ON_CHIP_FLASH is not set +# CONFIG_BSP_USING_SOFT_SPI is not set +# CONFIG_BSP_USING_SPI is not set +# CONFIG_BSP_USING_ADC is not set +# CONFIG_BSP_USING_I2C is not set +# CONFIG_BSP_USING_DAC is not set +# CONFIG_BSP_USING_ONCHIP_RTC is not set +# CONFIG_BSP_USING_WDT is not set +# CONFIG_BSP_USING_SDIO is not set +# CONFIG_BSP_USING_USBD is not set +# CONFIG_BSP_USING_USBH is not set +# CONFIG_BSP_USING_PULSE_ENCODER is not set +# CONFIG_BSP_USING_RNG is not set +# CONFIG_BSP_USING_UDID is not set +# end of On-chip Peripheral Drivers + +# +# Board extended module Drivers +# +# end of Hardware Drivers Config diff --git a/bsp/stm32/stm32f407-lxb/.cproject b/bsp/stm32/stm32f407-lxb/.cproject new file mode 100644 index 000000000000..53f911950bc9 --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/.cproject @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bsp/stm32/stm32f407-lxb/.gitignore b/bsp/stm32/stm32f407-lxb/.gitignore new file mode 100644 index 000000000000..7221bde019df --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/.gitignore @@ -0,0 +1,42 @@ +*.pyc +*.map +*.dblite +*.elf +*.bin +*.hex +*.axf +*.exe +*.pdb +*.idb +*.ilk +*.old +build +Debug +documentation/html +packages/ +*~ +*.o +*.obj +*.out +*.bak +*.dep +*.lib +*.i +*.d +.DS_Stor* +.config 3 +.config 4 +.config 5 +Midea-X1 +*.uimg +GPATH +GRTAGS +GTAGS +.vscode +JLinkLog.txt +JLinkSettings.ini +DebugConfig/ +RTE/ +settings/ +*.uvguix* +cconfig.h diff --git a/bsp/stm32/stm32f407-lxb/.project b/bsp/stm32/stm32f407-lxb/.project new file mode 100644 index 000000000000..4e9de01f99ff --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/.project @@ -0,0 +1,69 @@ + + + stm32f407-atk-explorer + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.rt-thread.studio.rttnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + rt-thread + 2 + virtual:/virtual + + + rt-thread/bsp + 2 + virtual:/virtual + + + rt-thread/components + 2 + $%7BPARENT-3-PROJECT_LOC%7D/components + + + rt-thread/include + 2 + $%7BPARENT-3-PROJECT_LOC%7D/include + + + rt-thread/libcpu + 2 + $%7BPARENT-3-PROJECT_LOC%7D/libcpu + + + rt-thread/src + 2 + $%7BPARENT-3-PROJECT_LOC%7D/src + + + rt-thread/bsp/stm32 + 2 + virtual:/virtual + + + rt-thread/bsp/stm32/libraries + 2 + $%7BPARENT-1-PROJECT_LOC%7D/libraries + + + diff --git a/bsp/stm32/stm32f407-lxb/Kconfig b/bsp/stm32/stm32f407-lxb/Kconfig new file mode 100644 index 000000000000..2af3d96e17cc --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/Kconfig @@ -0,0 +1,26 @@ +mainmenu "RT-Thread Configuration" + +BSP_DIR := . + +RTT_DIR := ../../.. + +PKGS_DIR := packages + +config SOC_STM32F407ZG + bool + select SOC_SERIES_STM32F4 + select RT_USING_COMPONENTS_INIT + select RT_USING_USER_MAIN + default y + +config BOARD_STM32F407_LXB + bool + default y + +source "$(RTT_DIR)/Kconfig" +osource "$PKGS_DIR/Kconfig" +rsource "../libraries/Kconfig" + +if !RT_USING_NANO +rsource "board/Kconfig" +endif diff --git a/bsp/stm32/stm32f407-lxb/README.md b/bsp/stm32/stm32f407-lxb/README.md new file mode 100644 index 000000000000..c165606b8fb8 --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/README.md @@ -0,0 +1,138 @@ +# LXB407ZGT6-P1 开发板 BSP 说明 + +## 简介 + +本文档为鹿小班(LXB)LXB407ZGT6-P1 开发板的 BSP (板级支持包) 说明。 + +主要内容如下: + +- 开发板资源介绍 +- BSP 快速上手 +- 进阶使用方法 + +通过阅读快速上手章节开发者可以快速地上手该 BSP,将 RT-Thread 运行在开发板上。在进阶使用指南章节,将会介绍更多高级功能,帮助开发者利用 RT-Thread 驱动更多板载资源。 + +## 开发板介绍 + +LXB407ZGT6-P1 是鹿小班科技推出的一款基于 ARM Cortex-M4 内核的核心板,主控为 STM32F407ZGT6,最高频率为 168MHz,具有 1MB FLASH、192KB RAM。 + +开发板外观如下图所示: + +![board](./figures/board.png) + +该开发板常用 **板载资源** 如下: + +- MCU:STM32F407ZGT6,主频 168MHz,1MB FLASH,192KB RAM +- 常用外设 + - LED:用户LED(PC13,低电平点亮) + - 按键:用户按键、复位按键 +- 常用接口:USB 接口(Type-C)、TF 卡接口(SDIO)、LCD 接口等 +- 调试接口:SWD + 串口 + +开发板更多详细信息请参考板子附带的原理图与参考例程。 + +## 外设支持 + +本 BSP 目前对外设的支持情况如下: + +| **板载外设** | **支持情况** | **备注** | +| :----------------- | :----------: | :------------------------------------- | +| TF卡 | 暂不支持 | | +| 0.96' LCD | 暂不支持 | 160*80 | +| 1.14' LCD | 暂不支持 | 240*135 | +| 1.30' LCD | 暂不支持 | 240*240 | +| 1.54' LCD | 暂不支持 | 240*240 | +| 1.69' LCD | 暂不支持 | 240*280 | +| 2.00' LCD | 暂不支持 | 240*320 | +| **片上外设** | **支持情况** | **备注** | +| GPIO | 支持 | | +| UART | 支持 | USART1~6 DMA Support | +| timer | 支持 | TIM11 TIM13 TIM14 | +| PWM | 支持 | TIM2 | +| on-Chip FLASH | 支持 | | +| soft SPI BUS | 支持 | SPI1 SPI2 | +| SPI BUS | 支持 | SPI1 SPI2 DMA Support | +| ADC | 支持 | ADC1 | +| soft I2C BUS | 支持 | I2C1 I2C2 | +| DAC | 支持 | DAC1 | +| RTC | 支持 | | +| Watchdog Timer | 支持 | | +| SDIO | 支持 | | +| USB Device | 支持 | | +| USB Host | 支持 | | +| Pulse Encoder | 支持 | | +| RNG | 支持 | Random Number Generator | +| UDID | 支持 | Unique Device Identifier | + +## 使用说明 + +使用说明分为如下两个章节: + +- 快速上手 + + 本章节是为刚接触 RT-Thread 的新手准备的使用说明,遵循简单的步骤即可将 RT-Thread 操作系统运行在该开发板上,看到实验效果 。 + +- 进阶使用 + + 本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。 + + +### 快速上手 + +本 BSP 为开发者提供 MDK4、MDK5 和 IAR 工程,并且支持 GCC 开发环境。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。 + +**请注意!!!** + +在执行编译工作前请先打开ENV执行以下指令(该指令用于拉取必要的HAL库及CMSIS库,否则无法通过编译): + +```bash +pkgs --update +``` + +#### 硬件连接 + +将开发板的调试接口(SWD+USART1)连接至DAP-Link等调试器后,将调试器连接至PC。 + +#### 编译下载 + +双击 project.uvprojx 文件,打开 MDK5 工程,编译并下载程序到开发板。 + +> 工程默认配置使用 PWLINK2 Lite(DAP-Link) 仿真器下载程序,在通过 SWD 与 串口 连接开发板的基础上,点击下载按钮即可下载程序到开发板 + +#### 运行结果 + +下载程序成功之后,系统会自动运行,LED闪烁。 + +连接开发板对应串口到 PC , 在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以看到 RT-Thread 的输出信息: + +```bash + \ | / +- RT - Thread Operating System + / | \ 5.2.0 build Aug 6 2024 23:15:43 + 2006 - 2024 Copyright by RT-Thread team +msh /> +``` +### 进阶使用 + +此 BSP 默认只开启了 GPIO 和 串口1 的功能,如果需使用 SD 卡、Flash 等更多高级功能,需要利用 ENV 工具对BSP 进行配置,步骤如下: + +1. 在 bsp 下打开 env 工具。 + +2. 输入`menuconfig`命令配置工程,配置好之后保存退出。 + +3. 输入`pkgs --update`命令更新软件包。 + +4. 输入`scons --target=mdk4/mdk5/iar` 命令重新生成工程。 + +本章节更多详细的介绍请参考 [STM32 系列 BSP 外设驱动使用教程](../docs/STM32系列BSP外设驱动使用教程.md)。 + +## 注意事项 + +- 目前仅测试 V1.1 版本硬件,较老的 V1.0 暂未测试 + +## 联系人信息 + +维护人: + +- Github: [sendu2wfdx](https://github.com/sendu2wfdx) +- 邮箱:<2508041672@qq.com> \ No newline at end of file diff --git a/bsp/stm32/stm32f407-lxb/SConscript b/bsp/stm32/stm32f407-lxb/SConscript new file mode 100644 index 000000000000..8b60e68b22d6 --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/SConscript @@ -0,0 +1,18 @@ +# for module compiling +import os +Import('RTT_ROOT') +Import('env') +from building import * + +cwd = GetCurrentDir() +objs = [] +list = os.listdir(cwd) + +env.Append(CPPDEFINES = ['STM32F407xx']) + +for d in list: + path = os.path.join(cwd, d) + if os.path.isfile(os.path.join(path, 'SConscript')): + objs = objs + SConscript(os.path.join(d, 'SConscript')) + +Return('objs') diff --git a/bsp/stm32/stm32f407-lxb/SConstruct b/bsp/stm32/stm32f407-lxb/SConstruct new file mode 100644 index 000000000000..0a36b9af1e13 --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/SConstruct @@ -0,0 +1,75 @@ +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) + +def bsp_pkg_check(): + import subprocess + + check_paths = [ + os.path.join("packages", "CMSIS-Core-latest"), + os.path.join("packages", "stm32f4_cmsis_driver-latest"), + os.path.join("packages", "stm32f4_hal_driver-latest") + ] + + need_update = not all(os.path.exists(p) for p in check_paths) + + if need_update: + print("\n===============================================================================") + print("Dependency packages missing, please running 'pkgs --update'...") + print("If no packages are fetched, run 'pkgs --upgrade' first, then 'pkgs --update'...") + print("===============================================================================") + exit(1) + +RegisterPreBuildingAction(bsp_pkg_check) + +TARGET = 'rt-thread.' + rtconfig.TARGET_EXT + +DefaultEnvironment(tools=[]) +env = Environment(tools = ['mingw'], + AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS, + CC = rtconfig.CC, CFLAGS = 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 in ['iccarm']: + env.Replace(CCCOM = ['$CC $CFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES']) + env.Replace(ARFLAGS = ['']) + env.Replace(LINKCOM = env["LINKCOM"] + ' --map rt-thread.map') + +Export('env') +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' + +# prepare building environment +objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False) + +rtconfig.BSP_LIBRARY_TYPE = None + +# include drivers +objs.extend(SConscript(os.path.join(libraries_path_prefix, 'HAL_Drivers', 'SConscript'),variant_dir='build/libraries/'+'HAL_Drivers', duplicate=0)) + + +# make a building +DoBuilding(TARGET, objs) diff --git a/bsp/stm32/stm32f407-lxb/applications/SConscript b/bsp/stm32/stm32f407-lxb/applications/SConscript new file mode 100644 index 000000000000..1eaad937dd67 --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/applications/SConscript @@ -0,0 +1,15 @@ +from building import * +import os + +cwd = GetCurrentDir() +CPPPATH = [cwd] +src = Glob('*.c') + +group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH) + +list = os.listdir(cwd) +for item in list: + if os.path.isfile(os.path.join(cwd, item, 'SConscript')): + group = group + SConscript(os.path.join(item, 'SConscript')) + +Return('group') diff --git a/bsp/stm32/stm32f407-lxb/applications/main.c b/bsp/stm32/stm32f407-lxb/applications/main.c new file mode 100644 index 000000000000..d77169376b22 --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/applications/main.c @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2006-2024 RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2024-08-14 sendu2wfdx first version + */ + +#include +#include +#include +#ifndef RT_USING_NANO +#include +#endif /* RT_USING_NANO */ + +/* defined the LED0 pin: PC13 */ +#define LED0_PIN GET_PIN(C, 13) + +int main(void) +{ + /* set LED0 pin mode to output */ + rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT); + + while (1) + { + rt_pin_write(LED0_PIN, PIN_HIGH); + rt_thread_mdelay(500); + rt_pin_write(LED0_PIN, PIN_LOW); + rt_thread_mdelay(500); + } +} diff --git a/bsp/stm32/stm32f407-lxb/board/CubeMX_Config/.mxproject b/bsp/stm32/stm32f407-lxb/board/CubeMX_Config/.mxproject new file mode 100644 index 000000000000..85c79639c9d9 --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/board/CubeMX_Config/.mxproject @@ -0,0 +1,17 @@ +[PreviousLibFiles] +LibFiles=Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dac.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dac_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_eth.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_fsmc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sram.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_iwdg.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_sdmmc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sd.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usb.h;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fsmc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sram.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_iwdg.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_sdmmc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dac.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dac_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_eth.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_fsmc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sram.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_iwdg.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_sdmmc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sd.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usb.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c; + +[PreviousUsedKeilFiles] +SourceFiles=..\Src\main.c;..\Src\stm32f4xx_it.c;..\Src\stm32f4xx_hal_msp.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_iwdg.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_sdmmc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c;..\\Src/system_stm32f4xx.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_iwdg.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_sdmmc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c;..\\Src/system_stm32f4xx.c;..\Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;; +HeaderPath=..\Drivers\STM32F4xx_HAL_Driver\Inc;..\Drivers\STM32F4xx_HAL_Driver\Inc\Legacy;..\Drivers\CMSIS\Device\ST\STM32F4xx\Include;..\Drivers\CMSIS\Include;..\Inc; +CDefines=USE_HAL_DRIVER;STM32F407xx;USE_HAL_DRIVER;USE_HAL_DRIVER; + +[] +SourceFiles=;; + +[PreviousGenFiles] +HeaderPath=G:/workspaces/rt-thread/bsp/stm32/stm32f407-atk-explorer/board/CubeMX_Config/Inc +HeaderFiles=stm32f4xx_it.h;stm32f4xx_hal_conf.h;main.h; +SourcePath=G:/workspaces/rt-thread/bsp/stm32/stm32f407-atk-explorer/board/CubeMX_Config/Src +SourceFiles=stm32f4xx_it.c;stm32f4xx_hal_msp.c;main.c; + diff --git a/bsp/stm32/stm32f407-lxb/board/CubeMX_Config/CubeMX_Config.ioc b/bsp/stm32/stm32f407-lxb/board/CubeMX_Config/CubeMX_Config.ioc new file mode 100644 index 000000000000..8115bf06871e --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/board/CubeMX_Config/CubeMX_Config.ioc @@ -0,0 +1,449 @@ +#MicroXplorer Configuration settings - do not modify +ETH.IPParameters=MediaInterface +ETH.MediaInterface=ETH_MEDIA_INTERFACE_RMII +FSMC.IPParameters=WriteOperation1 +FSMC.WriteOperation1=FSMC_WRITE_OPERATION_ENABLE +File.Version=6 +GPIO.groupedBy=Group By Peripherals +KeepUserPlacement=false +Mcu.Family=STM32F4 +Mcu.IP0=DAC +Mcu.IP1=ETH +Mcu.IP10=SYS +Mcu.IP11=TIM2 +Mcu.IP12=TIM4 +Mcu.IP13=TIM11 +Mcu.IP14=TIM13 +Mcu.IP15=TIM14 +Mcu.IP16=USART1 +Mcu.IP17=USART3 +Mcu.IP18=USB_OTG_FS +Mcu.IP2=FSMC +Mcu.IP3=IWDG +Mcu.IP4=NVIC +Mcu.IP5=RCC +Mcu.IP6=RTC +Mcu.IP7=SDIO +Mcu.IP8=SPI1 +Mcu.IP9=SPI2 +Mcu.IPNb=19 +Mcu.Name=STM32F407Z(E-G)Tx +Mcu.Package=LQFP144 +Mcu.Pin0=PC14-OSC32_IN +Mcu.Pin1=PC15-OSC32_OUT +Mcu.Pin10=PC1 +Mcu.Pin11=PC2 +Mcu.Pin12=PC3 +Mcu.Pin13=PA1 +Mcu.Pin14=PA2 +Mcu.Pin15=PA3 +Mcu.Pin16=PA4 +Mcu.Pin17=PA5 +Mcu.Pin18=PA7 +Mcu.Pin19=PC4 +Mcu.Pin2=PF0 +Mcu.Pin20=PC5 +Mcu.Pin21=PF12 +Mcu.Pin22=PF13 +Mcu.Pin23=PF14 +Mcu.Pin24=PF15 +Mcu.Pin25=PG0 +Mcu.Pin26=PG1 +Mcu.Pin27=PE7 +Mcu.Pin28=PE8 +Mcu.Pin29=PE9 +Mcu.Pin3=PF1 +Mcu.Pin30=PE10 +Mcu.Pin31=PE11 +Mcu.Pin32=PE12 +Mcu.Pin33=PE13 +Mcu.Pin34=PE14 +Mcu.Pin35=PE15 +Mcu.Pin36=PB10 +Mcu.Pin37=PB11 +Mcu.Pin38=PB13 +Mcu.Pin39=PD8 +Mcu.Pin4=PF2 +Mcu.Pin40=PD9 +Mcu.Pin41=PD10 +Mcu.Pin42=PD11 +Mcu.Pin43=PD12 +Mcu.Pin44=PD13 +Mcu.Pin45=PD14 +Mcu.Pin46=PD15 +Mcu.Pin47=PG2 +Mcu.Pin48=PG3 +Mcu.Pin49=PG4 +Mcu.Pin5=PF3 +Mcu.Pin50=PG5 +Mcu.Pin51=PC8 +Mcu.Pin52=PC9 +Mcu.Pin53=PA9 +Mcu.Pin54=PA10 +Mcu.Pin55=PA11 +Mcu.Pin56=PA12 +Mcu.Pin57=PA13 +Mcu.Pin58=PA14 +Mcu.Pin59=PC10 +Mcu.Pin6=PF4 +Mcu.Pin60=PC11 +Mcu.Pin61=PC12 +Mcu.Pin62=PD0 +Mcu.Pin63=PD1 +Mcu.Pin64=PD2 +Mcu.Pin65=PD4 +Mcu.Pin66=PD5 +Mcu.Pin67=PG10 +Mcu.Pin68=PG11 +Mcu.Pin69=PG13 +Mcu.Pin7=PF5 +Mcu.Pin70=PG14 +Mcu.Pin71=PB3 +Mcu.Pin72=PB4 +Mcu.Pin73=PB5 +Mcu.Pin74=PB6 +Mcu.Pin75=PB7 +Mcu.Pin76=PE0 +Mcu.Pin77=PE1 +Mcu.Pin78=VP_IWDG_VS_IWDG +Mcu.Pin79=VP_RTC_VS_RTC_Activate +Mcu.Pin8=PH0-OSC_IN +Mcu.Pin80=VP_SYS_VS_Systick +Mcu.Pin81=VP_TIM2_VS_ClockSourceINT +Mcu.Pin82=VP_TIM11_VS_ClockSourceINT +Mcu.Pin83=VP_TIM13_VS_ClockSourceINT +Mcu.Pin84=VP_TIM14_VS_ClockSourceINT +Mcu.Pin9=PH1-OSC_OUT +Mcu.PinsNb=85 +Mcu.ThirdPartyNb=0 +Mcu.UserConstants= +Mcu.UserName=STM32F407ZGTx +MxCube.Version=6.0.1 +MxDb.Version=DB.6.0.0 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.ForceEnableDMAVector=true +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.OTG_FS_IRQn=true\:0\:0\:false\:false\:true\:true\:true +NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 +NVIC.SPI1_IRQn=true\:0\:0\:false\:false\:true\:true\:true +NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true +NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false +PA1.Mode=RMII +PA1.Signal=ETH_REF_CLK +PA9.GPIOParameters=GPIO_PuPd +PA9.GPIO_PuPd=GPIO_PULLUP +PA9.Mode=Asynchronous +PA9.Signal=USART1_TX +PA10.GPIOParameters=GPIO_PuPd +PA10.GPIO_PuPd=GPIO_PULLUP +PA10.Mode=Asynchronous +PA10.Signal=USART1_RX +PA11.Mode=Device_Only +PA11.Signal=USB_OTG_FS_DM +PA12.Mode=Device_Only +PA12.Signal=USB_OTG_FS_DP +PA13.Mode=Serial_Wire +PA13.Signal=SYS_JTMS-SWDIO +PA14.Mode=Serial_Wire +PA14.Signal=SYS_JTCK-SWCLK +PA2.Mode=RMII +PA2.Signal=ETH_MDIO +PA3.Signal=S_TIM2_CH4 +PA4.Signal=COMP_DAC1_group +PA5.Locked=true +PA5.Signal=COMP_DAC2_group +PA7.Mode=RMII +PA7.Signal=ETH_CRS_DV +PB10.GPIOParameters=GPIO_PuPd +PB10.GPIO_PuPd=GPIO_PULLUP +PB10.Mode=Asynchronous +PB10.Signal=USART3_TX +PB11.GPIOParameters=GPIO_PuPd +PB11.GPIO_PuPd=GPIO_PULLUP +PB11.Mode=Asynchronous +PB11.Signal=USART3_RX +PB13.Mode=Full_Duplex_Master +PB13.Signal=SPI2_SCK +PB3.Locked=true +PB3.Mode=Full_Duplex_Master +PB3.Signal=SPI1_SCK +PB4.Locked=true +PB4.Mode=Full_Duplex_Master +PB4.Signal=SPI1_MISO +PB5.Locked=true +PB5.Mode=Full_Duplex_Master +PB5.Signal=SPI1_MOSI +PB6.Locked=true +PB6.Signal=S_TIM4_CH1 +PB7.Locked=true +PB7.Signal=S_TIM4_CH2 +PC1.Mode=RMII +PC1.Signal=ETH_MDC +PC10.Mode=SD_4_bits_Wide_bus +PC10.Signal=SDIO_D2 +PC11.Mode=SD_4_bits_Wide_bus +PC11.Signal=SDIO_D3 +PC12.Mode=SD_4_bits_Wide_bus +PC12.Signal=SDIO_CK +PC14-OSC32_IN.Mode=LSE-External-Oscillator +PC14-OSC32_IN.Signal=RCC_OSC32_IN +PC15-OSC32_OUT.Mode=LSE-External-Oscillator +PC15-OSC32_OUT.Signal=RCC_OSC32_OUT +PC2.Mode=Full_Duplex_Master +PC2.Signal=SPI2_MISO +PC3.Mode=Full_Duplex_Master +PC3.Signal=SPI2_MOSI +PC4.Mode=RMII +PC4.Signal=ETH_RXD0 +PC5.Mode=RMII +PC5.Signal=ETH_RXD1 +PC8.Mode=SD_4_bits_Wide_bus +PC8.Signal=SDIO_D0 +PC9.Mode=SD_4_bits_Wide_bus +PC9.Signal=SDIO_D1 +PD0.Signal=FSMC_D2_DA2 +PD1.Signal=FSMC_D3_DA3 +PD10.Signal=FSMC_D15_DA15 +PD11.Signal=FSMC_A16_CLE +PD12.Signal=FSMC_A17_ALE +PD13.Signal=FSMC_A18 +PD14.Signal=FSMC_D0_DA0 +PD15.Signal=FSMC_D1_DA1 +PD2.Mode=SD_4_bits_Wide_bus +PD2.Signal=SDIO_CMD +PD4.Signal=FSMC_NOE +PD5.Signal=FSMC_NWE +PD8.Signal=FSMC_D13_DA13 +PD9.Signal=FSMC_D14_DA14 +PE0.Signal=FSMC_NBL0 +PE1.Signal=FSMC_NBL1 +PE10.Signal=FSMC_D7_DA7 +PE11.Signal=FSMC_D8_DA8 +PE12.Signal=FSMC_D9_DA9 +PE13.Signal=FSMC_D10_DA10 +PE14.Signal=FSMC_D11_DA11 +PE15.Signal=FSMC_D12_DA12 +PE7.Signal=FSMC_D4_DA4 +PE8.Signal=FSMC_D5_DA5 +PE9.Signal=FSMC_D6_DA6 +PF0.Signal=FSMC_A0 +PF1.Signal=FSMC_A1 +PF12.Signal=FSMC_A6 +PF13.Signal=FSMC_A7 +PF14.Signal=FSMC_A8 +PF15.Signal=FSMC_A9 +PF2.Signal=FSMC_A2 +PF3.Signal=FSMC_A3 +PF4.Signal=FSMC_A4 +PF5.Signal=FSMC_A5 +PG0.Signal=FSMC_A10 +PG1.Signal=FSMC_A11 +PG10.Mode=NorPsramChipSelect3_1 +PG10.Signal=FSMC_NE3 +PG11.Locked=true +PG11.Mode=RMII +PG11.Signal=ETH_TX_EN +PG13.Locked=true +PG13.Mode=RMII +PG13.Signal=ETH_TXD0 +PG14.Locked=true +PG14.Mode=RMII +PG14.Signal=ETH_TXD1 +PG2.Signal=FSMC_A12 +PG3.Signal=FSMC_A13 +PG4.Signal=FSMC_A14 +PG5.Signal=FSMC_A15 +PH0-OSC_IN.Mode=HSE-External-Oscillator +PH0-OSC_IN.Signal=RCC_OSC_IN +PH1-OSC_OUT.Mode=HSE-External-Oscillator +PH1-OSC_OUT.Signal=RCC_OSC_OUT +PinOutPanel.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=STM32F407ZGTx +ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.25.2 +ProjectManager.FreePins=false +ProjectManager.HalAssertFull=false +ProjectManager.HeapSize=0x200 +ProjectManager.KeepUserCode=true +ProjectManager.LastFirmware=true +ProjectManager.LibraryCopy=0 +ProjectManager.MainLocation=Src +ProjectManager.NoMain=false +ProjectManager.PreviousToolchain= +ProjectManager.ProjectBuild=false +ProjectManager.ProjectFileName=CubeMX_Config.ioc +ProjectManager.ProjectName=CubeMX_Config +ProjectManager.RegisterCallBack= +ProjectManager.StackSize=0x400 +ProjectManager.TargetToolchain=MDK-ARM V5 +ProjectManager.ToolChainLocation= +ProjectManager.UnderRoot=false +ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_USART1_UART_Init-USART1-false-HAL-true,4-MX_SPI1_Init-SPI1-false-HAL-true,5-MX_ETH_Init-ETH-false-HAL-true,6-MX_USART3_UART_Init-USART3-false-HAL-true,7-MX_ADC1_Init-ADC1-false-HAL-true,8-MX_RTC_Init-RTC-false-HAL-true,9-MX_IWDG_Init-IWDG-false-HAL-true,10-MX_TIM14_Init-TIM14-false-HAL-true,11-MX_TIM13_Init-TIM13-false-HAL-true,12-MX_TIM11_Init-TIM11-false-HAL-true,13-MX_SDIO_SD_Init-SDIO-false-HAL-true,14-MX_TIM2_Init-TIM2-false-HAL-true,15-MX_SPI2_Init-SPI2-false-HAL-true,16-MX_TIM4_Init-TIM4-false-HAL-true,17-MX_USB_OTG_FS_PCD_Init-USB_OTG_FS-false-HAL-true,18-MX_FSMC_Init-FSMC-false-HAL-true +RCC.48MHZClocksFreq_Value=48000000 +RCC.AHBFreq_Value=168000000 +RCC.APB1CLKDivider=RCC_HCLK_DIV4 +RCC.APB1Freq_Value=42000000 +RCC.APB1TimFreq_Value=84000000 +RCC.APB2CLKDivider=RCC_HCLK_DIV2 +RCC.APB2Freq_Value=84000000 +RCC.APB2TimFreq_Value=168000000 +RCC.CortexFreq_Value=168000000 +RCC.EthernetFreq_Value=168000000 +RCC.FCLKCortexFreq_Value=168000000 +RCC.FamilyName=M +RCC.HCLKFreq_Value=168000000 +RCC.HSE_VALUE=8000000 +RCC.HSI_VALUE=16000000 +RCC.I2SClocksFreq_Value=192000000 +RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLM,PLLN,PLLQ,PLLQCLKFreq_Value,RCC_RTC_Clock_Source,RCC_RTC_Clock_SourceVirtual,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VcooutputI2S +RCC.LSI_VALUE=32000 +RCC.MCO2PinFreq_Value=168000000 +RCC.PLLCLKFreq_Value=168000000 +RCC.PLLM=4 +RCC.PLLN=168 +RCC.PLLQ=7 +RCC.PLLQCLKFreq_Value=48000000 +RCC.RCC_RTC_Clock_Source=RCC_RTCCLKSOURCE_LSE +RCC.RCC_RTC_Clock_SourceVirtual=RCC_RTCCLKSOURCE_LSE +RCC.RTCFreq_Value=32768 +RCC.RTCHSEDivFreq_Value=4000000 +RCC.SYSCLKFreq_VALUE=168000000 +RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK +RCC.VCOI2SOutputFreq_Value=384000000 +RCC.VCOInputFreq_Value=2000000 +RCC.VCOOutputFreq_Value=336000000 +RCC.VcooutputI2S=192000000 +SH.COMP_DAC1_group.0=DAC_OUT1,DAC_OUT1 +SH.COMP_DAC1_group.ConfNb=1 +SH.COMP_DAC2_group.0=DAC_OUT2,DAC_OUT2 +SH.COMP_DAC2_group.ConfNb=1 +SH.FSMC_A0.0=FSMC_A0,19b-a1 +SH.FSMC_A0.ConfNb=1 +SH.FSMC_A1.0=FSMC_A1,19b-a1 +SH.FSMC_A1.ConfNb=1 +SH.FSMC_A10.0=FSMC_A10,19b-a1 +SH.FSMC_A10.ConfNb=1 +SH.FSMC_A11.0=FSMC_A11,19b-a1 +SH.FSMC_A11.ConfNb=1 +SH.FSMC_A12.0=FSMC_A12,19b-a1 +SH.FSMC_A12.ConfNb=1 +SH.FSMC_A13.0=FSMC_A13,19b-a1 +SH.FSMC_A13.ConfNb=1 +SH.FSMC_A14.0=FSMC_A14,19b-a1 +SH.FSMC_A14.ConfNb=1 +SH.FSMC_A15.0=FSMC_A15,19b-a1 +SH.FSMC_A15.ConfNb=1 +SH.FSMC_A16_CLE.0=FSMC_A16,19b-a1 +SH.FSMC_A16_CLE.ConfNb=1 +SH.FSMC_A17_ALE.0=FSMC_A17,19b-a1 +SH.FSMC_A17_ALE.ConfNb=1 +SH.FSMC_A18.0=FSMC_A18,19b-a1 +SH.FSMC_A18.ConfNb=1 +SH.FSMC_A2.0=FSMC_A2,19b-a1 +SH.FSMC_A2.ConfNb=1 +SH.FSMC_A3.0=FSMC_A3,19b-a1 +SH.FSMC_A3.ConfNb=1 +SH.FSMC_A4.0=FSMC_A4,19b-a1 +SH.FSMC_A4.ConfNb=1 +SH.FSMC_A5.0=FSMC_A5,19b-a1 +SH.FSMC_A5.ConfNb=1 +SH.FSMC_A6.0=FSMC_A6,19b-a1 +SH.FSMC_A6.ConfNb=1 +SH.FSMC_A7.0=FSMC_A7,19b-a1 +SH.FSMC_A7.ConfNb=1 +SH.FSMC_A8.0=FSMC_A8,19b-a1 +SH.FSMC_A8.ConfNb=1 +SH.FSMC_A9.0=FSMC_A9,19b-a1 +SH.FSMC_A9.ConfNb=1 +SH.FSMC_D0_DA0.0=FSMC_D0,16b-d1 +SH.FSMC_D0_DA0.ConfNb=1 +SH.FSMC_D10_DA10.0=FSMC_D10,16b-d1 +SH.FSMC_D10_DA10.ConfNb=1 +SH.FSMC_D11_DA11.0=FSMC_D11,16b-d1 +SH.FSMC_D11_DA11.ConfNb=1 +SH.FSMC_D12_DA12.0=FSMC_D12,16b-d1 +SH.FSMC_D12_DA12.ConfNb=1 +SH.FSMC_D13_DA13.0=FSMC_D13,16b-d1 +SH.FSMC_D13_DA13.ConfNb=1 +SH.FSMC_D14_DA14.0=FSMC_D14,16b-d1 +SH.FSMC_D14_DA14.ConfNb=1 +SH.FSMC_D15_DA15.0=FSMC_D15,16b-d1 +SH.FSMC_D15_DA15.ConfNb=1 +SH.FSMC_D1_DA1.0=FSMC_D1,16b-d1 +SH.FSMC_D1_DA1.ConfNb=1 +SH.FSMC_D2_DA2.0=FSMC_D2,16b-d1 +SH.FSMC_D2_DA2.ConfNb=1 +SH.FSMC_D3_DA3.0=FSMC_D3,16b-d1 +SH.FSMC_D3_DA3.ConfNb=1 +SH.FSMC_D4_DA4.0=FSMC_D4,16b-d1 +SH.FSMC_D4_DA4.ConfNb=1 +SH.FSMC_D5_DA5.0=FSMC_D5,16b-d1 +SH.FSMC_D5_DA5.ConfNb=1 +SH.FSMC_D6_DA6.0=FSMC_D6,16b-d1 +SH.FSMC_D6_DA6.ConfNb=1 +SH.FSMC_D7_DA7.0=FSMC_D7,16b-d1 +SH.FSMC_D7_DA7.ConfNb=1 +SH.FSMC_D8_DA8.0=FSMC_D8,16b-d1 +SH.FSMC_D8_DA8.ConfNb=1 +SH.FSMC_D9_DA9.0=FSMC_D9,16b-d1 +SH.FSMC_D9_DA9.ConfNb=1 +SH.FSMC_NBL0.0=FSMC_NBL0,2ByteEnable1 +SH.FSMC_NBL0.ConfNb=1 +SH.FSMC_NBL1.0=FSMC_NBL1,2ByteEnable1 +SH.FSMC_NBL1.ConfNb=1 +SH.FSMC_NOE.0=FSMC_NOE,Sram1 +SH.FSMC_NOE.ConfNb=1 +SH.FSMC_NWE.0=FSMC_NWE,Sram1 +SH.FSMC_NWE.ConfNb=1 +SH.S_TIM2_CH4.0=TIM2_CH4,PWM Generation4 CH4 +SH.S_TIM2_CH4.ConfNb=1 +SH.S_TIM4_CH1.0=TIM4_CH1,Encoder_Interface +SH.S_TIM4_CH1.ConfNb=1 +SH.S_TIM4_CH2.0=TIM4_CH2,Encoder_Interface +SH.S_TIM4_CH2.ConfNb=1 +SPI1.CalculateBaudRate=42.0 MBits/s +SPI1.Direction=SPI_DIRECTION_2LINES +SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate +SPI1.Mode=SPI_MODE_MASTER +SPI1.VirtualType=VM_MASTER +SPI2.CalculateBaudRate=21.0 MBits/s +SPI2.Direction=SPI_DIRECTION_2LINES +SPI2.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate +SPI2.Mode=SPI_MODE_MASTER +SPI2.VirtualType=VM_MASTER +TIM2.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4 +TIM2.IPParameters=Channel-PWM Generation4 CH4 +USART1.IPParameters=VirtualMode +USART1.VirtualMode=VM_ASYNC +USART3.IPParameters=VirtualMode +USART3.VirtualMode=VM_ASYNC +USB_OTG_FS.IPParameters=VirtualMode +USB_OTG_FS.VirtualMode=Device_Only +VP_IWDG_VS_IWDG.Mode=IWDG_Activate +VP_IWDG_VS_IWDG.Signal=IWDG_VS_IWDG +VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled +VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate +VP_SYS_VS_Systick.Mode=SysTick +VP_SYS_VS_Systick.Signal=SYS_VS_Systick +VP_TIM11_VS_ClockSourceINT.Mode=Enable_Timer +VP_TIM11_VS_ClockSourceINT.Signal=TIM11_VS_ClockSourceINT +VP_TIM13_VS_ClockSourceINT.Mode=Enable_Timer +VP_TIM13_VS_ClockSourceINT.Signal=TIM13_VS_ClockSourceINT +VP_TIM14_VS_ClockSourceINT.Mode=Enable_Timer +VP_TIM14_VS_ClockSourceINT.Signal=TIM14_VS_ClockSourceINT +VP_TIM2_VS_ClockSourceINT.Mode=Internal +VP_TIM2_VS_ClockSourceINT.Signal=TIM2_VS_ClockSourceINT +board=custom diff --git a/bsp/stm32/stm32f407-lxb/board/CubeMX_Config/Inc/main.h b/bsp/stm32/stm32f407-lxb/board/CubeMX_Config/Inc/main.h new file mode 100644 index 000000000000..60712db9c5b9 --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/board/CubeMX_Config/Inc/main.h @@ -0,0 +1,93 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.h + * @brief : Header for main.c file. + * This file contains the common defines of the application. + ****************************************************************************** + ** This notice applies to any and all portions of this file + * that are not between comment pairs USER CODE BEGIN and + * USER CODE END. Other portions of this file, whether + * inserted by the user or by software development tools + * are owned by their respective copyright owners. + * + * COPYRIGHT(c) 2018 STMicroelectronics + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of STMicroelectronics nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __MAIN_H +#define __MAIN_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f4xx_hal.h" + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Exported types ------------------------------------------------------------*/ +/* USER CODE BEGIN ET */ + +/* USER CODE END ET */ + +/* Exported constants --------------------------------------------------------*/ +/* USER CODE BEGIN EC */ + +/* USER CODE END EC */ + +/* Exported macro ------------------------------------------------------------*/ +/* USER CODE BEGIN EM */ + +/* USER CODE END EM */ + +void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); + +/* 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/stm32f407-lxb/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h b/bsp/stm32/stm32f407-lxb/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h new file mode 100644 index 000000000000..af6ceedd3d21 --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h @@ -0,0 +1,489 @@ +/** + ****************************************************************************** + * @file stm32f4xx_hal_conf_template.h + * @author MCD Application Team + * @brief HAL configuration template file. + * This file should be copied to the application folder and renamed + * to stm32f4xx_hal_conf.h. + ****************************************************************************** + * @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 + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F4xx_HAL_CONF_H +#define __STM32F4xx_HAL_CONF_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ + +/* ########################## Module Selection ############################## */ +/** + * @brief This is the list of modules to be used in the HAL driver + */ +#define HAL_MODULE_ENABLED + + /* #define HAL_ADC_MODULE_ENABLED */ +/* #define HAL_CRYP_MODULE_ENABLED */ +/* #define HAL_CAN_MODULE_ENABLED */ +/* #define HAL_CRC_MODULE_ENABLED */ +/* #define HAL_CAN_LEGACY_MODULE_ENABLED */ +/* #define HAL_CRYP_MODULE_ENABLED */ +#define HAL_DAC_MODULE_ENABLED +/* #define HAL_DCMI_MODULE_ENABLED */ +/* #define HAL_DMA2D_MODULE_ENABLED */ +#define HAL_ETH_MODULE_ENABLED +/* #define HAL_NAND_MODULE_ENABLED */ +/* #define HAL_NOR_MODULE_ENABLED */ +/* #define HAL_PCCARD_MODULE_ENABLED */ +#define HAL_SRAM_MODULE_ENABLED +/* #define HAL_SDRAM_MODULE_ENABLED */ +/* #define HAL_HASH_MODULE_ENABLED */ +/* #define HAL_I2C_MODULE_ENABLED */ +/* #define HAL_I2S_MODULE_ENABLED */ +#define HAL_IWDG_MODULE_ENABLED +/* #define HAL_LTDC_MODULE_ENABLED */ +/* #define HAL_RNG_MODULE_ENABLED */ +#define HAL_RTC_MODULE_ENABLED +/* #define HAL_SAI_MODULE_ENABLED */ +#define HAL_SD_MODULE_ENABLED +/* #define HAL_MMC_MODULE_ENABLED */ +#define HAL_SPI_MODULE_ENABLED +#define HAL_TIM_MODULE_ENABLED +#define HAL_UART_MODULE_ENABLED +/* #define HAL_USART_MODULE_ENABLED */ +/* #define HAL_IRDA_MODULE_ENABLED */ +/* #define HAL_SMARTCARD_MODULE_ENABLED */ +/* #define HAL_SMBUS_MODULE_ENABLED */ +/* #define HAL_WWDG_MODULE_ENABLED */ +#define HAL_PCD_MODULE_ENABLED +/* #define HAL_HCD_MODULE_ENABLED */ +/* #define HAL_DSI_MODULE_ENABLED */ +/* #define HAL_QSPI_MODULE_ENABLED */ +/* #define HAL_QSPI_MODULE_ENABLED */ +/* #define HAL_CEC_MODULE_ENABLED */ +/* #define HAL_FMPI2C_MODULE_ENABLED */ +/* #define HAL_SPDIFRX_MODULE_ENABLED */ +/* #define HAL_DFSDM_MODULE_ENABLED */ +/* #define HAL_LPTIM_MODULE_ENABLED */ +#define HAL_GPIO_MODULE_ENABLED +#define HAL_EXTI_MODULE_ENABLED +#define HAL_DMA_MODULE_ENABLED +#define HAL_RCC_MODULE_ENABLED +#define HAL_FLASH_MODULE_ENABLED +#define HAL_PWR_MODULE_ENABLED +#define HAL_CORTEX_MODULE_ENABLED + +/* ########################## HSE/HSI Values adaptation ##################### */ +/** + * @brief Adjust the value of External High Speed oscillator (HSE) used in your application. + * This value is used by the RCC HAL module to compute the system frequency + * (when HSE is used as system clock source, directly or through the PLL). + */ +#if !defined (HSE_VALUE) + #define HSE_VALUE ((uint32_t)8000000U) /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSE_STARTUP_TIMEOUT) + #define HSE_STARTUP_TIMEOUT ((uint32_t)100U) /*!< Time out for HSE start up, in ms */ +#endif /* HSE_STARTUP_TIMEOUT */ + +/** + * @brief Internal High Speed oscillator (HSI) value. + * This value is used by the RCC HAL module to compute the system frequency + * (when HSI is used as system clock source, directly or through the PLL). + */ +#if !defined (HSI_VALUE) + #define HSI_VALUE ((uint32_t)16000000U) /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +/** + * @brief Internal Low Speed oscillator (LSI) value. + */ +#if !defined (LSI_VALUE) + #define LSI_VALUE ((uint32_t)32000U) /*!< LSI Typical Value in Hz*/ +#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz + The real value may vary depending on the variations + in voltage and temperature.*/ +/** + * @brief External Low Speed oscillator (LSE) value. + */ +#if !defined (LSE_VALUE) + #define LSE_VALUE ((uint32_t)32768U) /*!< Value of the External Low Speed oscillator in Hz */ +#endif /* LSE_VALUE */ + +#if !defined (LSE_STARTUP_TIMEOUT) + #define LSE_STARTUP_TIMEOUT ((uint32_t)5000U) /*!< Time out for LSE start up, in ms */ +#endif /* LSE_STARTUP_TIMEOUT */ + +/** + * @brief External clock source for I2S peripheral + * This value is used by the I2S HAL module to compute the I2S clock source + * frequency, this source is inserted directly through I2S_CKIN pad. + */ +#if !defined (EXTERNAL_CLOCK_VALUE) + #define EXTERNAL_CLOCK_VALUE ((uint32_t)12288000U) /*!< Value of the External audio frequency in Hz*/ +#endif /* EXTERNAL_CLOCK_VALUE */ + +/* Tip: To avoid modifying this file each time you need to use different HSE, + === you can define the HSE value in your toolchain compiler preprocessor. */ + +/* ########################### System Configuration ######################### */ +/** + * @brief This is the HAL system configuration section + */ +#define VDD_VALUE ((uint32_t)3300U) /*!< Value of VDD in mv */ +#define TICK_INT_PRIORITY ((uint32_t)0U) /*!< tick interrupt priority */ +#define USE_RTOS 0U +#define PREFETCH_ENABLE 1U +#define INSTRUCTION_CACHE_ENABLE 1U +#define DATA_CACHE_ENABLE 1U + +#define USE_HAL_ADC_REGISTER_CALLBACKS 0U /* ADC register callback disabled */ +#define USE_HAL_CAN_REGISTER_CALLBACKS 0U /* CAN register callback disabled */ +#define USE_HAL_CEC_REGISTER_CALLBACKS 0U /* CEC register callback disabled */ +#define USE_HAL_CRYP_REGISTER_CALLBACKS 0U /* CRYP register callback disabled */ +#define USE_HAL_DAC_REGISTER_CALLBACKS 0U /* DAC register callback disabled */ +#define USE_HAL_DCMI_REGISTER_CALLBACKS 0U /* DCMI register callback disabled */ +#define USE_HAL_DFSDM_REGISTER_CALLBACKS 0U /* DFSDM register callback disabled */ +#define USE_HAL_DMA2D_REGISTER_CALLBACKS 0U /* DMA2D register callback disabled */ +#define USE_HAL_DSI_REGISTER_CALLBACKS 0U /* DSI register callback disabled */ +#define USE_HAL_ETH_REGISTER_CALLBACKS 0U /* ETH register callback disabled */ +#define USE_HAL_HASH_REGISTER_CALLBACKS 0U /* HASH register callback disabled */ +#define USE_HAL_HCD_REGISTER_CALLBACKS 0U /* HCD register callback disabled */ +#define USE_HAL_I2C_REGISTER_CALLBACKS 0U /* I2C register callback disabled */ +#define USE_HAL_FMPI2C_REGISTER_CALLBACKS 0U /* FMPI2C register callback disabled */ +#define USE_HAL_I2S_REGISTER_CALLBACKS 0U /* I2S register callback disabled */ +#define USE_HAL_IRDA_REGISTER_CALLBACKS 0U /* IRDA register callback disabled */ +#define USE_HAL_LPTIM_REGISTER_CALLBACKS 0U /* LPTIM register callback disabled */ +#define USE_HAL_LTDC_REGISTER_CALLBACKS 0U /* LTDC register callback disabled */ +#define USE_HAL_MMC_REGISTER_CALLBACKS 0U /* MMC register callback disabled */ +#define USE_HAL_NAND_REGISTER_CALLBACKS 0U /* NAND register callback disabled */ +#define USE_HAL_NOR_REGISTER_CALLBACKS 0U /* NOR register callback disabled */ +#define USE_HAL_PCCARD_REGISTER_CALLBACKS 0U /* PCCARD register callback disabled */ +#define USE_HAL_PCD_REGISTER_CALLBACKS 0U /* PCD register callback disabled */ +#define USE_HAL_QSPI_REGISTER_CALLBACKS 0U /* QSPI register callback disabled */ +#define USE_HAL_RNG_REGISTER_CALLBACKS 0U /* RNG register callback disabled */ +#define USE_HAL_RTC_REGISTER_CALLBACKS 0U /* RTC register callback disabled */ +#define USE_HAL_SAI_REGISTER_CALLBACKS 0U /* SAI register callback disabled */ +#define USE_HAL_SD_REGISTER_CALLBACKS 0U /* SD register callback disabled */ +#define USE_HAL_SMARTCARD_REGISTER_CALLBACKS 0U /* SMARTCARD register callback disabled */ +#define USE_HAL_SDRAM_REGISTER_CALLBACKS 0U /* SDRAM register callback disabled */ +#define USE_HAL_SRAM_REGISTER_CALLBACKS 0U /* SRAM register callback disabled */ +#define USE_HAL_SPDIFRX_REGISTER_CALLBACKS 0U /* SPDIFRX register callback disabled */ +#define USE_HAL_SMBUS_REGISTER_CALLBACKS 0U /* SMBUS register callback disabled */ +#define USE_HAL_SPI_REGISTER_CALLBACKS 0U /* SPI register callback disabled */ +#define USE_HAL_TIM_REGISTER_CALLBACKS 0U /* TIM register callback disabled */ +#define USE_HAL_UART_REGISTER_CALLBACKS 0U /* UART register callback disabled */ +#define USE_HAL_USART_REGISTER_CALLBACKS 0U /* USART register callback disabled */ +#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U /* WWDG register callback disabled */ + +/* ########################## Assert Selection ############################## */ +/** + * @brief Uncomment the line below to expanse the "assert_param" macro in the + * HAL drivers code + */ +/* #define USE_FULL_ASSERT 1U */ + +/* ################## Ethernet peripheral configuration ##################### */ + +/* Section 1 : Ethernet peripheral configuration */ + +/* MAC ADDRESS: MAC_ADDR0:MAC_ADDR1:MAC_ADDR2:MAC_ADDR3:MAC_ADDR4:MAC_ADDR5 */ +#define MAC_ADDR0 2U +#define MAC_ADDR1 0U +#define MAC_ADDR2 0U +#define MAC_ADDR3 0U +#define MAC_ADDR4 0U +#define MAC_ADDR5 0U + +/* Definition of the Ethernet driver buffers size and count */ +#define ETH_RX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for receive */ +#define ETH_TX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for transmit */ +#define ETH_RXBUFNB ((uint32_t)4U) /* 4 Rx buffers of size ETH_RX_BUF_SIZE */ +#define ETH_TXBUFNB ((uint32_t)4U) /* 4 Tx buffers of size ETH_TX_BUF_SIZE */ + +/* Section 2: PHY configuration section */ + +/* LAN8742A_PHY_ADDRESS Address*/ +#define LAN8742A_PHY_ADDRESS 1U +/* PHY Reset delay these values are based on a 1 ms Systick interrupt*/ +#define PHY_RESET_DELAY ((uint32_t)0x000000FFU) +/* PHY Configuration delay */ +#define PHY_CONFIG_DELAY ((uint32_t)0x00000FFFU) + +#define PHY_READ_TO ((uint32_t)0x0000FFFFU) +#define PHY_WRITE_TO ((uint32_t)0x0000FFFFU) + +/* Section 3: Common PHY Registers */ + +#define PHY_BCR ((uint16_t)0x00U) /*!< Transceiver Basic Control Register */ +#define PHY_BSR ((uint16_t)0x01U) /*!< Transceiver Basic Status Register */ + +#define PHY_RESET ((uint16_t)0x8000U) /*!< PHY Reset */ +#define PHY_LOOPBACK ((uint16_t)0x4000U) /*!< Select loop-back mode */ +#define PHY_FULLDUPLEX_100M ((uint16_t)0x2100U) /*!< Set the full-duplex mode at 100 Mb/s */ +#define PHY_HALFDUPLEX_100M ((uint16_t)0x2000U) /*!< Set the half-duplex mode at 100 Mb/s */ +#define PHY_FULLDUPLEX_10M ((uint16_t)0x0100U) /*!< Set the full-duplex mode at 10 Mb/s */ +#define PHY_HALFDUPLEX_10M ((uint16_t)0x0000U) /*!< Set the half-duplex mode at 10 Mb/s */ +#define PHY_AUTONEGOTIATION ((uint16_t)0x1000U) /*!< Enable auto-negotiation function */ +#define PHY_RESTART_AUTONEGOTIATION ((uint16_t)0x0200U) /*!< Restart auto-negotiation function */ +#define PHY_POWERDOWN ((uint16_t)0x0800U) /*!< Select the power down mode */ +#define PHY_ISOLATE ((uint16_t)0x0400U) /*!< Isolate PHY from MII */ + +#define PHY_AUTONEGO_COMPLETE ((uint16_t)0x0020U) /*!< Auto-Negotiation process completed */ +#define PHY_LINKED_STATUS ((uint16_t)0x0004U) /*!< Valid link established */ +#define PHY_JABBER_DETECTION ((uint16_t)0x0002U) /*!< Jabber condition detected */ + +/* Section 4: Extended PHY Registers */ +#define PHY_SR ((uint16_t)0x1FU) /*!< PHY status register Offset */ + +#define PHY_SPEED_STATUS ((uint16_t)0x0004U) /*!< PHY Speed mask */ +#define PHY_DUPLEX_STATUS ((uint16_t)0x0010U) /*!< PHY Duplex mask */ + +#define PHY_ISFR ((uint16_t)0x001DU) /*!< PHY Interrupt Source Flag register Offset */ +#define PHY_ISFR_INT4 ((uint16_t)0x000BU) /*!< PHY Link down inturrupt */ + +/* ################## SPI peripheral configuration ########################## */ + +/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver +* Activated: CRC code is present inside driver +* Deactivated: CRC code cleaned from driver +*/ + +#define USE_SPI_CRC 0U + +/* Includes ------------------------------------------------------------------*/ +/** + * @brief Include module's header file + */ + +#ifdef HAL_RCC_MODULE_ENABLED + #include "stm32f4xx_hal_rcc.h" +#endif /* HAL_RCC_MODULE_ENABLED */ + +#ifdef HAL_GPIO_MODULE_ENABLED + #include "stm32f4xx_hal_gpio.h" +#endif /* HAL_GPIO_MODULE_ENABLED */ + +#ifdef HAL_EXTI_MODULE_ENABLED + #include "stm32f4xx_hal_exti.h" +#endif /* HAL_EXTI_MODULE_ENABLED */ + +#ifdef HAL_DMA_MODULE_ENABLED + #include "stm32f4xx_hal_dma.h" +#endif /* HAL_DMA_MODULE_ENABLED */ + +#ifdef HAL_CORTEX_MODULE_ENABLED + #include "stm32f4xx_hal_cortex.h" +#endif /* HAL_CORTEX_MODULE_ENABLED */ + +#ifdef HAL_ADC_MODULE_ENABLED + #include "stm32f4xx_hal_adc.h" +#endif /* HAL_ADC_MODULE_ENABLED */ + +#ifdef HAL_CAN_MODULE_ENABLED + #include "stm32f4xx_hal_can.h" +#endif /* HAL_CAN_MODULE_ENABLED */ + +#ifdef HAL_CAN_LEGACY_MODULE_ENABLED + #include "stm32f4xx_hal_can_legacy.h" +#endif /* HAL_CAN_LEGACY_MODULE_ENABLED */ + +#ifdef HAL_CRC_MODULE_ENABLED + #include "stm32f4xx_hal_crc.h" +#endif /* HAL_CRC_MODULE_ENABLED */ + +#ifdef HAL_CRYP_MODULE_ENABLED + #include "stm32f4xx_hal_cryp.h" +#endif /* HAL_CRYP_MODULE_ENABLED */ + +#ifdef HAL_DMA2D_MODULE_ENABLED + #include "stm32f4xx_hal_dma2d.h" +#endif /* HAL_DMA2D_MODULE_ENABLED */ + +#ifdef HAL_DAC_MODULE_ENABLED + #include "stm32f4xx_hal_dac.h" +#endif /* HAL_DAC_MODULE_ENABLED */ + +#ifdef HAL_DCMI_MODULE_ENABLED + #include "stm32f4xx_hal_dcmi.h" +#endif /* HAL_DCMI_MODULE_ENABLED */ + +#ifdef HAL_ETH_MODULE_ENABLED + #include "stm32f4xx_hal_eth.h" +#endif /* HAL_ETH_MODULE_ENABLED */ + +#ifdef HAL_FLASH_MODULE_ENABLED + #include "stm32f4xx_hal_flash.h" +#endif /* HAL_FLASH_MODULE_ENABLED */ + +#ifdef HAL_SRAM_MODULE_ENABLED + #include "stm32f4xx_hal_sram.h" +#endif /* HAL_SRAM_MODULE_ENABLED */ + +#ifdef HAL_NOR_MODULE_ENABLED + #include "stm32f4xx_hal_nor.h" +#endif /* HAL_NOR_MODULE_ENABLED */ + +#ifdef HAL_NAND_MODULE_ENABLED + #include "stm32f4xx_hal_nand.h" +#endif /* HAL_NAND_MODULE_ENABLED */ + +#ifdef HAL_PCCARD_MODULE_ENABLED + #include "stm32f4xx_hal_pccard.h" +#endif /* HAL_PCCARD_MODULE_ENABLED */ + +#ifdef HAL_SDRAM_MODULE_ENABLED + #include "stm32f4xx_hal_sdram.h" +#endif /* HAL_SDRAM_MODULE_ENABLED */ + +#ifdef HAL_HASH_MODULE_ENABLED + #include "stm32f4xx_hal_hash.h" +#endif /* HAL_HASH_MODULE_ENABLED */ + +#ifdef HAL_I2C_MODULE_ENABLED + #include "stm32f4xx_hal_i2c.h" +#endif /* HAL_I2C_MODULE_ENABLED */ + +#ifdef HAL_SMBUS_MODULE_ENABLED + #include "stm32f4xx_hal_smbus.h" +#endif /* HAL_SMBUS_MODULE_ENABLED */ + +#ifdef HAL_I2S_MODULE_ENABLED + #include "stm32f4xx_hal_i2s.h" +#endif /* HAL_I2S_MODULE_ENABLED */ + +#ifdef HAL_IWDG_MODULE_ENABLED + #include "stm32f4xx_hal_iwdg.h" +#endif /* HAL_IWDG_MODULE_ENABLED */ + +#ifdef HAL_LTDC_MODULE_ENABLED + #include "stm32f4xx_hal_ltdc.h" +#endif /* HAL_LTDC_MODULE_ENABLED */ + +#ifdef HAL_PWR_MODULE_ENABLED + #include "stm32f4xx_hal_pwr.h" +#endif /* HAL_PWR_MODULE_ENABLED */ + +#ifdef HAL_RNG_MODULE_ENABLED + #include "stm32f4xx_hal_rng.h" +#endif /* HAL_RNG_MODULE_ENABLED */ + +#ifdef HAL_RTC_MODULE_ENABLED + #include "stm32f4xx_hal_rtc.h" +#endif /* HAL_RTC_MODULE_ENABLED */ + +#ifdef HAL_SAI_MODULE_ENABLED + #include "stm32f4xx_hal_sai.h" +#endif /* HAL_SAI_MODULE_ENABLED */ + +#ifdef HAL_SD_MODULE_ENABLED + #include "stm32f4xx_hal_sd.h" +#endif /* HAL_SD_MODULE_ENABLED */ + +#ifdef HAL_SPI_MODULE_ENABLED + #include "stm32f4xx_hal_spi.h" +#endif /* HAL_SPI_MODULE_ENABLED */ + +#ifdef HAL_TIM_MODULE_ENABLED + #include "stm32f4xx_hal_tim.h" +#endif /* HAL_TIM_MODULE_ENABLED */ + +#ifdef HAL_UART_MODULE_ENABLED + #include "stm32f4xx_hal_uart.h" +#endif /* HAL_UART_MODULE_ENABLED */ + +#ifdef HAL_USART_MODULE_ENABLED + #include "stm32f4xx_hal_usart.h" +#endif /* HAL_USART_MODULE_ENABLED */ + +#ifdef HAL_IRDA_MODULE_ENABLED + #include "stm32f4xx_hal_irda.h" +#endif /* HAL_IRDA_MODULE_ENABLED */ + +#ifdef HAL_SMARTCARD_MODULE_ENABLED + #include "stm32f4xx_hal_smartcard.h" +#endif /* HAL_SMARTCARD_MODULE_ENABLED */ + +#ifdef HAL_WWDG_MODULE_ENABLED + #include "stm32f4xx_hal_wwdg.h" +#endif /* HAL_WWDG_MODULE_ENABLED */ + +#ifdef HAL_PCD_MODULE_ENABLED + #include "stm32f4xx_hal_pcd.h" +#endif /* HAL_PCD_MODULE_ENABLED */ + +#ifdef HAL_HCD_MODULE_ENABLED + #include "stm32f4xx_hal_hcd.h" +#endif /* HAL_HCD_MODULE_ENABLED */ + +#ifdef HAL_DSI_MODULE_ENABLED + #include "stm32f4xx_hal_dsi.h" +#endif /* HAL_DSI_MODULE_ENABLED */ + +#ifdef HAL_QSPI_MODULE_ENABLED + #include "stm32f4xx_hal_qspi.h" +#endif /* HAL_QSPI_MODULE_ENABLED */ + +#ifdef HAL_CEC_MODULE_ENABLED + #include "stm32f4xx_hal_cec.h" +#endif /* HAL_CEC_MODULE_ENABLED */ + +#ifdef HAL_FMPI2C_MODULE_ENABLED + #include "stm32f4xx_hal_fmpi2c.h" +#endif /* HAL_FMPI2C_MODULE_ENABLED */ + +#ifdef HAL_SPDIFRX_MODULE_ENABLED + #include "stm32f4xx_hal_spdifrx.h" +#endif /* HAL_SPDIFRX_MODULE_ENABLED */ + +#ifdef HAL_DFSDM_MODULE_ENABLED + #include "stm32f4xx_hal_dfsdm.h" +#endif /* HAL_DFSDM_MODULE_ENABLED */ + +#ifdef HAL_LPTIM_MODULE_ENABLED + #include "stm32f4xx_hal_lptim.h" +#endif /* HAL_LPTIM_MODULE_ENABLED */ + +#ifdef HAL_MMC_MODULE_ENABLED + #include "stm32f4xx_hal_mmc.h" +#endif /* HAL_MMC_MODULE_ENABLED */ + +/* Exported macro ------------------------------------------------------------*/ +#ifdef USE_FULL_ASSERT +/** + * @brief The assert_param macro is used for function's parameters check. + * @param expr If expr is false, it calls assert_failed function + * which reports the name of the source file and the source + * line number of the call that failed. + * If expr is true, it returns no value. + * @retval None + */ + #define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__)) +/* Exported functions ------------------------------------------------------- */ + void assert_failed(uint8_t* file, uint32_t line); +#else + #define assert_param(expr) ((void)0U) +#endif /* USE_FULL_ASSERT */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F4xx_HAL_CONF_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f407-lxb/board/CubeMX_Config/Inc/stm32f4xx_it.h b/bsp/stm32/stm32f407-lxb/board/CubeMX_Config/Inc/stm32f4xx_it.h new file mode 100644 index 000000000000..8c1f4cf3e14e --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/board/CubeMX_Config/Inc/stm32f4xx_it.h @@ -0,0 +1,87 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32f4xx_it.h + * @brief This file contains the headers of the interrupt handlers. + ****************************************************************************** + * + * COPYRIGHT(c) 2018 STMicroelectronics + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of STMicroelectronics nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F4xx_IT_H +#define __STM32F4xx_IT_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Exported types ------------------------------------------------------------*/ +/* USER CODE BEGIN ET */ + +/* USER CODE END ET */ + +/* Exported constants --------------------------------------------------------*/ +/* USER CODE BEGIN EC */ + +/* USER CODE END EC */ + +/* Exported macro ------------------------------------------------------------*/ +/* USER CODE BEGIN EM */ + +/* USER CODE END EM */ + +/* Exported functions prototypes ---------------------------------------------*/ +void NMI_Handler(void); +void HardFault_Handler(void); +void MemManage_Handler(void); +void BusFault_Handler(void); +void UsageFault_Handler(void); +void SVC_Handler(void); +void DebugMon_Handler(void); +void PendSV_Handler(void); +void SysTick_Handler(void); +void SPI1_IRQHandler(void); +void USART1_IRQHandler(void); +void OTG_FS_IRQHandler(void); +/* USER CODE BEGIN EFP */ + +/* USER CODE END EFP */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F4xx_IT_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f407-lxb/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c b/bsp/stm32/stm32f407-lxb/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c new file mode 100644 index 000000000000..baba93bce074 --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c @@ -0,0 +1,1106 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * File Name : stm32f4xx_hal_msp.c + * Description : This file provides code for the MSP Initialization + * and de-Initialization codes. + ****************************************************************************** + ** This notice applies to any and all portions of this file + * that are not between comment pairs USER CODE BEGIN and + * USER CODE END. Other portions of this file, whether + * inserted by the user or by software development tools + * are owned by their respective copyright owners. + * + * COPYRIGHT(c) 2018 STMicroelectronics + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of STMicroelectronics nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +/* USER CODE BEGIN Includes */ +#include +/* 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 */ + +void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); + /** + * 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 DAC MSP Initialization +* This function configures the hardware resources used in this example +* @param hdac: DAC handle pointer +* @retval None +*/ +void HAL_DAC_MspInit(DAC_HandleTypeDef* hdac) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(hdac->Instance==DAC) + { + /* USER CODE BEGIN DAC_MspInit 0 */ + + /* USER CODE END DAC_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_DAC_CLK_ENABLE(); + + __HAL_RCC_GPIOA_CLK_ENABLE(); + /**DAC GPIO Configuration + PA4 ------> DAC_OUT1 + PA5 ------> DAC_OUT2 + */ + GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5; + GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /* USER CODE BEGIN DAC_MspInit 1 */ + + /* USER CODE END DAC_MspInit 1 */ + } + +} + +/** +* @brief DAC MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param hdac: DAC handle pointer +* @retval None +*/ +void HAL_DAC_MspDeInit(DAC_HandleTypeDef* hdac) +{ + if(hdac->Instance==DAC) + { + /* USER CODE BEGIN DAC_MspDeInit 0 */ + + /* USER CODE END DAC_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_DAC_CLK_DISABLE(); + + /**DAC GPIO Configuration + PA4 ------> DAC_OUT1 + PA5 ------> DAC_OUT2 + */ + HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4|GPIO_PIN_5); + + /* USER CODE BEGIN DAC_MspDeInit 1 */ + + /* USER CODE END DAC_MspDeInit 1 */ + } + +} + +/** +* @brief ETH MSP Initialization +* This function configures the hardware resources used in this example +* @param heth: ETH handle pointer +* @retval None +*/ +void HAL_ETH_MspInit(ETH_HandleTypeDef* heth) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(heth->Instance==ETH) + { + /* USER CODE BEGIN ETH_MspInit 0 */ + + /* USER CODE END ETH_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_ETH_CLK_ENABLE(); + + __HAL_RCC_GPIOC_CLK_ENABLE(); + __HAL_RCC_GPIOA_CLK_ENABLE(); + __HAL_RCC_GPIOG_CLK_ENABLE(); + /**ETH GPIO Configuration + PC1 ------> ETH_MDC + PA1 ------> ETH_REF_CLK + PA2 ------> ETH_MDIO + PA7 ------> ETH_CRS_DV + PC4 ------> ETH_RXD0 + PC5 ------> ETH_RXD1 + PG11 ------> ETH_TX_EN + PG13 ------> ETH_TXD0 + PG14 ------> ETH_TXD1 + */ + GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF11_ETH; + HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_7; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF11_ETH; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_13|GPIO_PIN_14; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF11_ETH; + HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); + + /* USER CODE BEGIN ETH_MspInit 1 */ + + /* USER CODE END ETH_MspInit 1 */ + } + +} + +/** +* @brief ETH MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param heth: ETH handle pointer +* @retval None +*/ +void HAL_ETH_MspDeInit(ETH_HandleTypeDef* heth) +{ + if(heth->Instance==ETH) + { + /* USER CODE BEGIN ETH_MspDeInit 0 */ + + /* USER CODE END ETH_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_ETH_CLK_DISABLE(); + + /**ETH GPIO Configuration + PC1 ------> ETH_MDC + PA1 ------> ETH_REF_CLK + PA2 ------> ETH_MDIO + PA7 ------> ETH_CRS_DV + PC4 ------> ETH_RXD0 + PC5 ------> ETH_RXD1 + PG11 ------> ETH_TX_EN + PG13 ------> ETH_TXD0 + PG14 ------> ETH_TXD1 + */ + HAL_GPIO_DeInit(GPIOC, GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5); + + HAL_GPIO_DeInit(GPIOA, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_7); + + HAL_GPIO_DeInit(GPIOG, GPIO_PIN_11|GPIO_PIN_13|GPIO_PIN_14); + + /* USER CODE BEGIN ETH_MspDeInit 1 */ + + /* USER CODE END ETH_MspDeInit 1 */ + } + +} + +/** +* @brief RTC MSP Initialization +* This function configures the hardware resources used in this example +* @param hrtc: RTC handle pointer +* @retval None +*/ +void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc) +{ + if(hrtc->Instance==RTC) + { + /* USER CODE BEGIN RTC_MspInit 0 */ + + /* USER CODE END RTC_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_RTC_ENABLE(); + /* USER CODE BEGIN RTC_MspInit 1 */ + + /* USER CODE END RTC_MspInit 1 */ + } + +} + +/** +* @brief RTC MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param hrtc: RTC handle pointer +* @retval None +*/ +void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc) +{ + if(hrtc->Instance==RTC) + { + /* USER CODE BEGIN RTC_MspDeInit 0 */ + + /* USER CODE END RTC_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_RTC_DISABLE(); + /* USER CODE BEGIN RTC_MspDeInit 1 */ + + /* USER CODE END RTC_MspDeInit 1 */ + } + +} + +/** +* @brief SD MSP Initialization +* This function configures the hardware resources used in this example +* @param hsd: SD handle pointer +* @retval None +*/ +void HAL_SD_MspInit(SD_HandleTypeDef* hsd) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(hsd->Instance==SDIO) + { + /* USER CODE BEGIN SDIO_MspInit 0 */ + + /* USER CODE END SDIO_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_SDIO_CLK_ENABLE(); + + __HAL_RCC_GPIOC_CLK_ENABLE(); + __HAL_RCC_GPIOD_CLK_ENABLE(); + /**SDIO GPIO Configuration + PC8 ------> SDIO_D0 + PC9 ------> SDIO_D1 + PC10 ------> SDIO_D2 + PC11 ------> SDIO_D3 + PC12 ------> SDIO_CK + PD2 ------> SDIO_CMD + */ + GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11 + |GPIO_PIN_12; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF12_SDIO; + HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = GPIO_PIN_2; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF12_SDIO; + HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); + + /* USER CODE BEGIN SDIO_MspInit 1 */ + + /* USER CODE END SDIO_MspInit 1 */ + } + +} + +/** +* @brief SD MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param hsd: SD handle pointer +* @retval None +*/ +void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd) +{ + if(hsd->Instance==SDIO) + { + /* USER CODE BEGIN SDIO_MspDeInit 0 */ + + /* USER CODE END SDIO_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_SDIO_CLK_DISABLE(); + + /**SDIO GPIO Configuration + PC8 ------> SDIO_D0 + PC9 ------> SDIO_D1 + PC10 ------> SDIO_D2 + PC11 ------> SDIO_D3 + PC12 ------> SDIO_CK + PD2 ------> SDIO_CMD + */ + HAL_GPIO_DeInit(GPIOC, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11 + |GPIO_PIN_12); + + HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2); + + /* USER CODE BEGIN SDIO_MspDeInit 1 */ + + /* USER CODE END SDIO_MspDeInit 1 */ + } + +} + +/** +* @brief SPI MSP Initialization +* This function configures the hardware resources used in this example +* @param hspi: SPI handle pointer +* @retval None +*/ +void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(hspi->Instance==SPI1) + { + /* USER CODE BEGIN SPI1_MspInit 0 */ + + /* USER CODE END SPI1_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_SPI1_CLK_ENABLE(); + + __HAL_RCC_GPIOB_CLK_ENABLE(); + /**SPI1 GPIO Configuration + PB3 ------> SPI1_SCK + PB4 ------> SPI1_MISO + PB5 ------> SPI1_MOSI + */ + GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF5_SPI1; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + /* SPI1 interrupt Init */ + HAL_NVIC_SetPriority(SPI1_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(SPI1_IRQn); + /* USER CODE BEGIN SPI1_MspInit 1 */ + + /* USER CODE END SPI1_MspInit 1 */ + } + else if(hspi->Instance==SPI2) + { + /* USER CODE BEGIN SPI2_MspInit 0 */ + + /* USER CODE END SPI2_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_SPI2_CLK_ENABLE(); + + __HAL_RCC_GPIOC_CLK_ENABLE(); + __HAL_RCC_GPIOB_CLK_ENABLE(); + /**SPI2 GPIO Configuration + PC2 ------> SPI2_MISO + PC3 ------> SPI2_MOSI + PB13 ------> SPI2_SCK + */ + GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF5_SPI2; + HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = GPIO_PIN_13; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF5_SPI2; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + /* USER CODE BEGIN SPI2_MspInit 1 */ + + /* USER CODE END SPI2_MspInit 1 */ + } + +} + +/** +* @brief SPI MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param hspi: SPI handle pointer +* @retval None +*/ +void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi) +{ + if(hspi->Instance==SPI1) + { + /* USER CODE BEGIN SPI1_MspDeInit 0 */ + + /* USER CODE END SPI1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_SPI1_CLK_DISABLE(); + + /**SPI1 GPIO Configuration + PB3 ------> SPI1_SCK + PB4 ------> SPI1_MISO + PB5 ------> SPI1_MOSI + */ + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5); + + /* SPI1 interrupt DeInit */ + HAL_NVIC_DisableIRQ(SPI1_IRQn); + /* USER CODE BEGIN SPI1_MspDeInit 1 */ + + /* USER CODE END SPI1_MspDeInit 1 */ + } + else if(hspi->Instance==SPI2) + { + /* USER CODE BEGIN SPI2_MspDeInit 0 */ + + /* USER CODE END SPI2_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_SPI2_CLK_DISABLE(); + + /**SPI2 GPIO Configuration + PC2 ------> SPI2_MISO + PC3 ------> SPI2_MOSI + PB13 ------> SPI2_SCK + */ + HAL_GPIO_DeInit(GPIOC, GPIO_PIN_2|GPIO_PIN_3); + + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13); + + /* USER CODE BEGIN SPI2_MspDeInit 1 */ + + /* USER CODE END SPI2_MspDeInit 1 */ + } + +} + +/** +* @brief TIM_Base MSP Initialization +* This function configures the hardware resources used in this example +* @param htim_base: TIM_Base handle pointer +* @retval None +*/ +void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) +{ + if(htim_base->Instance==TIM2) + { + /* USER CODE BEGIN TIM2_MspInit 0 */ + + /* USER CODE END TIM2_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_TIM2_CLK_ENABLE(); + /* USER CODE BEGIN TIM2_MspInit 1 */ + + /* USER CODE END TIM2_MspInit 1 */ + } + else if(htim_base->Instance==TIM11) + { + /* USER CODE BEGIN TIM11_MspInit 0 */ + + /* USER CODE END TIM11_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_TIM11_CLK_ENABLE(); + /* USER CODE BEGIN TIM11_MspInit 1 */ + + /* USER CODE END TIM11_MspInit 1 */ + } + else if(htim_base->Instance==TIM13) + { + /* USER CODE BEGIN TIM13_MspInit 0 */ + + /* USER CODE END TIM13_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_TIM13_CLK_ENABLE(); + /* USER CODE BEGIN TIM13_MspInit 1 */ + + /* USER CODE END TIM13_MspInit 1 */ + } + else if(htim_base->Instance==TIM14) + { + /* USER CODE BEGIN TIM14_MspInit 0 */ + + /* USER CODE END TIM14_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_TIM14_CLK_ENABLE(); + /* USER CODE BEGIN TIM14_MspInit 1 */ + + /* USER CODE END TIM14_MspInit 1 */ + } + +} + +/** +* @brief TIM_Encoder MSP Initialization +* This function configures the hardware resources used in this example +* @param htim_encoder: TIM_Encoder handle pointer +* @retval None +*/ +void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* htim_encoder) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(htim_encoder->Instance==TIM4) + { + /* USER CODE BEGIN TIM4_MspInit 0 */ + + /* USER CODE END TIM4_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_TIM4_CLK_ENABLE(); + + __HAL_RCC_GPIOB_CLK_ENABLE(); + /**TIM4 GPIO Configuration + PB6 ------> TIM4_CH1 + PB7 ------> TIM4_CH2 + */ + GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + GPIO_InitStruct.Alternate = GPIO_AF2_TIM4; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + /* USER CODE BEGIN TIM4_MspInit 1 */ + + /* USER CODE END TIM4_MspInit 1 */ + } + +} + +void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(htim->Instance==TIM2) + { + /* USER CODE BEGIN TIM2_MspPostInit 0 */ + + /* USER CODE END TIM2_MspPostInit 0 */ + + __HAL_RCC_GPIOA_CLK_ENABLE(); + /**TIM2 GPIO Configuration + PA3 ------> TIM2_CH4 + */ + GPIO_InitStruct.Pin = GPIO_PIN_3; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + GPIO_InitStruct.Alternate = GPIO_AF1_TIM2; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /* USER CODE BEGIN TIM2_MspPostInit 1 */ + + /* USER CODE END TIM2_MspPostInit 1 */ + } + +} +/** +* @brief TIM_Base MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param htim_base: TIM_Base handle pointer +* @retval None +*/ +void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base) +{ + if(htim_base->Instance==TIM2) + { + /* USER CODE BEGIN TIM2_MspDeInit 0 */ + + /* USER CODE END TIM2_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_TIM2_CLK_DISABLE(); + /* USER CODE BEGIN TIM2_MspDeInit 1 */ + + /* USER CODE END TIM2_MspDeInit 1 */ + } + else if(htim_base->Instance==TIM11) + { + /* USER CODE BEGIN TIM11_MspDeInit 0 */ + + /* USER CODE END TIM11_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_TIM11_CLK_DISABLE(); + /* USER CODE BEGIN TIM11_MspDeInit 1 */ + + /* USER CODE END TIM11_MspDeInit 1 */ + } + else if(htim_base->Instance==TIM13) + { + /* USER CODE BEGIN TIM13_MspDeInit 0 */ + + /* USER CODE END TIM13_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_TIM13_CLK_DISABLE(); + /* USER CODE BEGIN TIM13_MspDeInit 1 */ + + /* USER CODE END TIM13_MspDeInit 1 */ + } + else if(htim_base->Instance==TIM14) + { + /* USER CODE BEGIN TIM14_MspDeInit 0 */ + + /* USER CODE END TIM14_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_TIM14_CLK_DISABLE(); + /* USER CODE BEGIN TIM14_MspDeInit 1 */ + + /* USER CODE END TIM14_MspDeInit 1 */ + } + +} + +/** +* @brief TIM_Encoder MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param htim_encoder: TIM_Encoder handle pointer +* @retval None +*/ +void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef* htim_encoder) +{ + if(htim_encoder->Instance==TIM4) + { + /* USER CODE BEGIN TIM4_MspDeInit 0 */ + + /* USER CODE END TIM4_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_TIM4_CLK_DISABLE(); + + /**TIM4 GPIO Configuration + PB6 ------> TIM4_CH1 + PB7 ------> TIM4_CH2 + */ + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6|GPIO_PIN_7); + + /* USER CODE BEGIN TIM4_MspDeInit 1 */ + + /* USER CODE END TIM4_MspDeInit 1 */ + } + +} + +/** +* @brief UART MSP Initialization +* This function configures the hardware resources used in this example +* @param huart: UART handle pointer +* @retval None +*/ +void HAL_UART_MspInit(UART_HandleTypeDef* huart) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(huart->Instance==USART1) + { + /* USER CODE BEGIN USART1_MspInit 0 */ + + /* USER CODE END USART1_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_USART1_CLK_ENABLE(); + + __HAL_RCC_GPIOA_CLK_ENABLE(); + /**USART1 GPIO Configuration + PA9 ------> USART1_TX + PA10 ------> USART1_RX + */ + GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_PULLUP; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF7_USART1; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /* USART1 interrupt Init */ + HAL_NVIC_SetPriority(USART1_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(USART1_IRQn); + /* USER CODE BEGIN USART1_MspInit 1 */ + + /* USER CODE END USART1_MspInit 1 */ + } + else if(huart->Instance==USART3) + { + /* USER CODE BEGIN USART3_MspInit 0 */ + + /* USER CODE END USART3_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_USART3_CLK_ENABLE(); + + __HAL_RCC_GPIOB_CLK_ENABLE(); + /**USART3 GPIO Configuration + PB10 ------> USART3_TX + PB11 ------> USART3_RX + */ + GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_PULLUP; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF7_USART3; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + /* USER CODE BEGIN USART3_MspInit 1 */ + + /* USER CODE END USART3_MspInit 1 */ + } + +} + +/** +* @brief UART MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param huart: UART handle pointer +* @retval None +*/ +void HAL_UART_MspDeInit(UART_HandleTypeDef* huart) +{ + if(huart->Instance==USART1) + { + /* USER CODE BEGIN USART1_MspDeInit 0 */ + + /* USER CODE END USART1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_USART1_CLK_DISABLE(); + + /**USART1 GPIO Configuration + PA9 ------> USART1_TX + PA10 ------> USART1_RX + */ + HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10); + + /* USART1 interrupt DeInit */ + HAL_NVIC_DisableIRQ(USART1_IRQn); + /* USER CODE BEGIN USART1_MspDeInit 1 */ + + /* USER CODE END USART1_MspDeInit 1 */ + } + else if(huart->Instance==USART3) + { + /* USER CODE BEGIN USART3_MspDeInit 0 */ + + /* USER CODE END USART3_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_USART3_CLK_DISABLE(); + + /**USART3 GPIO Configuration + PB10 ------> USART3_TX + PB11 ------> USART3_RX + */ + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10|GPIO_PIN_11); + + /* USER CODE BEGIN USART3_MspDeInit 1 */ + + /* USER CODE END USART3_MspDeInit 1 */ + } + +} + +/** +* @brief PCD MSP Initialization +* This function configures the hardware resources used in this example +* @param hpcd: PCD handle pointer +* @retval None +*/ +void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(hpcd->Instance==USB_OTG_FS) + { + /* USER CODE BEGIN USB_OTG_FS_MspInit 0 */ + + /* USER CODE END USB_OTG_FS_MspInit 0 */ + + __HAL_RCC_GPIOA_CLK_ENABLE(); + /**USB_OTG_FS GPIO Configuration + PA11 ------> USB_OTG_FS_DM + PA12 ------> USB_OTG_FS_DP + */ + GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /* Peripheral clock enable */ + __HAL_RCC_USB_OTG_FS_CLK_ENABLE(); + /* USB_OTG_FS interrupt Init */ + HAL_NVIC_SetPriority(OTG_FS_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(OTG_FS_IRQn); + /* USER CODE BEGIN USB_OTG_FS_MspInit 1 */ + + /* USER CODE END USB_OTG_FS_MspInit 1 */ + } + +} + +/** +* @brief PCD MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param hpcd: PCD handle pointer +* @retval None +*/ +void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd) +{ + if(hpcd->Instance==USB_OTG_FS) + { + /* USER CODE BEGIN USB_OTG_FS_MspDeInit 0 */ + + /* USER CODE END USB_OTG_FS_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_USB_OTG_FS_CLK_DISABLE(); + + /**USB_OTG_FS GPIO Configuration + PA11 ------> USB_OTG_FS_DM + PA12 ------> USB_OTG_FS_DP + */ + HAL_GPIO_DeInit(GPIOA, GPIO_PIN_11|GPIO_PIN_12); + + /* USB_OTG_FS interrupt DeInit */ + HAL_NVIC_DisableIRQ(OTG_FS_IRQn); + /* USER CODE BEGIN USB_OTG_FS_MspDeInit 1 */ + + /* USER CODE END USB_OTG_FS_MspDeInit 1 */ + } + +} + +static uint32_t FSMC_Initialized = 0; + +static void HAL_FSMC_MspInit(void) +{ + /* USER CODE BEGIN FSMC_MspInit 0 */ + + /* USER CODE END FSMC_MspInit 0 */ + GPIO_InitTypeDef GPIO_InitStruct ={0}; + if (FSMC_Initialized) + { + return; + } + FSMC_Initialized = 1; + + /* Peripheral clock enable */ + __HAL_RCC_FSMC_CLK_ENABLE(); + + /** FSMC GPIO Configuration + PF0 ------> FSMC_A0 + PF1 ------> FSMC_A1 + PF2 ------> FSMC_A2 + PF3 ------> FSMC_A3 + PF4 ------> FSMC_A4 + PF5 ------> FSMC_A5 + PF12 ------> FSMC_A6 + PF13 ------> FSMC_A7 + PF14 ------> FSMC_A8 + PF15 ------> FSMC_A9 + PG0 ------> FSMC_A10 + PG1 ------> FSMC_A11 + PE7 ------> FSMC_D4 + PE8 ------> FSMC_D5 + PE9 ------> FSMC_D6 + PE10 ------> FSMC_D7 + PE11 ------> FSMC_D8 + PE12 ------> FSMC_D9 + PE13 ------> FSMC_D10 + PE14 ------> FSMC_D11 + PE15 ------> FSMC_D12 + PD8 ------> FSMC_D13 + PD9 ------> FSMC_D14 + PD10 ------> FSMC_D15 + PD11 ------> FSMC_A16 + PD12 ------> FSMC_A17 + PD13 ------> FSMC_A18 + PD14 ------> FSMC_D0 + PD15 ------> FSMC_D1 + PG2 ------> FSMC_A12 + PG3 ------> FSMC_A13 + PG4 ------> FSMC_A14 + PG5 ------> FSMC_A15 + PD0 ------> FSMC_D2 + PD1 ------> FSMC_D3 + PD4 ------> FSMC_NOE + PD5 ------> FSMC_NWE + PG10 ------> FSMC_NE3 + PG12 ------> FSMC_NE4 + PE0 ------> FSMC_NBL0 + PE1 ------> FSMC_NBL1 + */ + GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3 + |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_13 + |GPIO_PIN_14|GPIO_PIN_15; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF12_FSMC; + HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3 + |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_10|GPIO_PIN_12; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF12_FSMC; + HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10 + |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14 + |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF12_FSMC; + HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11 + |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15 + |GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF12_FSMC; + HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); + + /* USER CODE BEGIN FSMC_MspInit 1 */ + + /* USER CODE END FSMC_MspInit 1 */ +} + +void HAL_SRAM_MspInit(SRAM_HandleTypeDef* hsram) +{ + /* USER CODE BEGIN SRAM_MspInit 0 */ + + /* USER CODE END SRAM_MspInit 0 */ + HAL_FSMC_MspInit(); + /* USER CODE BEGIN SRAM_MspInit 1 */ + + /* USER CODE END SRAM_MspInit 1 */ +} + +static uint32_t FSMC_DeInitialized = 0; + +static void HAL_FSMC_MspDeInit(void) +{ + /* USER CODE BEGIN FSMC_MspDeInit 0 */ + + /* USER CODE END FSMC_MspDeInit 0 */ + if (FSMC_DeInitialized) + { + return; + } + FSMC_DeInitialized = 1; + /* Peripheral clock enable */ + __HAL_RCC_FSMC_CLK_DISABLE(); + + /** FSMC GPIO Configuration + PF0 ------> FSMC_A0 + PF1 ------> FSMC_A1 + PF2 ------> FSMC_A2 + PF3 ------> FSMC_A3 + PF4 ------> FSMC_A4 + PF5 ------> FSMC_A5 + PF12 ------> FSMC_A6 + PF13 ------> FSMC_A7 + PF14 ------> FSMC_A8 + PF15 ------> FSMC_A9 + PG0 ------> FSMC_A10 + PG1 ------> FSMC_A11 + PE7 ------> FSMC_D4 + PE8 ------> FSMC_D5 + PE9 ------> FSMC_D6 + PE10 ------> FSMC_D7 + PE11 ------> FSMC_D8 + PE12 ------> FSMC_D9 + PE13 ------> FSMC_D10 + PE14 ------> FSMC_D11 + PE15 ------> FSMC_D12 + PD8 ------> FSMC_D13 + PD9 ------> FSMC_D14 + PD10 ------> FSMC_D15 + PD11 ------> FSMC_A16 + PD12 ------> FSMC_A17 + PD13 ------> FSMC_A18 + PD14 ------> FSMC_D0 + PD15 ------> FSMC_D1 + PG2 ------> FSMC_A12 + PG3 ------> FSMC_A13 + PG4 ------> FSMC_A14 + PG5 ------> FSMC_A15 + PD0 ------> FSMC_D2 + PD1 ------> FSMC_D3 + PD4 ------> FSMC_NOE + PD5 ------> FSMC_NWE + PG10 ------> FSMC_NE3 + PG12 ------> FSMC_NE4 + PE0 ------> FSMC_NBL0 + PE1 ------> FSMC_NBL1 + */ + HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3 + |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_13 + |GPIO_PIN_14|GPIO_PIN_15); + + HAL_GPIO_DeInit(GPIOG, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3 + |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_10|GPIO_PIN_12); + + HAL_GPIO_DeInit(GPIOE, GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10 + |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14 + |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1); + + HAL_GPIO_DeInit(GPIOD, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11 + |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15 + |GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5); + + /* USER CODE BEGIN FSMC_MspDeInit 1 */ + + /* USER CODE END FSMC_MspDeInit 1 */ +} + +void HAL_SRAM_MspDeInit(SRAM_HandleTypeDef* hsram) +{ + /* USER CODE BEGIN SRAM_MspDeInit 0 */ + + /* USER CODE END SRAM_MspDeInit 0 */ + HAL_FSMC_MspDeInit(); + /* USER CODE BEGIN SRAM_MspDeInit 1 */ + + /* USER CODE END SRAM_MspDeInit 1 */ +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f407-lxb/board/CubeMX_Config/Src/stm32f4xx_it.c b/bsp/stm32/stm32f407-lxb/board/CubeMX_Config/Src/stm32f4xx_it.c new file mode 100644 index 000000000000..8bf2ff936bce --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/board/CubeMX_Config/Src/stm32f4xx_it.c @@ -0,0 +1,262 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32f4xx_it.c + * @brief Interrupt Service Routines. + ****************************************************************************** + * + * COPYRIGHT(c) 2018 STMicroelectronics + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of STMicroelectronics nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +#include "stm32f4xx_it.h" +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN TD */ + +/* USER CODE END TD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN PD */ + +/* USER CODE END PD */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN PM */ + +/* USER CODE END PM */ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/* External variables --------------------------------------------------------*/ +extern SPI_HandleTypeDef hspi1; +extern UART_HandleTypeDef huart1; +extern PCD_HandleTypeDef hpcd_USB_OTG_FS; +/* USER CODE BEGIN EV */ + +/* USER CODE END EV */ + +/******************************************************************************/ +/* Cortex-M4 Processor Interruption and Exception Handlers */ +/******************************************************************************/ +/** + * @brief This function handles Non maskable interrupt. + */ +void NMI_Handler(void) +{ + /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ + + /* USER CODE END NonMaskableInt_IRQn 0 */ + /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ + + /* USER CODE END NonMaskableInt_IRQn 1 */ +} + +/** + * @brief This function handles Hard fault interrupt. + */ +void HardFault_Handler(void) +{ + /* USER CODE BEGIN HardFault_IRQn 0 */ + + /* USER CODE END HardFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_HardFault_IRQn 0 */ + /* USER CODE END W1_HardFault_IRQn 0 */ + } +} + +/** + * @brief This function handles Memory management fault. + */ +void MemManage_Handler(void) +{ + /* USER CODE BEGIN MemoryManagement_IRQn 0 */ + + /* USER CODE END MemoryManagement_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */ + /* USER CODE END W1_MemoryManagement_IRQn 0 */ + } +} + +/** + * @brief This function handles Pre-fetch fault, memory access fault. + */ +void BusFault_Handler(void) +{ + /* USER CODE BEGIN BusFault_IRQn 0 */ + + /* USER CODE END BusFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_BusFault_IRQn 0 */ + /* USER CODE END W1_BusFault_IRQn 0 */ + } +} + +/** + * @brief This function handles Undefined instruction or illegal state. + */ +void UsageFault_Handler(void) +{ + /* USER CODE BEGIN UsageFault_IRQn 0 */ + + /* USER CODE END UsageFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_UsageFault_IRQn 0 */ + /* USER CODE END W1_UsageFault_IRQn 0 */ + } +} + +/** + * @brief This function handles System service call via SWI instruction. + */ +void SVC_Handler(void) +{ + /* USER CODE BEGIN SVCall_IRQn 0 */ + + /* USER CODE END SVCall_IRQn 0 */ + /* USER CODE BEGIN SVCall_IRQn 1 */ + + /* USER CODE END SVCall_IRQn 1 */ +} + +/** + * @brief This function handles Debug monitor. + */ +void DebugMon_Handler(void) +{ + /* USER CODE BEGIN DebugMonitor_IRQn 0 */ + + /* USER CODE END DebugMonitor_IRQn 0 */ + /* USER CODE BEGIN DebugMonitor_IRQn 1 */ + + /* USER CODE END DebugMonitor_IRQn 1 */ +} + +/** + * @brief This function handles Pendable request for system service. + */ +void PendSV_Handler(void) +{ + /* USER CODE BEGIN PendSV_IRQn 0 */ + + /* USER CODE END PendSV_IRQn 0 */ + /* USER CODE BEGIN PendSV_IRQn 1 */ + + /* USER CODE END PendSV_IRQn 1 */ +} + +/** + * @brief This function handles System tick timer. + */ +void SysTick_Handler(void) +{ + /* USER CODE BEGIN SysTick_IRQn 0 */ + + /* USER CODE END SysTick_IRQn 0 */ + HAL_IncTick(); + /* USER CODE BEGIN SysTick_IRQn 1 */ + + /* USER CODE END SysTick_IRQn 1 */ +} + +/******************************************************************************/ +/* STM32F4xx Peripheral Interrupt Handlers */ +/* Add here the Interrupt Handlers for the used peripherals. */ +/* For the available peripheral interrupt handler names, */ +/* please refer to the startup file (startup_stm32f4xx.s). */ +/******************************************************************************/ + +/** + * @brief This function handles SPI1 global interrupt. + */ +void SPI1_IRQHandler(void) +{ + /* USER CODE BEGIN SPI1_IRQn 0 */ + + /* USER CODE END SPI1_IRQn 0 */ + HAL_SPI_IRQHandler(&hspi1); + /* USER CODE BEGIN SPI1_IRQn 1 */ + + /* USER CODE END SPI1_IRQn 1 */ +} + +/** + * @brief This function handles USART1 global interrupt. + */ +void USART1_IRQHandler(void) +{ + /* USER CODE BEGIN USART1_IRQn 0 */ + + /* USER CODE END USART1_IRQn 0 */ + HAL_UART_IRQHandler(&huart1); + /* USER CODE BEGIN USART1_IRQn 1 */ + + /* USER CODE END USART1_IRQn 1 */ +} + +/** + * @brief This function handles USB On The Go FS global interrupt. + */ +void OTG_FS_IRQHandler(void) +{ + /* USER CODE BEGIN OTG_FS_IRQn 0 */ + /*You can open usb device or usb host, but open both of them is fatal error.*/ + /* USER CODE END OTG_FS_IRQn 0 */ + HAL_PCD_IRQHandler(&hpcd_USB_OTG_FS); + /* USER CODE BEGIN OTG_FS_IRQn 1 */ + + /* USER CODE END OTG_FS_IRQn 1 */ +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f407-lxb/board/Kconfig b/bsp/stm32/stm32f407-lxb/board/Kconfig new file mode 100644 index 000000000000..1926cc201f2e --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/board/Kconfig @@ -0,0 +1,557 @@ +menu "Hardware Drivers Config" + +menu "Onboard Peripheral Drivers" + + config BSP_USING_COM1 + bool "Enable COM1 (uart1)" + select BSP_USING_UART + select BSP_USING_UART1 + default y + + config BSP_USING_COM2 + bool "Enable COM2 (uart2)" + depends on (!BSP_USING_ETH && !BSP_USING_PWM) + select BSP_USING_UART + select BSP_USING_UART2 + default n + + config BSP_USING_COM3 + bool "Enable COM3 (uart3)" + select BSP_USING_UART + select BSP_USING_UART3 + default n + +endmenu + +menu "On-chip Peripheral Drivers" + + config BSP_USING_GPIO + bool "Enable GPIO" + select RT_USING_PIN + default y + + menuconfig BSP_USING_UART + bool "Enable UART" + default y + select RT_USING_SERIAL + if BSP_USING_UART + config BSP_STM32_UART_V1_TX_TIMEOUT + int "UART TX timeout" + default 2000 + depends on RT_USING_SERIAL_V1 + + menuconfig BSP_USING_UART1 + bool "Enable UART1" + default y + if BSP_USING_UART1 + config BSP_UART1_RX_USING_DMA + bool "Enable UART1 RX DMA" + depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA + default n + + config BSP_UART1_TX_USING_DMA + bool "Enable UART1 TX DMA" + depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA + default n + + config BSP_UART1_RX_BUFSIZE + int "Set UART1 RX buffer size" + range 64 65535 + depends on RT_USING_SERIAL_V2 + default 256 + + config BSP_UART1_TX_BUFSIZE + int "Set UART1 TX buffer size" + range 0 65535 + depends on RT_USING_SERIAL_V2 + default 0 + + config BSP_UART1_DMA_PING_BUFSIZE + int "Set UART1 RX DMA ping-pong buffer size" + range 32 65535 + depends on RT_USING_SERIAL_V2 && BSP_UART1_RX_USING_DMA + default 64 + endif + + menuconfig BSP_USING_UART2 + bool "Enable UART2" + default n + if BSP_USING_UART2 + config BSP_UART2_RX_USING_DMA + bool "Enable UART2 RX DMA" + depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA + default n + + config BSP_UART2_TX_USING_DMA + bool "Enable UART2 TX DMA" + depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA + default n + + config BSP_UART2_RX_BUFSIZE + int "Set UART2 RX buffer size" + range 64 65535 + depends on RT_USING_SERIAL_V2 + default 256 + + config BSP_UART2_TX_BUFSIZE + int "Set UART2 TX buffer size" + range 0 65535 + depends on RT_USING_SERIAL_V2 + default 0 + + config BSP_UART2_DMA_PING_BUFSIZE + int "Set UART2 RX DMA ping-pong buffer size" + range 32 65535 + depends on RT_USING_SERIAL_V2 && BSP_UART2_RX_USING_DMA + default 64 + endif + + menuconfig BSP_USING_UART3 + bool "Enable UART3" + default n + if BSP_USING_UART3 + config BSP_UART3_RX_USING_DMA + bool "Enable UART3 RX DMA" + depends on BSP_USING_UART3 && RT_SERIAL_USING_DMA + default n + + config BSP_UART3_TX_USING_DMA + bool "Enable UART3 TX DMA" + depends on BSP_USING_UART3 && RT_SERIAL_USING_DMA + default n + + config BSP_UART3_RX_BUFSIZE + int "Set UART3 RX buffer size" + range 64 65535 + depends on RT_USING_SERIAL_V2 + default 256 + + config BSP_UART3_TX_BUFSIZE + int "Set UART3 TX buffer size" + range 0 65535 + depends on RT_USING_SERIAL_V2 + default 0 + + config BSP_UART3_DMA_PING_BUFSIZE + int "Set UART3 RX DMA ping-pong buffer size" + range 32 65535 + depends on RT_USING_SERIAL_V2 && BSP_UART3_RX_USING_DMA + default 64 + endif + + menuconfig BSP_USING_UART4 + bool "Enable UART4" + default n + if BSP_USING_UART4 + config BSP_UART4_RX_USING_DMA + bool "Enable UART4 RX DMA" + select RT_SERIAL_USING_DMA + default n + + config BSP_UART4_TX_USING_DMA + bool "Enable UART4 TX DMA" + select RT_SERIAL_USING_DMA + default n + + config BSP_UART4_RX_BUFSIZE + int "Set UART4 RX buffer size" + range 64 65535 + depends on BSP_USING_UART4 + default 256 + + config BSP_UART4_TX_BUFSIZE + int "Set UART4 TX buffer size" + range 0 65535 + depends on BSP_USING_UART4 + default 0 + + config BSP_UART4_DMA_PING_BUFSIZE + int "Set UART4 RX DMA ping-pong buffer size" + range 32 65535 + depends on RT_USING_SERIAL_V2 && BSP_UART4_RX_USING_DMA + default 64 + endif + + menuconfig BSP_USING_UART5 + bool "Enable UART5" + default n + if BSP_USING_UART5 + config BSP_UART5_RX_USING_DMA + bool "Enable UART5 RX DMA" + select RT_SERIAL_USING_DMA + default n + + config BSP_UART5_TX_USING_DMA + bool "Enable UART5 TX DMA" + select RT_SERIAL_USING_DMA + default n + + config BSP_UART5_RX_BUFSIZE + int "Set UART5 RX buffer size" + range 64 65535 + depends on BSP_USING_UART5 + default 256 + + config BSP_UART5_TX_BUFSIZE + int "Set UART5 TX buffer size" + range 0 65535 + depends on BSP_USING_UART5 + default 0 + + config BSP_UART5_DMA_PING_BUFSIZE + int "Set UART5 RX DMA ping-pong buffer size" + range 32 65535 + depends on RT_USING_SERIAL_V2 && BSP_UART5_RX_USING_DMA + default 64 + endif + + menuconfig BSP_USING_UART6 + bool "Enable UART6" + default n + if BSP_USING_UART6 + config BSP_UART6_RX_USING_DMA + bool "Enable UART6 RX DMA" + select RT_SERIAL_USING_DMA + default n + + config BSP_UART6_TX_USING_DMA + bool "Enable UART6 TX DMA" + select RT_SERIAL_USING_DMA + default n + + config BSP_UART6_RX_BUFSIZE + int "Set UART6 RX buffer size" + range 64 65535 + depends on BSP_USING_UART6 + default 256 + + config BSP_UART6_TX_BUFSIZE + int "Set UART6 TX buffer size" + range 0 65535 + depends on BSP_USING_UART6 + default 0 + + config BSP_UART6_DMA_PING_BUFSIZE + int "Set UART6 RX DMA ping-pong buffer size" + range 32 65535 + depends on RT_USING_SERIAL_V2 && BSP_UART6_RX_USING_DMA + default 64 + endif + endif + + menuconfig BSP_USING_TIM + bool "Enable timer" + default n + select RT_USING_CLOCK_TIME + if BSP_USING_TIM + config BSP_USING_TIM11 + bool "Enable TIM11" + default n + + config BSP_USING_TIM13 + bool "Enable TIM13" + default n + + config BSP_USING_TIM14 + bool "Enable TIM14" + default n + endif + + menuconfig BSP_USING_PWM + bool "Enable PWM" + default n + select RT_USING_PWM + if BSP_USING_PWM + menuconfig BSP_USING_PWM2 + bool "Enable timer2 output PWM" + default n + if BSP_USING_PWM2 + config BSP_USING_PWM2_CH4 + bool "Enable PWM2 channel4" + default n + endif + endif + + config BSP_USING_ON_CHIP_FLASH + bool "Enable on-chip FLASH" + default n + + menuconfig BSP_USING_SOFT_SPI + bool "Enable software SPI (swspi)" + default n + select RT_USING_SPI + select RT_USING_SOFT_SPI + if BSP_USING_SOFT_SPI + menuconfig BSP_USING_SOFT_SPI1 + bool "Enable software SPI1 Bus (swspi1)" + default n + select RT_USING_SOFT_SPI1 + if BSP_USING_SOFT_SPI1 + config RT_SOFT_SPI1_SCK_PIN + int "swspi1 SCK pin number" + default 16 + config RT_SOFT_SPI1_MISO_PIN + int "swspi1 MISO pin number" + default 18 + config RT_SOFT_SPI1_MOSI_PIN + int "swspi1 MOSI pin number" + default 91 + endif + + menuconfig BSP_USING_SOFT_SPI2 + bool "Enable software SPI2 Bus (swspi2)" + default n + select RT_USING_SOFT_SPI2 + if BSP_USING_SOFT_SPI2 + config RT_SOFT_SPI2_SCK_PIN + int "swspi2 SCK pin number" + default 19 + config RT_SOFT_SPI2_MISO_PIN + int "swspi2 MISO pin number" + default 20 + config RT_SOFT_SPI2_MOSI_PIN + int "swspi2 MOSI pin number" + default 21 + endif + endif + config RT_SOFT_SPI1_HAS_PIN_DEFAULT + bool + default y if RT_USING_SOFT_SPI1 + + config RT_SOFT_SPI1_SCK_PIN_DEFAULT + int + default 16 if RT_USING_SOFT_SPI1 + + config RT_SOFT_SPI1_MISO_PIN_DEFAULT + int + default 18 if RT_USING_SOFT_SPI1 + + config RT_SOFT_SPI1_MOSI_PIN_DEFAULT + int + default 91 if RT_USING_SOFT_SPI1 + + config RT_SOFT_SPI1_HAS_BUS_NAME_DEFAULT + bool + default y if RT_USING_SOFT_SPI1 + + config RT_SOFT_SPI1_BUS_NAME_DEFAULT + string + default "swspi1" if RT_USING_SOFT_SPI1 + + config RT_SOFT_SPI2_HAS_PIN_DEFAULT + bool + default y if RT_USING_SOFT_SPI2 + + config RT_SOFT_SPI2_SCK_PIN_DEFAULT + int + default 19 if RT_USING_SOFT_SPI2 + + config RT_SOFT_SPI2_MISO_PIN_DEFAULT + int + default 20 if RT_USING_SOFT_SPI2 + + config RT_SOFT_SPI2_MOSI_PIN_DEFAULT + int + default 21 if RT_USING_SOFT_SPI2 + + config RT_SOFT_SPI2_HAS_BUS_NAME_DEFAULT + bool + default y if RT_USING_SOFT_SPI2 + + config RT_SOFT_SPI2_BUS_NAME_DEFAULT + string + default "swspi2" if RT_USING_SOFT_SPI2 + + 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 + endif + + 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_SOFT_I2C + bool "Enable software I2C (swi2c)" + default n + select RT_USING_I2C + select RT_USING_SOFT_I2C + if BSP_USING_SOFT_I2C + menuconfig BSP_USING_SOFT_I2C1 + bool "Enable software I2C1 Bus (swi2c1)" + default n + select RT_USING_SOFT_I2C1 + if BSP_USING_SOFT_I2C1 + config RT_SOFT_I2C1_SCL_PIN + int "swi2c1 SCL pin number" + default 24 + config RT_SOFT_I2C1_SDA_PIN + int "swi2c1 SDA pin number" + default 25 + endif + + menuconfig BSP_USING_SOFT_I2C2 + bool "Enable software I2C2 Bus (swi2c2)" + default n + select RT_USING_SOFT_I2C2 + if BSP_USING_SOFT_I2C2 + config RT_SOFT_I2C2_SCL_PIN + int "swi2c2 SCL pin number" + default 16 + config RT_SOFT_I2C2_SDA_PIN + int "swi2c2 SDA pin number" + default 91 + endif + endif + menuconfig BSP_USING_DAC + bool "Enable DAC" + default n + select RT_USING_DAC + if BSP_USING_DAC + config BSP_USING_DAC1 + bool "Enable DAC1" + default n + endif + + menuconfig BSP_USING_ONCHIP_RTC + bool "Enable RTC" + select RT_USING_RTC + default n + if BSP_USING_ONCHIP_RTC + choice BSP_RTC_LS_SEL + 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 + + config BSP_USING_WDT + bool "Enable Watchdog Timer" + select RT_USING_WDT + default n + + config BSP_USING_SDIO + bool "Enable SDIO" + select RT_USING_SDIO + select RT_USING_DFS + default n + + config SDIO_MAX_FREQ + int "sdio max freq" + range 0 24000000 + depends on BSP_USING_SDIO + default 1000000 + + config BSP_USING_USBD + bool "Enable USB Device" + select RT_USING_USB_DEVICE + default n + + menuconfig BSP_USING_USBH + bool "Enable USB Host" + select RT_USING_USB_HOST + default n + if BSP_USING_USBH + menuconfig RT_USBH_MSTORAGE + bool "Enable Udisk Drivers" + default n + if RT_USBH_MSTORAGE + config UDISK_MOUNTPOINT + string "Udisk mount dir" + default "/" + endif + endif + + menuconfig BSP_USING_PULSE_ENCODER + bool "Enable Pulse Encoder" + default n + select RT_USING_PULSE_ENCODER + if BSP_USING_PULSE_ENCODER + config BSP_USING_PULSE_ENCODER4 + bool "Enable Pulse Encoder4" + default n + + endif + + config BSP_USING_EXT_FMC_IO + bool + default n + + config BSP_USING_FMC + bool + default n + source "$(BSP_DIR)/../libraries/HAL_Drivers/drivers/Kconfig" + +endmenu + +menu "Board extended module Drivers" + +endmenu + + config RT_SOFT_I2C1_HAS_PIN_DEFAULT + bool + default y if RT_USING_SOFT_I2C1 + + config RT_SOFT_I2C1_SCL_PIN_DEFAULT + int + default 24 if RT_USING_SOFT_I2C1 + + config RT_SOFT_I2C1_SDA_PIN_DEFAULT + int + default 25 if RT_USING_SOFT_I2C1 + + config RT_SOFT_I2C2_HAS_PIN_DEFAULT + bool + default y if RT_USING_SOFT_I2C2 + + config RT_SOFT_I2C2_SCL_PIN_DEFAULT + int + default 16 if RT_USING_SOFT_I2C2 + + config RT_SOFT_I2C2_SDA_PIN_DEFAULT + int + default 91 if RT_USING_SOFT_I2C2 + +endmenu diff --git a/bsp/stm32/stm32f407-lxb/board/SConscript b/bsp/stm32/stm32f407-lxb/board/SConscript new file mode 100644 index 000000000000..704b05a6c351 --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/board/SConscript @@ -0,0 +1,25 @@ +import os +from building import * + +cwd = GetCurrentDir() + +# add general drivers +src = Split(''' +board.c +CubeMX_Config/Src/stm32f4xx_hal_msp.c +''') +path = [cwd] +path += [os.path.join(cwd, 'CubeMX_Config', 'Inc')] + +group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path) + + +# if os.path.isfile(os.path.join(cwd, "ports", 'SConscript')): +# group = group + SConscript(os.path.join("ports", 'SConscript')) + +list = os.listdir(cwd) +for item in list: + if os.path.isfile(os.path.join(cwd, item, 'SConscript')): + group = group + SConscript(os.path.join(item, 'SConscript')) + +Return('group') diff --git a/bsp/stm32/stm32f407-lxb/board/board.c b/bsp/stm32/stm32f407-lxb/board/board.c new file mode 100644 index 000000000000..7279c1be9238 --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/board/board.c @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2006-2024 RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-11-06 SummerGift first version + */ + +#include +#include + +void SystemClock_Config(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = { 0 }; + RCC_ClkInitTypeDef RCC_ClkInitStruct = { 0 }; + RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = { 0 }; + + /**Configure the main internal regulator output voltage + */ + __HAL_RCC_PWR_CLK_ENABLE(); + __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); + /**Initializes the CPU, AHB and APB busses clocks + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_LSE; + RCC_OscInitStruct.HSEState = RCC_HSE_ON; + RCC_OscInitStruct.LSEState = RCC_LSE_ON; + RCC_OscInitStruct.LSIState = RCC_LSI_ON; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; + RCC_OscInitStruct.PLL.PLLM = 4; + RCC_OscInitStruct.PLL.PLLN = 168; + RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; + RCC_OscInitStruct.PLL.PLLQ = 7; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + { + Error_Handler(); + } + /**Initializes the CPU, AHB and APB busses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK) + { + Error_Handler(); + } + PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC; + PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) + { + Error_Handler(); + } +} diff --git a/bsp/stm32/stm32f407-lxb/board/board.h b/bsp/stm32/stm32f407-lxb/board/board.h new file mode 100644 index 000000000000..6a8889693afe --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/board/board.h @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2006-2024 RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-11-5 SummerGift first version + */ + +#ifndef __BOARD_H__ +#define __BOARD_H__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define STM32_SRAM_SIZE (128) +#define STM32_SRAM_END (0x20000000 + STM32_SRAM_SIZE * 1024) + +#define STM32_FLASH_START_ADRESS ((uint32_t)0x08000000) +#define STM32_FLASH_SIZE (1024 * 1024) +#define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE)) + +#if defined(__ARMCC_VERSION) +extern int Image$$RW_IRAM1$$ZI$$Limit; +#define HEAP_BEGIN ((void *)&Image$$RW_IRAM1$$ZI$$Limit) +#elif __ICCARM__ +#pragma section = "CSTACK" +#define HEAP_BEGIN (__segment_end("CSTACK")) +#else +extern int __bss_end; +#define HEAP_BEGIN ((void *)&__bss_end) +#endif + +#define HEAP_END STM32_SRAM_END + +void SystemClock_Config(void); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/bsp/stm32/stm32f407-lxb/board/linker_scripts/link.icf b/bsp/stm32/stm32f407-lxb/board/linker_scripts/link.icf new file mode 100644 index 000000000000..4faaca31489d --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/board/linker_scripts/link.icf @@ -0,0 +1,30 @@ +/*###ICF### Section handled by ICF editor, don't touch! ****/ +/*-Editor annotation file-*/ +/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ +/*-Specials-*/ +define symbol __ICFEDIT_intvec_start__ = 0x08000000; +/*-Memory Regions-*/ +define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; +define symbol __ICFEDIT_region_ROM_end__ = 0x080FFFFF; +define symbol __ICFEDIT_region_RAM1_start__ = 0x20000000; +define symbol __ICFEDIT_region_RAM1_end__ = 0x2001FFFF; +define symbol __ICFEDIT_region_RAM2_start__ = 0x10000000; +define symbol __ICFEDIT_region_RAM2_end__ = 0x1000FFFF; +/*-Sizes-*/ +define symbol __ICFEDIT_size_cstack__ = 0x0400; +define symbol __ICFEDIT_size_heap__ = 0x000; +/**** End of ICF editor section. ###ICF###*/ + +define memory mem with size = 4G; +define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; +define region RAM1_region = mem:[from __ICFEDIT_region_RAM1_start__ to __ICFEDIT_region_RAM1_end__]; + +define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; + +initialize by copy { readwrite }; +do not initialize { section .noinit }; + +place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; + +place in ROM_region { readonly }; +place in RAM1_region { readwrite, last block CSTACK }; diff --git a/bsp/stm32/stm32f407-lxb/board/linker_scripts/link.lds b/bsp/stm32/stm32f407-lxb/board/linker_scripts/link.lds new file mode 100644 index 000000000000..d640603da2b1 --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/board/linker_scripts/link.lds @@ -0,0 +1,169 @@ +/* + * linker script for STM32F4xx with GNU ld + * bernard.xiong 2009-10-14 + * flybreak 2018-11-19 Add support for RAM2 + */ + +/* Program Entry, set to mark it as "used" and avoid gc */ +MEMORY +{ + CODE (rx) : ORIGIN = 0x08000000, LENGTH = 1024k /* 1024KB flash */ + RAM1 (rw) : ORIGIN = 0x20000000, LENGTH = 128k /* 128K sram */ + RAM2 (rw) : ORIGIN = 0x10000000, LENGTH = 64k /* 64K sram */ + MCUlcdgrambysram (rw) : ORIGIN =0x68000000, LENGTH = 1024k +} +ENTRY(Reset_Handler) +_system_stack_size = 0x400; + +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 = .; + } > CODE = 0 + + /* .ARM.exidx is sorted, so has to go in its own output section. */ + __exidx_start = .; + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + + /* This is used by the startup in order to initialize the .data secion */ + _sidata = .; + } > CODE + __exidx_end = .; + + /* .data section which is used for initialized data */ + + .data : AT (_sidata) + { + . = ALIGN(4); + /* This is used by the startup in order to initialize the .data secion */ + _sdata = . ; + + *(.data) + *(.data.*) + *(.gnu.linkonce.d*) + + 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 = .; + + .MCUlcdgrambysram (NOLOAD) : ALIGN(4) + { + . = ALIGN(4); + *(.MCUlcdgrambysram) + *(.MCUlcdgrambysram.*) + . = ALIGN(4); + __MCUlcdgrambysram_free__ = .; + } > MCUlcdgrambysram + + _end = .; + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + * Symbols in the DWARF debugging sections are relative to the beginning + * of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } +} diff --git a/bsp/stm32/stm32f407-lxb/board/linker_scripts/link.sct b/bsp/stm32/stm32f407-lxb/board/linker_scripts/link.sct new file mode 100644 index 000000000000..0d7c47992d53 --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/board/linker_scripts/link.sct @@ -0,0 +1,15 @@ +; ************************************************************* +; *** Scatter-Loading Description File generated by uVision *** +; ************************************************************* + +LR_IROM1 0x08000000 0x00100000 { ; load region size_region + ER_IROM1 0x08000000 0x00100000 { ; load address = execution address + *.o (RESET, +First) + *(InRoot$$Sections) + .ANY (+RO) + } + RW_IRAM1 0x20000000 0x00020000 { ; RW data + .ANY (+RW +ZI) + } +} + diff --git a/bsp/stm32/stm32f407-lxb/figures/board.png b/bsp/stm32/stm32f407-lxb/figures/board.png new file mode 100644 index 0000000000000000000000000000000000000000..8f81a077dcaecbaf6cc45d501200094ead90d5db GIT binary patch literal 415480 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∓O4 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�~rg-O4yP@YRA2_aIFB_NHQcafEjD*XoQk!*!j=o(e zy34W*Wg2PYb1O$aIhWDh!(c7aW{mTw>np&@KI{uz@(7j}Sa^Dbu5-Gb@*B**Dv}tL zGU%~W%X4n6r7WaJQSbqj6L;|Lko>FAlTwZ23h*Rp)_7C9J=eq^j)GnvCY%@<`yMjQ z*$rcDq1Q>AM4yzoVqfmy1*zN>Qz`HHkkG?Fs+WJgxDxP$K*Xqob*9CLq%wTH+H%M5 zgtEDrDs?D;ddcxP;4D#lm+v33u0i=z=|SgdAO3pZv%wq7+QN11=Z(J$&`AU{(jsFN z4S^rzeGE5!O&a+Y>Y8F#h<|4QXitk9b?~R0%f5h~Z~kTg;bMM+QNxp}Sd*Ea5u4X& zbk-DK4Ymcj?Nx=a{kkf;oHX$K#lstxG#rmYtylcSP2pxweOpXL;u;Z5m`(L(@!LL^ zUNPd}6&v=`$McL3UMppj9rU~KiPQd7?1aYh)J8Q$^A~)g;#^Ve=HF00CBIci7w2xcfo=_eFX3zWP637^#m4Im)#`e(% z?%+i!LIs@m;fTpLJV^6iN()HT^$F!SQBIlJ)K3RhRr>)FmWZX0SfIZbSuxvBNgpY; zZnA?f`zrZK*P5u_%b*HZf7-t+`qV9|7a9gCAut^bXQu!CO&*y&+oFd3bp2(-J;-X~;i?`M^nv zOvKd7pFT_eDXgGH+j3kIN_lI0N&SMsxj*@#{ZekI1K2-Gxn0^X<>qdhNs>|IO1e>Q zt@u2a@y7$7?inR9IYv5oP5qSIO4C=@QAN>E~_Xi@8^t*fmCwkzVoN~Qq%rQ6;E4aK6X-5bN{fR z`^VdQ`#MMN#uQzy_}p!;VICPPn=Z zwQ>>&mJYkb{F;N-4|QV~M-dd5p1;JuD<}Tfde)*LIyUGtGV6)+*VFHEXWb|;?&djK zPncw-UhAE1{vJuGzGDycon?Ie7^gN5Ryh**8_iCdE_AD;8iz?&b1AY#afK@9oYrpM z+w=xFi|a@VOur2U%+^#k@jA6m589Ixn!^rhQxzisLWcut78oW`{uHof+G~!K zH(voz>v^Ac1OdlRg@b+~f5`8_7sAsCpwO*78Ul%WcQzOt835s;W~e?aVF@)`3A-Oh zv7@M)y*eEFY*h#FIY#_FeJ>~AL`Iu~G4(UIU+z3%R#AirpdF9dxl_;Jz7~d^ck`#V z-Mp-U;0jo}c{Y43{zqm9E!ta+I6vXYJH&}r5u4*uBuWlKhue=j6o!#{U)X6~XVAVCM?gM}n10p~xXw^49kq268 zr>u5sW1NPv8egwbHc&@pn7J3Q&9x_nu)RzwC!U&)A_Ka7JKh^AOmTiW z_UGEJp2U@YR$qa7+isL0tuv^|^rR+Y_mndAID(|^1ZS6*RUw?Jqq!MaN0{#{tX1c0 zTy5ufaDw%hOl?VFSYjW~TD-^}4>DIk;*)7x1zz8Lbk}ss&?ntUZTs<%_eh|Xk9fCy z?^&B8*%l(cc1Tf%I!b6*UAU)phHoG-7)jTvfFl$q9K= z6IsNhwiaAnSy;m>(PLRD)}a9|!ud zHwN%R+QirUwTSC|S))`+I{3SnM|B|4^vef0CJ)nYGt1_5u88fy|Ik6!e@^_V5NJSsLS@y@qJ~;J!qv5w}yN1 z_TMeVe_21!>!DA**#+UW$**+?j(e?+DbyIpzhN1{%n+#0$cJe&7koABdz{$yE2beE zR|V1}tjd{^=mma(T8!?Q(2sqrgnvEvHH#ske&Zt01pGM0e!x zlj2X&JgvZ+v-t`Wj}&*q6c(?zwy-xf6O{9v03_kpoJUf;o^bKO+N2+^6Z{( z%%=&vpFfK7c-UsVJ-6YreP!%8iznC-_FR6gsGryp$L$~F5^9V@oa~UbhPg=2BXdknf!zF=+JAyqN%?p4B%ajsa=lMFE*5;?S`q#HKEuZo1z{;dA97K(Si<~ufGKo+ zN3V%@w;)FK)6Nsz$z^|H3$I<|fjBPi4|HKIHE^vn$(p()5;ye<4KYAXWYpHaB{g8p z8+Y72il8_nero5eiC?BA)yt_b=A5znNHctg+pn50DViiCWM{xW)Oezp_D~;fu!hJ4 zAePK`K=7tH32uR84sSW>JA%!K{Dnc#-SB{>#z( z_GOI+$Nk9In|jbVcX9jPJQlfzrlgy*pv-?|zsz}?BUNMTX3`6$436uh!uppD?zpSy zhVuFW`Z^BQNLeW`8_0d82nmYc*O+xP2OmhVJp5hA0~zE%OXA&)$4o@*(lPDLAkfBZ z3rDw(O>wiqe66xQ(x|u80Fu(Qm1EW@^`vpY(-g`P_E4kPH<8lzdXXoApiqqp6U4v5 z_6+;1kArHQ|lhmHsqz3<7`4_3@ z-#KvU$%io~h%a-)+#d)rAGdz0s@TK;1!1{-74+>1YW1iA>Bs$pRU!^JT5c`**#%Fg zrmhOdc4&9j#KRM^Mag}dSfRXvXG`5#3IUqh;6t{f03ohY)FbJH^d3esRM~9irq#ly z8-BM-sniKyosyk2o=t`~Mpp6Dysx>Z+~~gqJOkBfWa9UbR1S?vDl@gr>z+wg{t)83r}+}pWfIjiu04QfE*InUSf~+#GB;Evh=WY)hxOi=h<6MavBE^3U&)p1!{dU{g*v1BMr$*{&r~TZK35W zGhS*XM&8ah&ne$t_$qazOa=;)7k_8($VPm771UczAOm8(=fI95nRf>}vfuuY%1pwq zGy$#_SJO>aApEqCAw&cL@a|hW8Jg_93}+@=^OJv3&yN5tv=k78d{OYpm>_-d=1o7Y zX88Vbk!@PBNv5-S`9qk@4no0(bjOu&c;{^)8mZI0Qb;k^?ny2D$mNqeqtXJaPAm^< z@Zkp&hF3Ly^9+JW3j!!+Q(x&yPvfe_>s5QkqoL=7HuAeuWB8&RrtgJ+b-HBfG10Wj z{2Oc-1m%DTs2O_%p3{6l$phSjz=B#Ukp&La&HW8gU;}Hz){-T9X=~GJv@s5<-)t{9 zw}g*DuD>uM_g8%?CFit4<4zuI)Bs?&4}c4q5CF%-jv@DsqsWHde2!bSV3f+gbmkTddR0-jCNLp2;-j6oe+f z3$eZSV2>f0WAB~Nj4)e6)wvFIJpK-@&_{aY)3e~N?Yq$^EtZ$@E7g4%{ZB(meT4;i zVK%p}O;3`m4Lvf0+(bw#Xxn(XVYW{7vk{NE60X^8>`+f%4+Dhva{@p0`2M|SfqRXZ zg!Z^9RDd@H{)k^-+n~^b{9S8;+iM5zd!7CHVl*vpe8smw)#{mSa~l-xMvgvb#`N-1 zv1d%rj=T7^`HM-n`NDnFcvSX!exCGLgJ=|(jqdT8pmzct4F}e+L6Q+i>4{nA*q77oh0%ny5NFIx?l8?7?+`CZmwa!Feu_mCp* zTvqgPCh-x?>a@vnK01R2W(znrG3DnQ^|{;Q$kr2WPW0oXlSWlXVDieriZLGKn_t!& z*NQghO;bo}HijZ^sDdVg9`=vka0pM9B=sFAw4Z(&>F2iV20p>$cSNY|Y_vL0--5t_ zv(c(mVe5$KYB9vz;@e{lbNFBdAvmlY!UGLjtm+3l)%=FR~tvE)a8;b(wlNM?7(7Etedv+ zu+jX)4Rc$#eTVFUsKFBaA&;Hj`DIEfE69Mlwsn$ z1k+&dUhNA8X;(^N73x{}%17^S1jLvzhRi_aaVBxJeD_xGd5gHdEn5oT9;Bbe+U)X( zg!`V2WwUsHJYVSCSp}zo429Yw3Bq~v_+e$|>pSRr`>2beQ@Q^MbIoe0%Tr((M zRSpfAiu1qrmMPAv1S44yrx*KaPuP-`m!d zEz?VcAp>=bkc<8TsApDN4(1cR3GrmRDq}T)pw@d?Whgb&aE<&pOvpj+>)%npjv%eGD&4O z81eg_Q{)CD?vgwF8_GN*wPeJx$*oK;49aS@l?bwRyij-k+hPApk7=h()!CMjsdvSy zxOMx@R)SP>m{)!pj`tTb-$j4;n zqaI%YZE4v+5Gx1tKIUN5Jjb=MZbHkf?Jt)~5bGz96gFY+NfVbS&HNMHeUZ_i9fiu@ z^Es&N2LQ(gI}pS@oCTlF(~rhwQrq=a94DL43#ydnM_%B~V?dLmdvx?e6nyv<+2!Aa zWp?10^5Y)ovS=3UaT>!_o%J77Ay)$Im4Zao(w*?}M` zIcAjt)Nh1jrs6EjTd1heY>&!3%r> zPqz7&6`JKip$Uajeg z#BS~8kt1=(;Q2$=nI!v#rp-B-s1}pakMt<~GN`>cd&J9M%6v`^wj`ADM_ZFzA)x&U0)pZcZN^qy% z0UY&rNE$|-a1{6jMf|KFoD`g0DMl!!b;F_ceE_C*#wZS*PD6|h<}7EAwD9GLc=T})a6 zmd$-sE(~Vj?F&FKsR``f2I8mw>=uUX#lO31=IGm*B+()4d&GasFGaal}e*S1s$0IRTh%m}eH;(70h(Sohq@g9JbM=yBU24|3MQ zrj^Q*5hHsS^ht0MlmQ2iyW?i^F?ji=D#Cp(#%u{%-meEm!FKsw_Fe20px{z;LUmko=4Uhj^ce&dj2E2MS&i|O_gx?v4TcV+s?b_Nt zHuGDlFH^psZz(sznBVt_=xi`Z_2b}DVIMmcYVJj|Xa0SYTt}Y43b1y>N_=jQYE=!YlSl z^hkYk091!y79Z__34_fX6nGIeEuYB*4Z=6lej#_~;j^Z2oFz!xh#PhxvHu2>nz}*E zA6jBhhH3}e&)02Ypn~2d-r^wBnX@g)S7$N4y|)`YW6-Pn&B0aDA}1cGHlo~xhoWAZ z#^1NSHVHa;UwyVED+_>y{x+z?c{zC6mk-VZR)LSZ7JbZYzdv|>?n-a3$En)EwwUaS z;_X(hd$hl{-?l>vy&c{z6+uN5vI&OqF4*>ladBB+aEV*6gRBhzg;9XmsZJwFw^Mymz}$BD z8Q!5BsNb@&tNF@9xj+`O;7D5Pt7yw+%b)~A7QA5UOL zc&fIPn25v>x$8``_mV*)hx^VZqQSx6WexgbR7ff-?YA9>xknbM@>U=)!zQ{vyAjFf zI@iMPE7`Ef%|;S*6x*&>T;~CqIcgr zrEhr#T(c3XHJs>GGWq(vUatQ_JU-H*KR_^(V_wtl8l5@cExE?)9EZbSWU4Fj#rKHD z2uWaZRZ9aQyHy#Z@l%o;*Ad10S+};ohsM5uCz14xfNQ7jCK#S~p zvm&NU;AXwC6&I-ACn=qjCzv4Y)J15R)vnfT@d^ZV8()Z@sJE;sHFu!U2E-rm$$Q0v z!Sk|CxlwhVFQ082LkeM0IE^{MkPIFGxQ=CEIX-;G}zW1${WpZOv?nrQEhH1#6 zCjWsZMp|=yp|;3rH|qiIY|i)E;XeWMqxc`0Xg7V_kB24T^o75(N9S`URisTc1>GLG z7-6Nx$0t`q3oEuH%aBk{%AB0tl&^@K__jGbN|Do0HUl;23k_DS$I88Pa8I^r=7a>* zUc;AlP7cesHTXazL84HtJN`Imf0_IBvZT7k%!`zAlFl)aceDq&uJRssD_wElsm7>) zN`sS`{8B&#(tLDYItj7YYpQ7He%N=}Gh&$|*=Cf5nC)&oULP#u=6@-@DCBj~`?#2< zr(u|I6oMz9&Evh8lJiiX|E)`hf?{NMc%rv<7IjPvN9s~0$ppQL_ZB9txRPYr&X>cW zz3@#5+Ev9G?rh)eq}qlGta%p{it{@jgzly$I%RcqoTBaz74mFRelDNf{&i{zu% zSLKApW^3(MgUa+$+-5YuY|9)O5-RDo{kiv=U)3->N_}JGf8k!jN$s* z%~jI+mKl{p#t4ApaT((SV+6&4loQY5#V3kn(dD`tL{I z1V@MedG!4&ZYDrWi#f#GwS%#x&X@drnxp?z{pq2GC?5X53L_CqpL z`;KnBEWCP8msaWZn&-9z=|u|{Pt3DUt9$V3jzexB4eHD)Bpp0)k}gs{k#Jw_%pD@) zWsVcF;vr>qR)Nl5Ao_*Fk=0qlcnu8N!&e3R=IV1>V0@(HrOPPiqk|)Vq*u@bP$1qSpC>)4Cq7dGdB)-1M1iL-OI^Dm z%%9^@s;_E7lvx%)ZhpP!4*2@O@q zCEHL>60N^@m@8JQ6?fZP85IpPB-u3@$I-0Jx+!cn8CzBH#!aw=o$c;xVPaXdvr2!A zC~960HFt1METQrw^)dx|TVibb;)?d<(eAd#SIORu5%meoQK-i+l9_ZVp^rq#y1j^U zN|*>W+&>Spkwa+rK{oIcwu2WEaB<&1J$$e5dH~y*+CC;d`)$$GHRH)%Y{+vQ=fw=K z&%aCeeimm&G)8p69X*XX0qA>6RtR z=S`@485Q|+I~(ZF>~h-`;lXy4+h^v1VG!zIizFgY_0h ztQ)dC^U={YeiMyc5KZ067sp<;&ztUHoY^7TAZ} zz;S@SMO1MCm^7xC8frMZr@cHAJLoZ6{C*<-8e=3ctL4MzM|o3dD^Kd{U6PSOd3Kte zf@Fdb(%#^bPrl;*EJKG0hUP5# zuxrw0RKW<)ZA2U79b7B~TKKNt(ZI*8yTI+I*t^LOWLn_rQETzUOzInTJJ2mD;}5*= z6|Mm!7ucB*xkdJq3$`y~QEN=OSDJ>D(X5~&{l%(F`?&^&AlCq-+JHt*k_2T6Lp+X3 z3(&y^ZE9oO2KB&JLqEwX7|deea-l!27Dd*DgOjEGc{1QBPGm#BUkz+;V#&uDxK+E% z6~Jab970i8dI>R^qQO|#2|TmOkcy)#=1F(W`52G%iuW-!3rG16=^jIDJ+8dW$UOdV zVr0cxKWCZKdTzBAzk9I?&=KDh_j8oy7e5ez9p%H-nr$D=2XF$NiJTjIl0HcZ5Ek!& zXZ~lMj$ad1?CejZ?s!PDZ3&rjoz{p_k z5a~dsCr>-Iq!o;6PS{@LKe?y>!}6hA$J-$MyqE~WPXaLI2g_7vHW9lAZSh;HaH^jG z&8rZR!;GtIsyabOz1maR-V0{X6j zA(Nj*WfcIoHA_{6wp|w_?$gFWwHffuGXNVyQrpTAbRM9Iu$z?t!bfJ~@=}R4qQgrM z4D-LdNd12V+sk&rMBu@ncR_6pAQE97uYIt|;1@UsMk~e!fYr=qC-jH*n8a0!`-s@z$NX#gKP415A@?IFbLSUsRFlFAdkIWIVpejblawq?R|%GARCN^G z2%f46zMA^`wC;+a;cT%t^B-!Hef&Om#qV_RB^#PqrXeI%5q10zam8WpXiwZ6Q=^sS;3WBE3mhQ2`@HdS_!nq=q6OChLocGzL24j~G%2A5Qsyk28E5=I=bY!<`?=@EeSu~td#|?F`jzjmDI`%&xVWw= z=@!jH69dS0pHF#;w&ZoamC^F>@Si$4$WGJ=JZKS1h#B*4C=be}yQc%1i5vs9IL}W1 zmF>hLew1DCCatsY>Cv-%DO`Ox>bum5$ojs(T{oX7t^W{93oeg}t@BJ}E>92|->IXN zyVq9`P#H0pR>oC*4TQzDP**CHooT7so+v4_x+^2eJuG}d`C;IZWw3`*(&<~$-t0i_ z0z1Z^*S17*LkDr!b|DF-cMRH`MJ}dmL?fwdh>gw+3NSXfb*?wkXHuDdK8h!k(p#`} zA7CD8!W83xAFIY-KP7V|mGRfNpp7|Dw1ii=4?hCDs8F^G*e`+bzrS543>>~x*h3c? ziMY|n`gMM_)jsIB^=yoHf#_WUsVCRT{UQE&pq7%t2L9_uXUWEW`Y?5AZ#}yD!$9Sr z>b{~EzH={p(ZN2&RQ;At))&?ay=hU|N9HAt2;BrZ_r>63O=(cpKsewSuzlPD8=XI| z3fUwe&=o)1X3#6)v~Z)cjKKbq^V5RHv>KokK@Z0Dw)UIT?Wv-SKxBLT2<(_NGomE* zkOf2<9ETjm`4I+WNr8e}ubSVCvVQ1QYIB%KVXsV2=lCLTbzl!4T-Bx)m|z&|pjEy? zYCG91E}&!M{;=P!l!Z~X_)%-)*26e;BiEx$0UQjZ%vfh&j)i}BSiXm>1|H`A1<+I? zb$WZ1+od);m>~NoP(R)e#3??iL9n>%n5l&sC}el_x$k33J7j;cGm^(SB|Xpk3j5oJ z@Ba_l)u`)R&w#BI-T&&4Y}fd`9HlSbQ<+-pVjJZC1|C@Y6iw zH8^F{CWE;Nxu=oIAi{9?hkn_pck{UM+F~f3y;s_|0x|FFRo%&h3D9KxjZB3HB4saW#{dB%**Zyrry~~x?!%Q# z-^FLUBB{)41^XmtQtSYuUOV##tisZ^{%SQqSd0*q;$o`I=#5{{EYKqUcc0yrIl-pi zvmFkjZQ^H6e?K%0Wmo`!#0&69YrSQQTw?oLJmDfuJQUfa9EzicCA0w_jkM4o%5L%? zl}7l#0SU7`)}w$;9HF4MzF|L>6(|Z0v?|MQ@x_+`ozjt>zG))19W2&j0cFumE|(u& zO8?xj9Y=v%0lX{m%l0_kNBPUxzdmgzgiRuKd*LB>{ifAEUHl$?Js7wpt>v;_sYHoq zM7d->5lE}hJg!AFKX$EUWS{eA1=sJ&3408=f5^UzpW7;{F|ZcMeZ}Pw-_EG?yq%8% z1zpo)dUtLh{iZUp+|EGDYN>!*;kmbkwk~b=bXuHA^24-vyAB2uH`fej(cH6Ft(u*t zwAjV$`PQg8B@R00LthFrJBkC0^-2^#AYlIj8p?cTm4KKb-~wo|9?&R(baGxPlQ!vd z7S08=Wm4gw3Uj_sIpSXzp@@2QZ!D#!+BSw|WGRQfHBJd)TmjQFJ(!_BxH|D7+nnUKTDJGalIB{wj)4!x+HKnN=#XS`ut84L_@)-O;X)L%U}SzC5$zKs_`6jH^X@ zfcoX|oNIPk=+9g4@xW)pYTIYSgd|IS+)jB|u6X#c?-Ak%%R-Zu{AU;Xk;L0Q-$Y$< zc1-nzx=nsIB{p_>`EfXE%|R5J zG2JpvNlX(ue6zg1tw)rS4pJapK4Vpk8q!QzU=^dd(-&6+OG-ogPDiDx3B*Zom znyT9S1)pCKYOt>82cQp-#!Zu2U{za)T50xoe zx1-`6g>HOm*orkFM(2I|O3elsZ|*nyDm5YPW7p`r0uja5z6T(SbRj47@kvTmww-6t zy6i}mKt;T|qQoU;lXoP`}#4XRCMi!9oXt;$x( zzPtq{3r9y*ME0p5Yyz6D0@h^T0Ih8z=nrhw%svweq~e!wAq=yUf{4xiRjljJfyqFa zh@^M`KceSZjNQ|?7^IzeR&WSat1Rw-#U4#%U0NbAmhaVqUTwNdh@gALRc5E6qxnvY!@55P%$^E(j8)k) zZ+nO^;-^YpBxaA5NLgzfAgtet{a93VVc1^Det0r+lsv|`FtqP-v;K;5t+$iw1#82EG{BrjL!_!!?RQ2owMTO=mS(FxpC|{!bEBgj^2TenbPaA zFyfw4jI;EB@rWFD?&-h22Ti2shTaJA|UN4u;KsQ>RSP3#FIy z)L?hY-?lz#ud;7DeDOF^(9lv>e;!?7#&2p|J2SWKCBc86;QL`MEB~69XLEOlM-~WL zfxg|DtQ>EG6Bf=pFqCvJ)Rm6X-EU+M*BCEiNE{SYL_G@oVzXoC6MfaaV$TYSB+C>` zX4M&<>`vXC7InFr)~I^Yi5-o}5ZeApDzt#(p~)23cKe?g$GK9i8-?Bpy?ps-el)j@ z^%5n$HS^@k#8Utu1?n?p-wT!c%=RhkzE2NadMamv&S=v}5hvSTBxy8=Kc#B$$=cp5 zl09JlsUpT~I5(d82@Fy0GX;!T-fULs=M)T-j;WRfY~b?zwJ6qP#d-z3Ah!`)-FF4u z#kVUD>?{e_m})Wz`IvuJ)npR{!Vs%(gwZT$qC1M%`GIiKZF=n?XzQqW=4<9qdY|lyBVqsQ zjMK+pCqwDYCtk}yielN6_DTUX7)c>kSJ1MG$i$UFiq4 z5u5X_K*E+J>kD$x*{m;8I)RNAg!XG^K|bK&6681s&_7c)kQ;+Q6hkb9nnUfrSjs$9 z_W+#drI=X+0YeAs^Y)`8@F*u3>F$gK>KYIOs{4NyKr(Ej`v6`*K+!oEA^;R{>J^O) zVm*NQU$_T}N6<)?AWH^l*79ew7_!<){8U~$Z5=npX!|$&VFKlO}NuK2T=U~vYKua@c-^_&!5Kc z^S?(dF#Z*>pua2VuQoVNH6MS6etA@G&QjrZwZ2T7)ko`PAAP2?)jArNeY*5_#OnM{ z5<`mrTkG^FZuGMTQlo<2)(@b8C|#%~bU@#Bz5z_T2-@0>dn!IpW2UQEplQC~kfw&h zs{V>9`Jd*TJmGl4;g>-ywNo{9F9HFzgc0>9yN03ZH@K%VtW8C|t1pC9T79yvZdiS6 zZKkbYo2m(<4eHZsApkQtHPb`ykS%S%kaFvQkn#mdI}sD>bNYNgol^}9i^M=)F2B+3lxk$}eB9B;tGh!5C?<615Jb`)C#rUt<7phiud|#06ym5#JAR zfz65k_^}R44Nq9>n8z&ftRU`e7kbwRF$4DNd91c;d+5IX<<1=73;-<1h&rc1zY5hr z8TLB#VtVH0U)E+ohGA{n!d-UWI8a^>{ZwHO;iv`2^mb^ zpHYFk9@k@0@HLKUIi{bZd(ift8& z{fyFQun8lf={kBqd%``(ucG>s&Grx_Ic8TZwOeV?T8; zvw5WzRcrjnRPHtPb;&%@vbvheGTq3{DJQd

*{&s7845Rz||DczEO8$vNJNW9s>g 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

LYT`iZPk?!bmQWNeKGPP7V?lW7XPg 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 + + 3 + + rt-thread + + ARM + + 1 + + C-SPY + 2 + + 29 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 1 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IJET_ID + 2 + + 8 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 1 + + + + + + + + STLINK_ID + 2 + + 4 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 6 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + + Release + + ARM + + 0 + + C-SPY + 2 + + 29 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 0 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 0 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 0 + + + + + + + + + + + IJET_ID + 2 + + 8 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 2 + 1 + 0 + + + + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 0 + + + + + + + + STLINK_ID + 2 + + 4 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 0 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 6 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + diff --git a/bsp/stm32/stm32f407-lxb/project.ewp b/bsp/stm32/stm32f407-lxb/project.ewp new file mode 100644 index 000000000000..a1d8425e0bed --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/project.ewp @@ -0,0 +1,2311 @@ + + 3 + + rt-thread + + ARM + + 1 + + General + 3 + + 29 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 34 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 20 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Release + + ARM + + 0 + + General + 3 + + 29 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 34 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 20 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + + Applications + + $PROJ_DIR$\applications\main.c + + + + Compiler + + $PROJ_DIR$\..\..\..\components\libc\compilers\common\cctype.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\common\cstdlib.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\common\cstring.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\common\ctime.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\common\cunistd.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\common\cwchar.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\environ.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\syscalls.c + + + + DeviceDrivers + + $PROJ_DIR$\..\..\..\components\drivers\core\device.c + + + $PROJ_DIR$\..\..\..\components\drivers\i2c\dev_i2c_bit_ops.c + + + $PROJ_DIR$\..\..\..\components\drivers\i2c\dev_i2c_core.c + + + $PROJ_DIR$\..\..\..\components\drivers\i2c\dev_i2c_dev.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\completion_comm.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\completion_up.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\condvar.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\dataqueue.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\pipe.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\ringblk_buf.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\ringbuffer.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\waitqueue.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\workqueue.c + + + $PROJ_DIR$\..\..\..\components\drivers\pin\dev_pin.c + + + $PROJ_DIR$\..\..\..\components\drivers\serial\dev_serial.c + + + + Drivers + + $PROJ_DIR$\..\libraries\HAL_Drivers\drivers\drv_gpio.c + + + $PROJ_DIR$\..\libraries\HAL_Drivers\drivers\drv_usart.c + + + $PROJ_DIR$\..\libraries\HAL_Drivers\drv_common.c + + + $PROJ_DIR$\board\CubeMX_Config\Src\stm32f4xx_hal_msp.c + + + $PROJ_DIR$\board\board.c + + + + Finsh + + $PROJ_DIR$\..\..\..\components\finsh\msh_parse.c + + + $PROJ_DIR$\..\..\..\components\finsh\cmd.c + + + $PROJ_DIR$\..\..\..\components\finsh\msh.c + + + $PROJ_DIR$\..\..\..\components\finsh\shell.c + + + + Kernel + + $PROJ_DIR$\..\..\..\src\clock.c + + + $PROJ_DIR$\..\..\..\src\components.c + + + $PROJ_DIR$\..\..\..\src\cpu_up.c + + + $PROJ_DIR$\..\..\..\src\defunct.c + + + $PROJ_DIR$\..\..\..\src\idle.c + + + $PROJ_DIR$\..\..\..\src\ipc.c + + + $PROJ_DIR$\..\..\..\src\irq.c + + + $PROJ_DIR$\..\..\..\src\kservice.c + + + $PROJ_DIR$\..\..\..\src\mem.c + + + $PROJ_DIR$\..\..\..\src\mempool.c + + + $PROJ_DIR$\..\..\..\src\object.c + + + $PROJ_DIR$\..\..\..\src\scheduler_comm.c + + + $PROJ_DIR$\..\..\..\src\scheduler_up.c + + + $PROJ_DIR$\..\..\..\src\thread.c + + + $PROJ_DIR$\..\..\..\src\timer.c + + + + klibc + + $PROJ_DIR$\..\..\..\src\klibc\rt_vsscanf.c + + + $PROJ_DIR$\..\..\..\src\klibc\kstring.c + + + $PROJ_DIR$\..\..\..\src\klibc\rt_vsnprintf_tiny.c + + + $PROJ_DIR$\..\..\..\src\klibc\kerrno.c + + + $PROJ_DIR$\..\..\..\src\klibc\kstdio.c + + + + libcpu + + $PROJ_DIR$\..\..\..\libcpu\arm\common\atomic_arm.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\common\div0.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\common\showmem.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4\context_iar.S + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4\cpuport.c + + + + POSIX + + + utestcases + + diff --git a/bsp/stm32/stm32f407-lxb/project.eww b/bsp/stm32/stm32f407-lxb/project.eww new file mode 100644 index 000000000000..c2cb02eb1e89 --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/project.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\project.ewp + + + + + diff --git a/bsp/stm32/stm32f407-lxb/project.uvopt b/bsp/stm32/stm32f407-lxb/project.uvopt new file mode 100644 index 000000000000..b53d69d5df5f --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/project.uvopt @@ -0,0 +1,162 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + rt-thread + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 0 + 0 + 1 + + 255 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 6 + + + + + + + + + + + Segger\JL2CM3.dll + + + + 0 + JL2CM3 + -U30000299 -O207 -S0 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 + + + 0 + UL2CM3 + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + +
diff --git a/bsp/stm32/stm32f407-lxb/project.uvoptx b/bsp/stm32/stm32f407-lxb/project.uvoptx new file mode 100644 index 000000000000..09dec0af9f80 --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/project.uvoptx @@ -0,0 +1,191 @@ + + + + 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 + + 168000000 + + 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 + 4 + + + + + + + + + + + Segger\JL2CM3.dll + + + + 0 + JL2CM3 + -U30000299 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(4) -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM) + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM)) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 0 + 2 + 10000000 + + + + + + Source Group 1 + 0 + 0 + 0 + 0 + + +
diff --git a/bsp/stm32/stm32f407-lxb/project.uvproj b/bsp/stm32/stm32f407-lxb/project.uvproj new file mode 100644 index 000000000000..f9fab5eeab42 --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/project.uvproj @@ -0,0 +1,1195 @@ + + + 1.1 +
### uVision Project, (C) Keil Software
+ + + rt-thread + 0x4 + ARM-ADS + + + STM32F407ZG + STMicroelectronics + IRAM(0x20000000-0x2001FFFF) IRAM2(0x10000000-0x1000FFFF) IROM(0x8000000-0x80FFFFF) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2 + + "Startup\ST\STM32F4xx\startup_stm32f40_41xxx.s" ("STM32F40/41xxx Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000) + 6105 + stm32f4xx.h + + + + + + + -DSTM32F40_41xxx + + + SFD\ST\STM32F4xx\STM32F40x.sfr + 0 + 0 + + + + ST\STM32F4xx\ + ST\STM32F4xx\ + + 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 + + + 1 + 0 + fromelf --bin !L --output rtthread.bin + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -MPU -REMAP + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 0 + + 0 + 6 + + + + + + + + + + + + + + Segger\JL2CM3.dll + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + "" () + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 1 + 0 + 8 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 1 + 0x8000000 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 0 + 0x10000000 + 0x10000 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + + + RT_USING_LIBC, __CLK_TCK=RT_TICK_PER_SECOND, __RTTHREAD__, __STDC_LIMIT_MACROS, RT_USING_ARMLIBC + + ..\libraries\HAL_Drivers\drivers;..\..\..\components\libc\posix\io\poll;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;applications;..\..\..\components\finsh;..\..\..\components\libc\posix\io\epoll;..\..\..\components\drivers\smp_call;..\..\..\components\drivers\phy;board\CubeMX_Config\Inc;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\libraries\HAL_Drivers\drivers\config;..\..\..\components\libc\posix\io\eventfd;..\..\..\components\libc\compilers\common\extension\fcntl\octal;..\..\..\libcpu\arm\common;..\..\..\components\drivers\include;..\libraries\HAL_Drivers;..\..\..\components\libc\posix\ipc;board;..\..\..\include;.;..\..\..\components\libc\compilers\common\include;..\..\..\components\libc\compilers\common\extension + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + .\board\linker_scripts\link.sct + + + + + + + + + + + Applications + + + main.c + 1 + applications\main.c + + + + + Compiler + + + syscall_mem.c + 1 + ..\..\..\components\libc\compilers\armlibc\syscall_mem.c + + + + + syscalls.c + 1 + ..\..\..\components\libc\compilers\armlibc\syscalls.c + + + + + cctype.c + 1 + ..\..\..\components\libc\compilers\common\cctype.c + + + + + cstdlib.c + 1 + ..\..\..\components\libc\compilers\common\cstdlib.c + + + + + cstring.c + 1 + ..\..\..\components\libc\compilers\common\cstring.c + + + + + ctime.c + 1 + ..\..\..\components\libc\compilers\common\ctime.c + + + + + cunistd.c + 1 + ..\..\..\components\libc\compilers\common\cunistd.c + + + + + cwchar.c + 1 + ..\..\..\components\libc\compilers\common\cwchar.c + + + + + DeviceDrivers + + + device.c + 1 + ..\..\..\components\drivers\core\device.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + dev_i2c_bit_ops.c + 1 + ..\..\..\components\drivers\i2c\dev_i2c_bit_ops.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + dev_i2c_core.c + 1 + ..\..\..\components\drivers\i2c\dev_i2c_core.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + dev_i2c_dev.c + 1 + ..\..\..\components\drivers\i2c\dev_i2c_dev.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + completion_comm.c + 1 + ..\..\..\components\drivers\ipc\completion_comm.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + completion_up.c + 1 + ..\..\..\components\drivers\ipc\completion_up.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + condvar.c + 1 + ..\..\..\components\drivers\ipc\condvar.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + dataqueue.c + 1 + ..\..\..\components\drivers\ipc\dataqueue.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + pipe.c + 1 + ..\..\..\components\drivers\ipc\pipe.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + ringblk_buf.c + 1 + ..\..\..\components\drivers\ipc\ringblk_buf.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + ringbuffer.c + 1 + ..\..\..\components\drivers\ipc\ringbuffer.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + waitqueue.c + 1 + ..\..\..\components\drivers\ipc\waitqueue.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + workqueue.c + 1 + ..\..\..\components\drivers\ipc\workqueue.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + dev_pin.c + 1 + ..\..\..\components\drivers\pin\dev_pin.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + dev_serial.c + 1 + ..\..\..\components\drivers\serial\dev_serial.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + Drivers + + + drv_gpio.c + 1 + ..\libraries\HAL_Drivers\drivers\drv_gpio.c + + + + + drv_usart.c + 1 + ..\libraries\HAL_Drivers\drivers\drv_usart.c + + + + + drv_common.c + 1 + ..\libraries\HAL_Drivers\drv_common.c + + + + + stm32f4xx_hal_msp.c + 1 + board\CubeMX_Config\Src\stm32f4xx_hal_msp.c + + + + + board.c + 1 + board\board.c + + + + + Finsh + + + shell.c + 1 + ..\..\..\components\finsh\shell.c + + + + + msh.c + 1 + ..\..\..\components\finsh\msh.c + + + + + msh_parse.c + 1 + ..\..\..\components\finsh\msh_parse.c + + + + + cmd.c + 1 + ..\..\..\components\finsh\cmd.c + + + + + Kernel + + + clock.c + 1 + ..\..\..\src\clock.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + components.c + 1 + ..\..\..\src\components.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + cpu_up.c + 1 + ..\..\..\src\cpu_up.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + defunct.c + 1 + ..\..\..\src\defunct.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + idle.c + 1 + ..\..\..\src\idle.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + ipc.c + 1 + ..\..\..\src\ipc.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + irq.c + 1 + ..\..\..\src\irq.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + kservice.c + 1 + ..\..\..\src\kservice.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + mem.c + 1 + ..\..\..\src\mem.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + mempool.c + 1 + ..\..\..\src\mempool.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + object.c + 1 + ..\..\..\src\object.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + scheduler_comm.c + 1 + ..\..\..\src\scheduler_comm.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + scheduler_up.c + 1 + ..\..\..\src\scheduler_up.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + thread.c + 1 + ..\..\..\src\thread.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + timer.c + 1 + ..\..\..\src\timer.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + klibc + + + rt_vsnprintf_tiny.c + 1 + ..\..\..\src\klibc\rt_vsnprintf_tiny.c + + + + + kerrno.c + 1 + ..\..\..\src\klibc\kerrno.c + + + + + rt_vsscanf.c + 1 + ..\..\..\src\klibc\rt_vsscanf.c + + + + + kstdio.c + 1 + ..\..\..\src\klibc\kstdio.c + + + + + kstring.c + 1 + ..\..\..\src\klibc\kstring.c + + + + + libcpu + + + atomic_arm.c + 1 + ..\..\..\libcpu\arm\common\atomic_arm.c + + + + + div0.c + 1 + ..\..\..\libcpu\arm\common\div0.c + + + + + showmem.c + 1 + ..\..\..\libcpu\arm\common\showmem.c + + + + + context_rvds.S + 2 + ..\..\..\libcpu\arm\cortex-m4\context_rvds.S + + + + + cpuport.c + 1 + ..\..\..\libcpu\arm\cortex-m4\cpuport.c + + + + + + +
diff --git a/bsp/stm32/stm32f407-lxb/project.uvprojx b/bsp/stm32/stm32f407-lxb/project.uvprojx new file mode 100644 index 000000000000..556b9120746a --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/project.uvprojx @@ -0,0 +1,1176 @@ + + + 2.1 +
### uVision Project, (C) Keil Software
+ + + rt-thread + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + STM32F407ZGTx + STMicroelectronics + Keil.STM32F4xx_DFP.2.11.0 + http://www.keil.com/pack + IRAM(0x20000000,0x20000) IRAM2(0x10000000,0x10000) IROM(0x08000000,0x100000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM)) + 0 + $$Device:STM32F407ZGTx$Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h + + + + + + + + + + $$Device:STM32F407ZGTx$CMSIS\SVD\STM32F40x.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 + 0 + 1 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 1 + 0x8000000 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 0 + 0x10000000 + 0x10000 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + + RT_USING_LIBC, __RTTHREAD__, __CLK_TCK=RT_TICK_PER_SECOND, __STDC_LIMIT_MACROS, RT_USING_ARMLIBC + + ..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\epoll;..\..\..\components\libc\posix\io\eventfd;..\..\..\include;..\..\..\components\drivers\smp_call;applications;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\libraries\HAL_Drivers;..\..\..\components\drivers\include;board\CubeMX_Config\Inc;..\..\..\components\libc\compilers\common\include;..\..\..\components\drivers\phy;board;..\..\..\components\finsh;..\libraries\HAL_Drivers\drivers\config;..\..\..\libcpu\arm\common;..\..\..\components\libc\compilers\common\extension\fcntl\octal;..\..\..\components\drivers\include;.;..\libraries\HAL_Drivers\drivers;..\..\..\components\libc\posix\ipc;..\..\..\components\libc\compilers\common\extension + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + .\board\linker_scripts\link.sct + + + + + + + + + + + Applications + + + main.c + 1 + applications\main.c + + + + + Compiler + + + syscall_mem.c + 1 + ..\..\..\components\libc\compilers\armlibc\syscall_mem.c + + + + + syscalls.c + 1 + ..\..\..\components\libc\compilers\armlibc\syscalls.c + + + + + cctype.c + 1 + ..\..\..\components\libc\compilers\common\cctype.c + + + + + cstdlib.c + 1 + ..\..\..\components\libc\compilers\common\cstdlib.c + + + + + cstring.c + 1 + ..\..\..\components\libc\compilers\common\cstring.c + + + + + ctime.c + 1 + ..\..\..\components\libc\compilers\common\ctime.c + + + + + cunistd.c + 1 + ..\..\..\components\libc\compilers\common\cunistd.c + + + + + cwchar.c + 1 + ..\..\..\components\libc\compilers\common\cwchar.c + + + + + DeviceDrivers + + + device.c + 1 + ..\..\..\components\drivers\core\device.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + dev_i2c_bit_ops.c + 1 + ..\..\..\components\drivers\i2c\dev_i2c_bit_ops.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + dev_i2c_core.c + 1 + ..\..\..\components\drivers\i2c\dev_i2c_core.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + dev_i2c_dev.c + 1 + ..\..\..\components\drivers\i2c\dev_i2c_dev.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + completion_comm.c + 1 + ..\..\..\components\drivers\ipc\completion_comm.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + completion_up.c + 1 + ..\..\..\components\drivers\ipc\completion_up.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + condvar.c + 1 + ..\..\..\components\drivers\ipc\condvar.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + dataqueue.c + 1 + ..\..\..\components\drivers\ipc\dataqueue.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + pipe.c + 1 + ..\..\..\components\drivers\ipc\pipe.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + ringblk_buf.c + 1 + ..\..\..\components\drivers\ipc\ringblk_buf.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + ringbuffer.c + 1 + ..\..\..\components\drivers\ipc\ringbuffer.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + waitqueue.c + 1 + ..\..\..\components\drivers\ipc\waitqueue.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + workqueue.c + 1 + ..\..\..\components\drivers\ipc\workqueue.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + dev_pin.c + 1 + ..\..\..\components\drivers\pin\dev_pin.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + dev_serial.c + 1 + ..\..\..\components\drivers\serial\dev_serial.c + + + + + + __RT_IPC_SOURCE__ + + + + + + + + + + + Drivers + + + drv_gpio.c + 1 + ..\libraries\HAL_Drivers\drivers\drv_gpio.c + + + + + drv_usart.c + 1 + ..\libraries\HAL_Drivers\drivers\drv_usart.c + + + + + drv_common.c + 1 + ..\libraries\HAL_Drivers\drv_common.c + + + + + stm32f4xx_hal_msp.c + 1 + board\CubeMX_Config\Src\stm32f4xx_hal_msp.c + + + + + board.c + 1 + board\board.c + + + + + Finsh + + + cmd.c + 1 + ..\..\..\components\finsh\cmd.c + + + + + shell.c + 1 + ..\..\..\components\finsh\shell.c + + + + + msh.c + 1 + ..\..\..\components\finsh\msh.c + + + + + msh_parse.c + 1 + ..\..\..\components\finsh\msh_parse.c + + + + + Kernel + + + clock.c + 1 + ..\..\..\src\clock.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + components.c + 1 + ..\..\..\src\components.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + cpu_up.c + 1 + ..\..\..\src\cpu_up.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + defunct.c + 1 + ..\..\..\src\defunct.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + idle.c + 1 + ..\..\..\src\idle.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + ipc.c + 1 + ..\..\..\src\ipc.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + irq.c + 1 + ..\..\..\src\irq.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + kservice.c + 1 + ..\..\..\src\kservice.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + mem.c + 1 + ..\..\..\src\mem.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + mempool.c + 1 + ..\..\..\src\mempool.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + object.c + 1 + ..\..\..\src\object.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + scheduler_comm.c + 1 + ..\..\..\src\scheduler_comm.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + scheduler_up.c + 1 + ..\..\..\src\scheduler_up.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + thread.c + 1 + ..\..\..\src\thread.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + timer.c + 1 + ..\..\..\src\timer.c + + + + + + __RT_KERNEL_SOURCE__ + + + + + + + + + + + klibc + + + kstdio.c + 1 + ..\..\..\src\klibc\kstdio.c + + + + + kerrno.c + 1 + ..\..\..\src\klibc\kerrno.c + + + + + rt_vsscanf.c + 1 + ..\..\..\src\klibc\rt_vsscanf.c + + + + + kstring.c + 1 + ..\..\..\src\klibc\kstring.c + + + + + rt_vsnprintf_tiny.c + 1 + ..\..\..\src\klibc\rt_vsnprintf_tiny.c + + + + + libcpu + + + atomic_arm.c + 1 + ..\..\..\libcpu\arm\common\atomic_arm.c + + + + + div0.c + 1 + ..\..\..\libcpu\arm\common\div0.c + + + + + showmem.c + 1 + ..\..\..\libcpu\arm\common\showmem.c + + + + + context_rvds.S + 2 + ..\..\..\libcpu\arm\cortex-m4\context_rvds.S + + + + + cpuport.c + 1 + ..\..\..\libcpu\arm\cortex-m4\cpuport.c + + + + + + + + + + + +
diff --git a/bsp/stm32/stm32f407-lxb/rtconfig.h b/bsp/stm32/stm32f407-lxb/rtconfig.h new file mode 100644 index 000000000000..f20dc3f870b2 --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/rtconfig.h @@ -0,0 +1,440 @@ +#ifndef RT_CONFIG_H__ +#define RT_CONFIG_H__ + +#define SOC_STM32F407ZG +#define BOARD_STM32F407_LXB + +/* RT-Thread Kernel */ + +/* klibc options */ + +/* rt_vsnprintf options */ + +/* end of rt_vsnprintf options */ + +/* rt_vsscanf options */ + +/* end of rt_vsscanf options */ + +/* rt_memset options */ + +/* end of rt_memset options */ + +/* rt_memcpy options */ + +/* end of rt_memcpy options */ + +/* rt_memmove options */ + +/* end of rt_memmove options */ + +/* rt_memcmp options */ + +/* end of rt_memcmp options */ + +/* rt_strstr options */ + +/* end of rt_strstr options */ + +/* rt_strcasecmp options */ + +/* end of rt_strcasecmp options */ + +/* rt_strncpy options */ + +/* end of rt_strncpy options */ + +/* rt_strcpy options */ + +/* end of rt_strcpy options */ + +/* rt_strncmp options */ + +/* end of rt_strncmp options */ + +/* rt_strcmp options */ + +/* end of rt_strcmp options */ + +/* rt_strlen options */ + +/* end of rt_strlen options */ + +/* rt_strnlen options */ + +/* end of rt_strnlen options */ +/* end of klibc options */ +#define RT_NAME_MAX 12 +#define RT_CPUS_NR 1 +#define RT_ALIGN_SIZE 8 +#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_HOOK_USING_FUNC_PTR +#define RT_USING_IDLE_HOOK +#define RT_IDLE_HOOK_LIST_SIZE 4 +#define IDLE_THREAD_STACK_SIZE 1024 + +/* kservice options */ + +/* end of kservice options */ +#define RT_USING_DEBUG +#define RT_DEBUGING_ASSERT +#define RT_DEBUGING_COLOR +#define RT_DEBUGING_CONTEXT + +/* Inter-Thread communication */ + +#define RT_USING_SEMAPHORE +#define RT_USING_MUTEX +#define RT_USING_EVENT +#define RT_USING_MAILBOX +#define RT_USING_MESSAGEQUEUE +/* end of Inter-Thread communication */ + +/* Memory Management */ + +#define RT_USING_MEMPOOL +#define RT_USING_SMALL_MEM +#define RT_USING_SMALL_MEM_AS_HEAP +#define RT_USING_HEAP +/* end of Memory Management */ +#define RT_USING_DEVICE +#define RT_USING_CONSOLE +#define RT_CONSOLEBUF_SIZE 128 +#define RT_CONSOLE_DEVICE_NAME "uart1" +#define RT_USING_CONSOLE_OUTPUT_CTL +#define RT_VER_NUM 0x50300 +#define RT_BACKTRACE_LEVEL_MAX_NR 32 +/* end of RT-Thread Kernel */ +#define RT_USING_HW_ATOMIC +#define ARCH_USING_HW_ATOMIC_8 +#define ARCH_USING_HW_ATOMIC_16 +#define RT_USING_CPU_FFS +#define ARCH_ARM +#define ARCH_ARM_CORTEX_M +#define ARCH_ARM_CORTEX_M4 + +/* RT-Thread Components */ + +#define RT_USING_COMPONENTS_INIT +#define RT_USING_USER_MAIN +#define RT_MAIN_THREAD_STACK_SIZE 2048 +#define RT_MAIN_THREAD_PRIORITY 10 +#define RT_USING_MSH +#define RT_USING_FINSH +#define FINSH_USING_MSH +#define FINSH_THREAD_NAME "tshell" +#define FINSH_THREAD_PRIORITY 20 +#define FINSH_THREAD_STACK_SIZE 4096 +#define FINSH_USING_HISTORY +#define FINSH_HISTORY_LINES 5 +#define FINSH_USING_SYMTAB +#define FINSH_CMD_SIZE 80 +#define MSH_USING_BUILT_IN_COMMANDS +#define FINSH_USING_DESCRIPTION +#define FINSH_ARG_MAX 10 +#define FINSH_USING_OPTION_COMPLETION + +/* DFS: device virtual file system */ + +/* end of DFS: device virtual file system */ + +/* Device Drivers */ + +#define RT_USING_DEVICE_IPC +#define RT_UNAMED_PIPE_NUMBER 64 +#define RT_USING_SERIAL +#define RT_USING_SERIAL_V1 +#define RT_SERIAL_USING_DMA +#define RT_SERIAL_RB_BUFSZ 64 +#define RT_USING_I2C +#define RT_USING_I2C_BITOPS +#define RT_USING_PIN +/* end of Device Drivers */ + +/* C/C++ and POSIX layer */ + +/* ISO-ANSI C layer */ + +/* Timezone and Daylight Saving Time */ + +#define RT_LIBC_USING_LIGHT_TZ_DST +#define RT_LIBC_TZ_DEFAULT_HOUR 8 +#define RT_LIBC_TZ_DEFAULT_MIN 0 +#define RT_LIBC_TZ_DEFAULT_SEC 0 +/* end of Timezone and Daylight Saving Time */ +/* end of ISO-ANSI C layer */ + +/* POSIX (Portable Operating System Interface) layer */ + + +/* Interprocess Communication (IPC) */ + + +/* Socket is in the 'Network' category */ + +/* end of Interprocess Communication (IPC) */ +/* end of POSIX (Portable Operating System Interface) layer */ +/* end of C/C++ and POSIX layer */ + +/* Network */ + +/* end of Network */ + +/* Memory protection */ + +/* end of Memory protection */ + +/* Utilities */ + +/* end of Utilities */ + +/* Using USB legacy version */ + +/* end of Using USB legacy version */ +/* end of RT-Thread Components */ + +/* RT-Thread Utestcases */ + +/* end of RT-Thread Utestcases */ + +/* RT-Thread online packages */ + +/* IoT - internet of things */ + + +/* Wi-Fi */ + +/* Marvell WiFi */ + +/* end of Marvell WiFi */ + +/* Wiced WiFi */ + +/* end of Wiced WiFi */ + +/* CYW43012 WiFi */ + +/* end of CYW43012 WiFi */ + +/* BL808 WiFi */ + +/* end of BL808 WiFi */ + +/* CYW43439 WiFi */ + +/* end of CYW43439 WiFi */ +/* end of Wi-Fi */ + +/* IoT Cloud */ + +/* end of IoT Cloud */ +/* end of IoT - internet of things */ + +/* security packages */ + +/* end of security packages */ + +/* language packages */ + +/* JSON: JavaScript Object Notation, a lightweight data-interchange format */ + +/* end of JSON: JavaScript Object Notation, a lightweight data-interchange format */ + +/* XML: Extensible Markup Language */ + +/* end of XML: Extensible Markup Language */ +/* end of language packages */ + +/* multimedia packages */ + +/* LVGL: powerful and easy-to-use embedded GUI library */ + +/* end of LVGL: powerful and easy-to-use embedded GUI library */ + +/* u8g2: a monochrome graphic library */ + +/* end of u8g2: a monochrome graphic library */ +/* end of multimedia packages */ + +/* tools packages */ + +/* end of tools packages */ + +/* system packages */ + +/* enhanced kernel services */ + +/* end of enhanced kernel services */ + +/* acceleration: Assembly language or algorithmic acceleration packages */ + +/* end of acceleration: Assembly language or algorithmic acceleration packages */ + +/* CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */ + +#define PKG_USING_CMSIS_CORE +#define PKG_USING_CMSIS_CORE_LATEST_VERSION +/* end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */ + +/* Micrium: Micrium software products porting for RT-Thread */ + +/* end of Micrium: Micrium software products porting for RT-Thread */ +/* end of system packages */ + +/* peripheral libraries and drivers */ + +/* HAL & SDK Drivers */ + +/* STM32 HAL & SDK Drivers */ + +#define PKG_USING_STM32F4_HAL_DRIVER +#define PKG_USING_STM32F4_HAL_DRIVER_LATEST_VERSION +#define PKG_USING_STM32F4_CMSIS_DRIVER +#define PKG_USING_STM32F4_CMSIS_DRIVER_LATEST_VERSION +/* end of STM32 HAL & SDK Drivers */ + +/* Infineon HAL Packages */ + +/* end of Infineon HAL Packages */ + +/* Kendryte SDK */ + +/* end of Kendryte SDK */ + +/* WCH HAL & SDK Drivers */ + +/* end of WCH HAL & SDK Drivers */ + +/* AT32 HAL & SDK Drivers */ + +/* end of AT32 HAL & SDK Drivers */ + +/* HC32 DDL Drivers */ + +/* end of HC32 DDL Drivers */ + +/* NXP HAL & SDK Drivers */ + +/* end of NXP HAL & SDK Drivers */ + +/* NUVOTON Drivers */ + +/* end of NUVOTON Drivers */ + +/* GD32 Drivers */ + +/* end of GD32 Drivers */ + +/* HPMicro SDK */ + +/* end of HPMicro SDK */ + +/* FT32 HAL & SDK Drivers */ + +/* end of FT32 HAL & SDK Drivers */ +/* end of HAL & SDK Drivers */ + +/* sensors drivers */ + +/* end of sensors drivers */ + +/* touch drivers */ + +/* end of touch drivers */ +/* end of peripheral libraries and drivers */ + +/* AI packages */ + +/* end of AI packages */ + +/* Signal Processing and Control Algorithm Packages */ + +/* end of Signal Processing and Control Algorithm Packages */ + +/* miscellaneous packages */ + +/* project laboratory */ + +/* end of project laboratory */ + +/* samples: kernel and components samples */ + +/* end of samples: kernel and components samples */ + +/* entertainment: terminal games and other interesting software packages */ + +/* end of entertainment: terminal games and other interesting software packages */ +/* end of miscellaneous packages */ + +/* Arduino libraries */ + + +/* Projects and Demos */ + +/* end of Projects and Demos */ + +/* Sensors */ + +/* end of Sensors */ + +/* Display */ + +/* end of Display */ + +/* Timing */ + +/* end of Timing */ + +/* Data Processing */ + +/* end of Data Processing */ + +/* Data Storage */ + +/* Communication */ + +/* end of Communication */ + +/* Device Control */ + +/* end of Device Control */ + +/* Other */ + +/* end of Other */ + +/* Signal IO */ + +/* end of Signal IO */ + +/* Uncategorized */ + +/* end of Arduino libraries */ +/* end of RT-Thread online packages */ +#define SOC_FAMILY_STM32 +#define SOC_SERIES_STM32F4 + +/* Hardware Drivers Config */ + +/* Onboard Peripheral Drivers */ + +#define BSP_USING_COM1 +/* end of Onboard Peripheral Drivers */ + +/* On-chip Peripheral Drivers */ + +#define BSP_USING_GPIO +#define BSP_USING_UART +#define BSP_STM32_UART_V1_TX_TIMEOUT 2000 +#define BSP_USING_UART1 +/* end of On-chip Peripheral Drivers */ + +/* Board extended module Drivers */ + +/* end of Hardware Drivers Config */ + +#endif diff --git a/bsp/stm32/stm32f407-lxb/rtconfig.py b/bsp/stm32/stm32f407-lxb/rtconfig.py new file mode 100644 index 000000000000..fce7a2e43a4a --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/rtconfig.py @@ -0,0 +1,184 @@ +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 = 'iccarm' + EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.3' + +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 + r' --scatter "board\linker_scripts\link.sct" --info sizes --info totals --info unused --info veneers --list rt-thread.map --strict' + CFLAGS += ' -I' + EXEC_PATH + '/ARM/ARMCC/include' + LFLAGS += ' --libpath=' + EXEC_PATH + '/ARM/ARMCC/lib' + + CFLAGS += ' -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 == 'armclang': + # toolchains + CC = 'armclang' + CXX = 'armclang' + AS = 'armasm' + AR = 'armar' + LINK = 'armlink' + TARGET_EXT = 'axf' + + DEVICE = ' --cpu Cortex-M4.fp ' + CFLAGS = ' --target=arm-arm-none-eabi -mcpu=cortex-m4 ' + CFLAGS += ' -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 ' + CFLAGS += ' -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar ' + CFLAGS += ' -gdwarf-3 -ffunction-sections ' + AFLAGS = DEVICE + ' --apcs=interwork ' + LFLAGS = DEVICE + ' --info sizes --info totals --info unused --info veneers ' + LFLAGS += ' --list rt-thread.map ' + LFLAGS += r' --strict --scatter "board\linker_scripts\link.sct" ' + CFLAGS += ' -I' + EXEC_PATH + '/ARM/ARMCLANG/include' + LFLAGS += ' --libpath=' + EXEC_PATH + '/ARM/ARMCLANG/lib' + + EXEC_PATH += '/ARM/ARMCLANG/bin/' + + if BUILD == 'debug': + CFLAGS += ' -g -O1' # armclang recommend + AFLAGS += ' -g' + else: + CFLAGS += ' -O2' + + CXXFLAGS = CFLAGS + CFLAGS += ' -std=c99' + + POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET' + +elif PLATFORM == 'iccarm': + # 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' + +def dist_handle(BSP_ROOT, dist_dir): + import sys + cwd_path = os.getcwd() + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) diff --git a/bsp/stm32/stm32f407-lxb/template.ewp b/bsp/stm32/stm32f407-lxb/template.ewp new file mode 100644 index 000000000000..21c66ca0d01a --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/template.ewp @@ -0,0 +1,2031 @@ + + + 3 + + rt-thread + + ARM + + 1 + + General + 3 + + 29 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 34 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 20 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Release + + ARM + + 0 + + General + 3 + + 29 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 34 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 20 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + diff --git a/bsp/stm32/stm32f407-lxb/template.eww b/bsp/stm32/stm32f407-lxb/template.eww new file mode 100644 index 000000000000..bd036bb4c98c --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/template.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\template.ewp + + + + + diff --git a/bsp/stm32/stm32f407-lxb/template.uvopt b/bsp/stm32/stm32f407-lxb/template.uvopt new file mode 100644 index 000000000000..b53d69d5df5f --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/template.uvopt @@ -0,0 +1,162 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + rt-thread + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 0 + 0 + 1 + + 255 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 6 + + + + + + + + + + + Segger\JL2CM3.dll + + + + 0 + JL2CM3 + -U30000299 -O207 -S0 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 + + + 0 + UL2CM3 + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + +
diff --git a/bsp/stm32/stm32f407-lxb/template.uvoptx b/bsp/stm32/stm32f407-lxb/template.uvoptx new file mode 100644 index 000000000000..09dec0af9f80 --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/template.uvoptx @@ -0,0 +1,191 @@ + + + + 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 + + 168000000 + + 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 + 4 + + + + + + + + + + + Segger\JL2CM3.dll + + + + 0 + JL2CM3 + -U30000299 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(4) -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM) + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM)) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 0 + 2 + 10000000 + + + + + + Source Group 1 + 0 + 0 + 0 + 0 + + +
diff --git a/bsp/stm32/stm32f407-lxb/template.uvproj b/bsp/stm32/stm32f407-lxb/template.uvproj new file mode 100644 index 000000000000..6ca2a9295365 --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/template.uvproj @@ -0,0 +1,407 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + rt-thread + 0x4 + ARM-ADS + + + STM32F407ZG + STMicroelectronics + IRAM(0x20000000-0x2001FFFF) IRAM2(0x10000000-0x1000FFFF) IROM(0x8000000-0x80FFFFF) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2 + + "Startup\ST\STM32F4xx\startup_stm32f40_41xxx.s" ("STM32F40/41xxx Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000) + 6105 + stm32f4xx.h + + + + + + + -DSTM32F40_41xxx + + + SFD\ST\STM32F4xx\STM32F40x.sfr + 0 + 0 + + + + ST\STM32F4xx\ + ST\STM32F4xx\ + + 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 + + + 1 + 0 + fromelf --bin !L --output rtthread.bin + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -MPU -REMAP + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 0 + + 0 + 6 + + + + + + + + + + + + + + Segger\JL2CM3.dll + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + "" () + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 1 + 0 + 8 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 1 + 0x8000000 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 0 + 0x10000000 + 0x10000 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + .\board\linker_scripts\link.sct + + + + + + + + + + + +
diff --git a/bsp/stm32/stm32f407-lxb/template.uvprojx b/bsp/stm32/stm32f407-lxb/template.uvprojx new file mode 100644 index 000000000000..9c5e1822dbe6 --- /dev/null +++ b/bsp/stm32/stm32f407-lxb/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 + + + STM32F407ZGTx + STMicroelectronics + Keil.STM32F4xx_DFP.2.11.0 + http://www.keil.com/pack + IRAM(0x20000000,0x20000) IRAM2(0x10000000,0x10000) IROM(0x08000000,0x100000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM)) + 0 + $$Device:STM32F407ZGTx$Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h + + + + + + + + + + $$Device:STM32F407ZGTx$CMSIS\SVD\STM32F40x.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 + 0 + 1 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 1 + 0x8000000 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 0 + 0x10000000 + 0x10000 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 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 + + + + + + + + + + + +